Revista 100% Verde

Reconocimiento de colores con Pixy

Por Soloelectronicos @soloelectronico
En efecto, si no tenemos demasiado tiempo para experimentar con algoritmos de reconocimiento de imágenes con opencv o similares ,por ejemplo para integrar la visión artificial en un robot que siga una linea, hay un producto llamado Pixy2 que puede hacer todo eso y mas. Además, esta segunda version, es más rápida, más pequeña y más potente que el Pixy original, agregando algoritmos de seguimiento / seguimiento de línea, así como otras características (de hecho la velocidad de procesamiento en tiempo real se ha mejorado en 60 fotogramas por segundo) Como puede suponer Pixy2 incorpora una cámara y una fuente de luz , y con todo este hw puede detectar líneas, intersecciones y pequeños códigos de barras, diseñados para robots que siguen líneas. Precisamente por la utilidad de integrarlo en pequeños robots ,se han agregado algoritmos de seguimiento a la detección de objetos basada en color. Ademas tampoco descuidan su conexión con otras placas pues proporcionan bibliotecas mejoradas y simplificadas para Arduino, Raspberry Pi. Veamos a continuación mas detalles sobre esta interesante placa Reconocimiento de colores con Pixy

Hablamos de una placa bastante pequeña(de unos 8x7cm) , tanto que incluso se puede conectar varios Pixy2 a un microcontrolador pues Pixy2 es más pequeño, más rápido y más potente que el Pixy original.

Este sistema de visión inteligente plug-and-play para Arduino-compatibles, Raspberry Pi u otros microcontroladores / sistemas de computadora.

Al igual que su predecesor, Pixy2 puede aprender a detectar objetos que le enseñe, simplemente presionando un botón. Además, Pixy2 implementa nuevos algoritmos que detectan y rastrean las líneas para su uso con robots de seguimiento de línea ( incluso con los nuevos algoritmos también pueden detectar intersecciones y "señales de tráfico".)

Reconocimiento de colores con Pixy

Aunque la nueva cámara puede funcionar hasta 60 fps, se ejecuta aproximadamente la mitad de esa velocidad y existen múltiples opciones para el ajuste fino del reconocimiento de objetos, todo ello para mejorar la precisión el reconocimiento de imágenes ya que la cámara no esta diseñada para la grabación de imágenes pero si pasará el centro X, Y, y el ancho, la altura de un objeto, y lo hace muy bien.

La nueva version Pixy2 lleva modo de seguimiento de línea y fuente de luz LED integrada simplificando su programación recibiendo solo los objetos que le interesan.

Se puede utilizar el controlador que desee pues incluye bibliotecas de software para Arduino, Raspberry Pi y BeagleBone Black.

Si lo conectamos a un pc, podemos instalar la utilidad de configuración (se ejecuta en Windows, MacOS y Linux) asi como el sw Pixy2 CMUCam5, un sensor de imagen para su microcontrolador que puede enseñarle qué buscar.También es una gran mejora con respecto a las versiones anteriores de Pixy CMUCam, que agrega u na mayor flexibilidad cuando se trata de cambios de iluminación y exposición. También puede recordar siete firmas de colores diferentes, encuentre cientos de objetos en a visión del robot es fácil: presione el botón para enseñarle a Pixy2 un objeto

Reconocimiento de colores con Pixy

Por ello el es un sensor de imagen con un potente procesador que puede programar para enviar solo la información que está buscando para que su microcontrolador no se vea abrumado por los datos ya que Pixy2 exporta su información en una variedad de formas útiles (UART serie, SPI, I2C, salida digital o salida analógica) para que su microcontrolador o microcomputadora pueda comunicarse fácilmente mientras realiza otras tareas.

Las coordenadas enviadas desde pueden decirle a su robot qué hacer, como girar a la izquierda, girar a la derecha, disminuir la velocidad, etc. Y Pixy2 hace todo esto a 60 cuadros por segundo, para que su robot también pueda ser rápido. Pixy2 utiliza el tono y la saturación como su principal medio de detección de imágenes, en lugar del RGB normal. Esto significa que la iluminación o la exposición no afectarán la detección de Pixy2 de un elemento, lo cual es un problema frustrante con muchos sensores de imagen. .

Vamos a ver un ejemplo publicado en instructables.com de un interesante robot seguidor que implementa esta tecnologia creado por chaabani houssem

Necesitaremos al menos los siguientes componentes:

  • 1 Arduino mega (o en su defecto un Arduno uno o Arduino nano ... )
  • 2 motores paso a paso
  • 2 ruedas y sus engranajes
  • Una batería de 9v (o cualquiera que pueda reciclar

Podemos enseñar cualquier objeto a pixy a través de este enlace:

http: //cmucam.org/projects/cmucam5/wiki/Teach_Pixy ...

Para controlar los dos motores usaremos un famoso controlador , el CI l293d

Este circuito integrado de 16 pines ofrece los siguintes carasterciticas:

  • Capacidad del canal: 600 mA de corriente de salida / canal.
  • Sistema de activación.
  • Pico de salida de corriente: 1,2 A / canal (no repetitivo).
  • Protección contra sobretemperatura.
  • Entrada lógica "0" a 1,5 V (alta inmunidad al ruido).
Reconocimiento de colores con Pixy

Conectemos los pines del L293D a un Arduino de la siguiente manera :

  • Pin 1 al pin Arduino 2.
  • Pin 2 al pin 3 de Arduino.
  • Entrada 3 al pin 4 de Arduino.
  • Entrada 4 al pin Aduino 5.

Con estas conexiones ya se puede probar el robot como verificar el avance, probar el giro a la izquierda o el giro a la derecha y la parada.

S i todo va bien ahora ya puede agregar pixy, pero para que funcione el robot antes tendrá que programar Arduino para que en función de la salida de Pixy2 de las ordenes oportunas a los motores

Como ejemplo de código vamos a ver una demostracion de como podemos controlar lso dos motores usando unicamente la informacion apoportada por

Y ahora en un vídeo podemos ver el robot funcionando:

En general, es un excelente sistemas de visión inteligente introductorio pues podemos dar seguimiento de objetos a un robot de manera mucho más fácil que usar un pc de una sola placa con OpenCV (más requisitos de menor potencia) pues se conecta fácilmente a un Arduino Nano o Uno (entre otros sistemas) gracias a los ejemplos de código que proporcionan que ayudan a ponerlo en marcha rápidamente .Ademas es muy fácil configurarlo utilizando las instrucciones en su sitio web pues hay ejemplos integrados en su software.


Volver a la Portada de Logo Paperblog