Guía para la configuración e instalación de la cámara Pixy para utilizarla en diferentes escenarios.

El objetivo de este texto es proporcionar la documentación básica de funcionamiento en español para favorecer el uso de la comunidad de este sensor open source con muchas posibilidades por explorar.

Necesitaremos un ordenador o RaspberryPi para el proceso de configuración. Una vez configurado funciona de manera autónoma independientemente del computador.

Si necesitas comprarla, la hemos encontrado en amazon y en aliexpress por unos 78 euros.
Vamos allá, esta sería la serie de pasos que debemos seguir para la configuración de Pixy:

Instalar PixyMon

Vamos primero a instalar el programa PixyMon (Pixy Monitor) que es el encargado de comunicarse con la cámara y de instalar el firmware. Existen diferentes versiones del programa, para tracking por color, y para tracking de infrarojo, así que tendremos que tener versiones diferentes del programa PixyMon en función del firmware que queramos utilizar.

Para instalar la última versión oficial puedes ir al wiki de la cámara y descargarte la última versión para Windows, Mac o Linux.

Para instalarte la versión de detección para luminosidad (Infrarojos) puedes ir al archivo de IR-Lock.

Lo hemos probado en con estas instrucciones para Ubuntu, es necesario instalar unos paquetes y funciona correctamente:

sudo apt-get install git g++ libusb-1.0-0-dev  qt4-dev-tools  qt4-qmake qt4-default  

Una vez tengas instalado y funcionando el programa PixyMon en tu ordenador y te hayas descargado el firmware (archivo .hex),  podremos instalarlo en la cámara.

Instalar Firmware

El firmware contiene los algoritmos de tracking de objetos, existen muchos tipos de algoritmos de visión artificial, pero no todos están implementados en la cámara Pixy. Pixy tiene una memoria ROM donde se puede introducir el firmware a través de USB, lo que la hace “unbrickable” aunque te equivoques subiéndole un firmware erróneo, no la puedes romper. Veamos los dos principales firmwares disponibles:

Misma escena vista por una cámara sin ningún filtro y con filtro de luz visible.

Como podeis observar, la detección por infrarojos es mucho más fácil de computar y presenta menos errores falsos positivos, pero obliga a utilizar luz infraroja y filtros.

Detección por Color:

Es el algoritmo por defecto de la cámara, utliza un modelo de color HSL para determinar el tono del objeto a trackear. Es el más utilizado pero no es el que utilizamos en Open Light Motion para la detección de los drones.

Detección por Luminosidad:

Es un algoritmo mucho más robusto gracias a que lo utilizaremos con unas condiciones de luz concretas. Fue desarrollado por el equipo de IR-Lock para ser utilizado en su sistema de precision landing para drones. Está más orientado a detección de objetos brillantes por luz infraroja, por lo que en esta configuración normalmente se coloca un filtro de luz visible en la lente.

Simplemente asegurate que el USB de la cámara no está conectado, mantén el botón apretado, y conecta la cámara. Una vez conectada ya puedes soltar el botón y la cámara entrará en “firmware upload mode“. Puedes abrir ahora el programa PixyMon que detectará este modo y te pedirá el fichero de firmware a instalar, lo seleccionas y lo tendrás subido en pocos segundos. Es importante cada vez que instalamos un firmware nuevo darle a la opción en el menú “Action->Restore default parameter values“.

Probar el tracking de objetos por color

Para probar si la cámara funciona correctamente  debemos ejecutar el programa PixyMon para determinar si la lente está bien enfocada o si apunta a nuestro objetivo. Para esto simplemente conectamos la cámara y ejecutamos el programa, que nos mostrará una imagen de lo que está viendo la cámara y los objetos detectados.

La barra de menú del programa contiene las opciones principales, que son:

PLAY/STOP. Para encender o apagar la cámara..

Default Program. Para activar el algorimo por defecto instalado en la cámara.

RAW. Muestra el vídeo crudo, sin procesar.

Cooked Video. Mustra el vídeo procesado, con los objetos detectados.

 

Con el firmware por defecto, basta con apretar el botón de la cámara cuando se encuentra frente al objeto que queremos hacer tracking. Mantenemos el botón apretado hasta que el led de la cámara sea igual al objeto detectado y en ese momento soltamos. A partir de ese momento la cámara trazará todos los objetos que tengan ese color en la escena.

Filtros / lentes

Gracias a que la cámara trae una montura universal m12, podemos colocar diferentes tipos de lentes, tele-objetivo con zoom manual, gran angular, (tienes un gran catálogo de lentes disponibles en banggood), para adecuarla a las necesidades de nuestra escena, generalmente si la cámara necesita estar muy lejos o muy cerca,  aunque las lentes que trae por defecto son suficientes para la mayoría de aplicaciones.

Conexión de datos

Una vez tengamos la cámara funcionando y reconociendo objetos, todos los datos producidos pueden ser enviados a través de diferentes protocolos, están ordenados por velocidad, ten en cuenta que Pixy puede enviar 6000 objetos por segundo, esto son muchos datos!

  • SPI – Ideal para Arduino
  • I2C – Cualquier dispositivo de comuncicación con I2C, como RaspBberry Pi
  • UART – Puerto serial común. RX y TX.
  • Analógico –  Señal servo del mayor objeto detectado objeto como un voltaje analógico entre 0 y 3.3 V.

Nosotros utilizamos un dispositivo Wireless con puerto serial basado en ESP8266 para poder leer los datos sin cables.

Alimentación de la cámara

La cámara puede ser alimentada por USB, o por una entrada entre 6 y 10V. Por comodidad la alimentamos por USB a través de una batería externa y la podemos colocar donde queramos. Con una batería de unos 1800 mAh tiene una duración de unas 5 horas.

Esto es todo en cuanto a la configuración, esperamos que disfrutes utilizando Pixy en tus proyectos de tracking de objetos. Próximamente publicaremos nuevas entradas, sobre como optimizar una escena para captura de movimiento con luz infraroja, y sobre como hacer la cámara wireless.