Étiquettes : ,
5
(2)

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

How useful was this post?

Click on a star to rate it!

Average rating 5 / 5. Vote count: 2

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?