Sensor de distancia de bajo coste

Desde hace algun tiempo se vive en internet la fiebre del hardware hacking. Es decir, coger algun objeto y darle un uso para el cual no estaba diseñado. El ejemplo mas reciente es el Kinect de Xbox360.  Desde que un español abrio la veda y descubrio los protocolos de datos del aparatito, por todo internet se puede ver ejemplos de como la gente le ha dado usos cada vez mas imaginativos. Desde usar el Kinect para detectar el movimiento de marionetas, hasta para usar un panel del LEDs y controlarlos con Kinect.

Pues hoy quiero centrar el articulo en otro aparatejo ( mas bien componente de uno) .Se trata del LIDAR que trae integrado el apirador-robotico Neato XV-11.

La gracia de este LIDAR esta en su precio de construcción 30$ y lo preciso que puede llegar a ser por ese precio: 360º de campo de visión ,con una velocidad de 10Hz , un rango de 0.2m a 6m ,con una resolución angular de 1 grado y con un error de +/- 3cm a una distancia de 6m.

A que llama la atención? El problema , que no se vende por separado. De momento la empresa no vende los repuestos de este LIDAR para el robot y creo que con la publicidad que se le esta dando no lo hara y es una lastima. Las aplicaciones que se le podrian dar para robots de interior serian impresionantes.

Otra similitud con Kinect es que ” se le ha puesto precio a su cabeza“. Este hardware funciona mediante un protocolo serie , aunque no se conoce que tipos de datos envia por el bus, es por eso que un grupo de aficionados ha puesto una recompensa de 800$ para quien pueda conseguir un código útil para interactuar con el sensor.Es un buen premio , el problema es que el robot cuesta como unos 400 $ asi que las ganancias se reducen a la mitad.

Como comprar un robot de 400$ para destriparlo solo por el sensor no lo haré, me he puesto a buscar por Internet a ver si podría encontrar la pieza en cuestión, aunque no he tenido éxito. Lo que si he encontrado es el white paper del sensor y como se puede aplicar la misma matemática para conseguir un sensor que mida distancias con una webcam y un puntero láser. Os dejo la información

Haciendo algo de busqueda esto es lo que he encontrado:

Webcam Laser Rangefinder

RevoLDS_Whitepaper

Anuncios
Publicado en Hacking, Robótica, Sensores | Etiquetado , , , , , , | 2 comentarios

Jugando con FPGAs I

Exactamente jugando no , porque he empezado con FPGA gracias a las practicas de la universidad, asi que me juego una nota al final del semestre. Pero la verdad es que es una de las herramientas mas impresionantes que he visto en mucho tiempo.

Las practicas son de la asignatura de Sistemas Digitales y aunque las clases teoricas son algo coñazo, las de practicas son entretenidas aunque no faciles. El que sea una asignatura de universidad implica que tengo bastante material didáctico sobre las FPGA , así que lo iré colgando por aquí en la siguientes entregas.

FPGA viene por Field Programmable Gates Array. Básicamente y en plan de cachondeo en clase las llamamos los transformers porque son chips que contienen puertas lógicas ( millones de ellas ) que se pueden interconectar mediante programación pudiendo hacer virtualmente todo lo que se nos pase por la mente.

Las practicas consisten en programar a lo largo de las 10 sesiones  un procesador con arquitectura Von Neuman.

Para programar usamos Quartus II  de Altera. Es totalmente gratuito pero id con ojo , segun me han contado en clase, la version 10 no simula asi que si os podeis bajar la 8.xx o la 9.xx mejor.En concreto en clase usamos la 9.12 y va de fabula.

La programación se realiza mediante el lenguaje VHDL que es un lenguaje bastante diferente al C o a cualquier otro porque ,en cuanto a concepción, es un lenguaje de descripcion de hardware.

¿Esto que quiere decir? pues que lo que nosotros escribimos con el lenguaje , el programa lo interpreta para conectar correctamente los modulos dentro de la FPGA y construir el circuito digital que nosotros queramos.

Personalmente creo que es impresionante lo que estos bichos pueden hacer, antes de empezar la asignatura tenia totalmente mitificados a las FPGA en cuanto a dificultad. Pensaba que serian difíciles de programar pero la verdad es que si tienes a alguien delante que sabe lo que se hace , el lenguaje es bastante asequible.

Es cierto que aun cometo errores al escribir codigo pero hay que tener en cuenta que, de no saber nada de VHDL hace 2 meses, ahora junto a mi compañero de practicas estamos siendo capaces de programar cosas que parecen impresionantes , como  memorias RAM o Unidades Aritmetico-logicas con sus flags de negativo, carry ,etc.

El problema de las FPGA es el precio 40 euros por un chip es bastante para un aficionado, un estudiante o una empresa que quiera hacer tiradas largas de algún producto. Pero para prototipado de circuitos digitales creo es la herramienta definitiva , hasta que salga la siguiente 🙂

Como he dicho antes, tengo bastante material de clase  para empezar en el tema de las FPGA y que explican cosas basicas asi  que por si a alguien le a picado el gusanillo os  dejo todo aqui colgado. Prestad especial atención al PDF de “Introduccion_VHDL” es la guia con la que en clase empezamos a dar VHDL y que es lo primero que vi de ese lenguaje.

Introduccio_Quartus_catala

Practica 3 – sistemas digitales VHDL

Introduccion_VHDL

Y ya para acabar os quiero dejar un ejemplo de la potencia que tienen estos integrados. En Illinois crearon, usando una FPGA, un sistema de descifrado de contraseñas que usen el algoritmo MD5 con la posibilidad de producir 44 millones de claves por minuto, ahí es nada!

Aqui esta la segunda parte

Publicado en FPGA, Programación | Etiquetado , , , , , | 1 Comentario

LaunchPad from Texas Instruments

Todos conocemos Arduino, excelente plataforma para prototipos con un IDE y un lenguaje fácil de desarrollar que ha pegado fuerte en el mundo de electronica y robotica. Tambien esta Pinguino, un proyecto clon basado en PIC 18F, que aunque promete, esta bastante verde.

Pero llega un nuevo contendiente a esta batalla ( algo por el estilo) .Hace cosa de un mes, Texas Instruments lanzo la LaunchPad una placa de desarrollo para su linea microcontroladores de bajo coste MSP430.

launchpad1

La filosofía de LaunchPad es similar a Arduino, agrupar todo el software y el hardware en un pack y usando su wiki poder empezar rápidamente usando ejemplos y proyectos open source. En concreto el pack de LaunchPad es bastante completo:

  • Placa de desarrollo LaunchPad  (MSP-EXP430G2)
  • cable mini USB
  • 2x microcontroladores MSP430
  • Tiras de 10 pines (2 machos & 2 hembras)
  • Un cristal de 32kHz
  • Guía de inicio
  • 2 pegatinas de LaunchPad

LaunchPad provee  2 IDEs (Code Composer Studio y IAR Embedded Workbench KickStart) de forma gratuita , aunque con algunas limitaciones típicas como tamaño del programa . Pero el tamaño restringido en el CCS, por ejemplo, es de 16k, una barbaridad comprarado con la memoria que tienen los chips, asi que tenemos espacio de maniobra mas que suficiente para programar con la version gratuita.

Aunque si ninguno de los dos os convence , hay bastantes mas como indican en la Wiki la pega es que los ejemplos estan todos dedicados a los dos compiladores “promocionados” por ellos.

Esta placa esta al increíble precio de 4.30$ ( envío incluido) así que la intención de TI es clara, cojer parte del mercado de los aficionados a la electronica/robotica/DIY y que estos continúen con su linea de microcontroladores para todos sus proyectos.

Respecto a los microcontroladores no esperéis nada del otro mundo, los microcontroladores de la serie MSP430 que vienen en launchpad son normalitos tirando a bajos pero para aplicaciones de bajo consumo y coste vienen que ni pintados.

He pedido 2 placas así que cuando lleguen , hago la segunda parte con vídeo incluido con mis impresiones. Pero para abrir boca os dejo con un post de otro blog donde se explica un proyecto basado en los MSP430 ( uno concretamente un poco mas grande que los que vienen en launchpad) y que es un active RFID tag que localiza donde están los asistentes de una Lan Party o una conferencia y que se ha aplicado a la feria HOPE. La verdad es que es una buena idea y daría bastante juego aplicarla a una actividad conjunta como una red social propia de la reunión con localización en tiempo real.

Links

Wiki LaunchPad: http://processors.wiki.ti.com/index.php/MSP430_LaunchPad_(MSP-EXP430G2)

Site HOPE http://thenexthope.org/


Publicado en Uncategorized | Etiquetado , , , , , | Deja un comentario

Probando la LiquidCrystal, librería para LCDs de Arduino

Hace tiempo compre en a través de Ebay un display LCD de sureelectronics de 20 caracteres y 4 lineas. Por aquel tiempo Arduino no tenia una librería de lcd  integrada en el IDE (creo que era la versión 0012), así que me dedique a buscar librerías por Arduino Playground y fue un completo desastre , LCD que no se inicializaban, errores en el envio de datos y lo peor es que los displays de 20×4 no estaban soportados en casi todas ( al menos de las que encontré).

Así que ante la pereza de tener que modificar una librería de las existentes para poder usar el display y como era para experimentar y no tenia un fin concreto la guarde en una caja y allí se quedó cogiendo polvo. Hasta hace poco, que rebuscando la volví a encontrar y me decidí a probar la liquidCrystal que traía integrada la versión 0018 del IDE de Arduino, y menudo descubrimiento.

Lo primero que notas cuando miras la referencia o un ejemplo como el de Hola Mundo, es que es una librería pensada para controlar a todos,  estilo anillo único de The Lord of the Rings , los displays con el Hitachi HD44780.  Permite controlar el display en los dos modos , 4 y 8 bits, aunque prefiero el de 4 por no tener que hacer tantas conexiones

El esquema para conectar un LCD a una Arduino es bastante simple:

Las conexiones son las siguientes :

  • 1->Tierra.
  • 2-> Alimentación +5 V
  • 3->Ajuste de contraste (0 a 5 V) a la salida del potenciometro
  • 4->Selector de registro (R/S) al pin 12 de Arduino
  • 5->Lectura escritura (R/W) a tierra
  • 6->Enable conectado al pin 11 de Arduino
  • 11->D4 (Bit4) al pin 5 de Arduino
  • 12->D5 (Bit5) al pin 4 de Arduino
  • 13->D6 (Bit6) al pin 3 de Arduino
  • 14->D7 (Bit7) al pin 2 de Arduino
  • 15-> Ánodo del led a +5v
  • 16-> Cátodo del led a Tierra

Abajo os dejo el video del primer mensaje y el sketch . El mensaje no es el tipico hola mundo porque como era mi cumpleaños aproveche para agradecer las felicitaciones de una forma diferente.

Experimento LCD Arduino from Borja Herranz on Vimeo.

Publicado en Programación | Etiquetado , | Deja un comentario

PDF:Técnicas y algoritmos básicos de visión artificial

Como primer post del blog os cuelgo un PDF que me ha parecido bastante interesante, os dejo la ficha y el archivo más abajo.

Título: Técnicas y algoritmos básicos de visión artificial.
Autores: Ana González Marcos, Francisco Javier Martínez de Pisón Ascacíbar, Alpha Verónica Pernía Espinoza, Fernando Alba Elías, Manuel Castejón Limas, Joaquín Ordieres Meré y Eliseo Vergara González (Integrantes del Grupo de Investigación EDMANS)
ISBN: 84-689-9345-X
Edición:
Número de páginas: 92
Colección:Material Didáctico. Ingenierías, 24

Es un publicación de la Universidad de la Rioja que esta disponible en su pagina web (aquí) y que he colgado en el blog para que no se pierda por la red de redes.

TÉCNICAS Y ALGORITMOS BÁSICOS DE VISIÓN ARTIFICIAL

Por lo que he podido leer no es muy denso ( en realidad esperaba mas matemática) para ser una publicación de ingeniería.

En el libro tratan las técnicas básicas para la visión artificial desde el nivel mas bajo y explicando todo paso a paso. Se puede usar el lenguaje que queráis para aplicar las técnicas del libro , personalmente lo estoy intentándolo con processing ( y he conseguido ya obtener imágenes de la cámara en 5 minutos aunque tiene un poco de truco ) pero lo dejo como material para otro post cuando consiga dominar mas el lenguaje.

Esta opción esta bien para aprender, pero si queréis algo “rápido” y funcional os recomiendo que os miréis la biblioteca OpenCV desarrollada por Intel que  es de cogido abierto y la podéis usar con C, C++ y Python.

Publicado en Programación | Etiquetado , , | Deja un comentario

Hello world!

Bienvenidos a Silicon Develop!!! Este juro que lo iré actualizando…

Publicado en Uncategorized | 1 Comentario