Étiquettes : ,

La caméra Pixy2 est un système de reconnaissance visuelle assistée par ordinateur. Elle permet à votre microcontrôleur de détecter des couleurs ou des lignes pour créer un robot suiveur de ligne par exemple ou pour attraper des objets de couleurs.

Matériel

  • Ordinateur
  • Arduino UNO, Mega ou Nano
  • Câble USB A Mâle/B Mâle
  • Caméra Pixy2

Principe de fonctionnement

L a caméra Pixy2 est un système de vision complet muni d’un capteur d’image et un microprocesseur. Elle embarque des algorithmes d’apprentissage et de détection de couleur, de ligne, d’intersection et de petit code barre. Elle embarque toute la technologie nécessaire à la reconnaissance visuelle.

Spécifications techniques

  • Processeur : NXP LPC4330, 204 MHz, double cœur
  • Capteur d’image : Aptina MT9M114, résolution 1296×976 avec processeur de flux d’images intégré
  • Consommation d’énergie : 140 mA typique
  • Puissance absorbée : Entrée USB (5V) ou entrée non régulée (6V à 10V)
  • Données disponibles : UART série, SPI, I2C, USB, numérique, analogique
  • Dimensions : 38.1 x 41.91 x 15.24mm
  • Poids : 10g
fetch.php?w=640&tok=bfa5e6&media=wiki:v2:pixy2_front_labeled Vision par ordinateur avec Arduino et la caméra Pixy2
fetch.php?w=640&tok=1ad7a1&media=wiki:v2:pixy2_back_labeled Vision par ordinateur avec Arduino et la caméra Pixy2

Schéma

La caméra Pixy2 peut facilement communiquer avec un microcontrôleur à l’aide de ses interfaces de communication (UART, SPI, I2C, USB). Elle se connecte au port ICSP de la carte Arduino.

arduino-icsp-port Vision par ordinateur avec Arduino et la caméra Pixy2
arduino-mega-pixy2-connexion-icsp Vision par ordinateur avec Arduino et la caméra Pixy2

Configuration de la caméra Pixy2

Téléchargez le logiciel pixymon

Ouvrez le logiciel PixyMon v2

software-pixymonv2-color-connected Vision par ordinateur avec Arduino et la caméra Pixy2

Apprentissage de la reconnaissance

Avant de pourvoir utiliser la Pixy2, il va falloir lui apprendre à reconnaitre les objets qui nous intéresse et leur affecter une signature (identifiant). Il est possible d’enregistrer jusqu’à 7 signatures.

  • appuyer sur le bouton en haut de la caméra jusqu’à ce que la LED devienne rouge puis relâcher.
  • placer un objet devant la caméra
software-pixymonv2-color-connected-setting Vision par ordinateur avec Arduino et la caméra Pixy2
  • appuyer à nouveau sur le bouton pour enregistrer l’objet
software-pixymonv2-color-connected-set Vision par ordinateur avec Arduino et la caméra Pixy2

Une fois l’apprentissage effectué, on peut voir que l’objet est entouré d’un rectangle avec la signature écrit en son centre.

Si vous avez des soucis pour reconnaitre l’objet appris il est possible de configurer la sensibilité de la reconnaissance dans les paramètres
allez dans file -> configure sous l’onglet tuning et jouer avec les paramètres pour obtenir le résultat voulu.

Certains objets ne sont pas reconnaissables facilement. Essayez de trouver des objets avec des formes particulière et des couleurs vives et distinctes.

Code

Installez la librairie Arduino Pixy2. La fonction la plus importante est getBlocks() qui retourne le nombre de blocs détectés et des informations comme leurs signatures (identifiant après apprentissage) et dimensions.

//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 vous rencontrez des problèmes de compilation, vous pouvez supprimer les fichiers zumobuzzzer et zumomotor (.h et .cpp) dans le dossier de la librairie Documents\Arduino\libraries\Pixy2

Résultat

Une fois le code téléversé, la caméra envoie des messages à l’Arduino dès que l’objet apparait dans son champ de vision. Vous avez alors accès à la signature de l’objet, sa dimensions et sa position.

arduino-pixy2-color-tracking-result Vision par ordinateur avec Arduino et la caméra Pixy2

Applications

  • Faire de la reconnaissance de forme ou du suivi de ligne avec Arduino
  • Application Dobot

Sources

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