Icono del sitio AranaCorp

Visión por ordenador con Arduino y la cámara Pixy2

La cámara Pixy2 es un sistema de reconocimiento visual asistido por ordenador. Permite al microcontrolador detectar colores o líneas para crear un robot que siga líneas, por ejemplo, o para atrapar objetos de colores.

Material

Principio de funcionamiento

La cámara Pixy2 es un sistema de visión completo equipado con un sensor de imagen y un microprocesador. Incluye algoritmos de aprendizaje y detección de color, línea, intersección y código de barras pequeño. Incorpora toda la tecnología necesaria para el reconocimiento visual.

Especificaciones técnicas

Esquema

La cámara Pixy2 puede comunicarse fácilmente con un microcontrolador utilizando sus interfaces de comunicación (UART, SPI, I2C, USB). Se conecta al puerto ICSP de la placa Arduino.

Configuración de la cámara Pixy2

Descargar el software pixymon

Abra el software PixyMon v2

Aprender a reconocer

Antes de poder utilizar el Pixy2, tendrás que enseñarle a reconocer los objetos que te interesan y asignarles una firma (identificador). Es posible guardar hasta 7 firmas.

Una vez realizado el aprendizaje, podemos ver que el objeto está rodeado por un rectángulo con la firma escrita en su centro.

Si tiene problemas para reconocer el objeto aprendido es posible configurar la sensibilidad del reconocimiento en los ajustes – vaya a archivo -> configurar en la pestaña de ajuste y juegue con los ajustes para obtener el resultado deseado.

Algunos objetos no son fácilmente reconocibles. Intenta encontrar objetos con formas particulares y colores brillantes y definidos.

Código

Instala la biblioteca Arduino Pixy2. La función más importante es getBlocks() que devuelve el número de bloques detectados e información como sus firmas (identificador tras el aprendizaje) y dimensiones.

//Libraries
#include <Pixy2.h>//https://github.com/charmedlabs/pixy2/raw/master/releases/arduino/arduino_pixy2-1.0.3.zip

//Variables
Pixy2 pixy;

void setup() {
  //Init Serial USB
  Serial.begin(9600);
  Serial.println(F("Initialize System"));
  //Init Pixy2
  pixy.init();
}

void loop() {
  testPixy();
}

void testPixy() { /* function testPixy */
  //// Get blocks from Pixy2
  // grab blocks!
  pixy.ccc.getBlocks();

  // If there are detect blocks, print them!
  if (pixy.ccc.numBlocks) {
    Serial.print("Detected ");
    Serial.println(pixy.ccc.numBlocks);
    for (int i = 0; i < pixy.ccc.numBlocks; i++) {
      Serial.print("  block ");
      Serial.print(i);
      Serial.print(": ");
      pixy.ccc.blocks[i].print();
    }
  }
}

Si tiene problemas de compilación, puede eliminar los archivos zumobuzzzer y zumomotor (.h y .cpp) en la carpeta de la biblioteca Documentos\Arduino\libraries\Pixy2

Resultado

Una vez cargado el código, la cámara envía mensajes al Arduino en cuanto el objeto aparece en su campo de visión. A continuación, tendrá acceso a la firma del objeto, sus dimensiones y su posición.

Aplicaciones

Fuentes

Retrouvez nos tutoriels et d’autres exemples dans notre générateur automatique de code
La Programmerie

Salir de la versión móvil