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


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.


Configuration de la caméra Pixy2
Téléchargez le logiciel pixymon
Ouvrez le logiciel PixyMon v2

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

- appuyer à nouveau sur le bouton pour enregistrer l’objet

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.

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