Ce qui a motivé cet article, c’est mon examen du capteur d’image Pixy CMUcam5.

En fait, la motivation était certains problèmes que j’avais essayés de créer un robot de suivi d’objets en utilisant mBot. Des problèmes qui ont été facilement résolus (mais comme je n’ai pas beaucoup de compétences en programmation, cela ne me paraissait pas si simple à première vue).

Bien sûr, c’est toujours un bon moyen d’en savoir plus. Et puis je veux partager les étapes de la mise en œuvre des visions chez ce petit gars.

(Juste une note: mBot a également été reçu d’un « appel à critiques ».)

Dans le processus de création du contenu pour l’examen, j’ai pensé qu’un bon moyen de montrer le potentiel de Pixy serait un robot de suivi d’objets.

Pixy est très compatible avec Arduino (à tel point qu’il est livré avec un câble adapté pour cela pour se connecter / s’interfacer avec les broches ICSP SPI dans Arduino).

Le cerveau de MBot (carte mCore) fonctionne comme un Arduino UNO (ATmega328) et possède également un en-tête ICSP SPI. Les connexions sont donc faciles.

Tout fonctionnait bien et mBot pouvait chasser les objets. Mais mCore dispose de deux LED RVB intégrées qui clignotent de manière aléatoire. Comme je l’ai déjà dit, ce serait bien si la couleur des LED RVB était la même que celle de l’objet poursuivi, mais de cette façon, c’était ennuyeux.

Ce que je ne savais pas jusque-là, c’est que les jambes SPI (MOSI, MISO, SCK) utilisent en fait les jambes numériques 11, 12 et 13 dans mCore / Arduino UNO [1]. Et sur la carte mCore, la broche numérique 13 contrôle deux LED RVB WS2812s [2]. Cela explique tout ce spectacle de lumière.

Vu cela, il est nécessaire de trouver une interface alternative (et maintenant je peux voir à quel point Pixy a tant de façons d’interface) [3]. Et en analysant les alternatives, il est devenu clair que la plus simple et la plus appropriée serait I2C.

D’abord parce qu’il ne nécessite que deux pattes (A4 pour SDA et A5 pour SCL [4]) plus 5V et GND. Et d’autre part, car il suffisait de remplacer les deux lignes ci-dessous:

#include <SPI.h>  
#include <Pixy.h>

à:

#include <Wire.h>
#include <PixyI2C.h>

Le reste du code est resté le même (le code est disponible ici).

L’interface de sortie de données standard de Pixy est SPI. Pour que tout fonctionne correctement, il doit être changé en I2C avec l’application PixyMon (Fichier, Configurer, Paramètres Pixy (enregistrés sur Pixy), Interface, Port de sortie de données, I2C).

Pour attacher Pixy dans mBot, j’ai fait un support de montage personnalisé (le modèle se trouve dans les pièces jointes).


Les fils ont été faits avec un Fil RJ25 vers Dupont de Makeblock. Comme son nom l’indique, il s’agit de RJ25 à une extrémité (connecté à n’importe quel port du mCore) et de cavaliers Dupont à l’autre extrémité (connectés aux jambes d’E / S de Pixy, comme illustré ci-dessous).


Vous pouvez voir dans la vidéo que j’ai connecté l’extrémité RJ25 au port 1 du mCore, mais comme je l’ai dit, il peut être connecté dans n’importe quel port car tous les ports ont le nécessaire SCL, SDA, GND et 5V, comme vous pouvez le voir dans l’image ci-dessous (surligné en rouge). (Testé et cela fonctionne réellement.)


     Ok... that's all for now. The rest you can see in the videos.

Références:

1. https://www.arduino.cc/en/Reference/SPI – Arduino – SPI

2. https://github.com/Makeblock-official/mBot_Firmata/blob/master/hardware/mCore.pdf – mBot_Firmata_mCore.pdf chez master · Makeblock-official_mBot_Firmata · GitHub – Calendrier mCores

Http://cmucam.org/projects/cmucam5/wiki/Porting_Guide – Guide de portage – CMUcam5 Pixy – CMUcam_ Capteurs de vision couleur intégrés programmables Open Source

4. https://www.arduino.cc/en/Reference/Wire – Arduino – Fil

Liens supplémentaires:

http://tutorial.cytron.com.my/2015/08/28/colour-tracking-mobile-robot-pixy/ – Robot mobile de suivi des couleurs (PIXY) – M’a aidé avec la programmation.

http://cmucam.org/projects/cmucam5/wiki/Latest_release – Dernière version – CMUcam5 Pixy – CMUcam_ Capteurs de vision couleur intégrés programmables Open Source

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *