J’aime bien les robots Makeblock, ils sont de bonne qualité, mais surtout ils sont évolutifs. Vous pouvez très bien débuter par le modèle de base (mBot 1 ou 2) et rajouter plus tard de nouvelles fonctions (capteurs, écrans, servomoteur…).
C’est un peu comme un jeu de Meccano, le châssis possède de nombreux trous pour fixer d’autres éléments. Makeblock propose déjà de nombreuses extensions (sous forme de kit), mais si vous êtes un peu bricoleur, vous pouvez très bien fabriquer vous même vos modules ou vos éléments de décoration (pare-choc, moustaches, etc…).
Si vous voulez en savoir plus, vous pouvez consulter mon livre qui traite en détail de ce sujet au chapitre des robots pédagogiques.
La Smart Camera de Makeblock est une caméra « intelligente ». Elle intègre un système d’analyse des images qui lui permet de reconnaitre les couleurs, suivre une ligne ou même lire certains codes barres. Souvenez vous, l’année dernière je vous ai présenté le HuskyLens, un module similaire conçu par DFRobot pour son robot Maqueen.
Puisqu’il existe l’équivalent chez Makeblock (pour les robots mBot), j’ai eu envie d’essayer.
J’ai contacté Technologie services qui a accepté de m’envoyer gratuitement une Smart Camera (pour en parler dans cet article et la vidéo qui l’accompagne). Il s’agit donc d’un article sponsorisé, cependant je n’ai reçu aucune instructions spécifique et bien sûr je ne touche aucune commission sur les ventes.
Présentation en Vidéo
Contenu de la boite
La boite est de très bonne qualité, vous y trouverez le système de fixation (pièces métalliques, vis et écrous), les câbles pour relier entre eux les différents éléments, des balles vertes et jaune/oranges, un assortiment codes barre (sous formes de cartes et d’autocollants) et bien sûr la caméra accompagnée de sa batterie rechargeable.
La caméra
La caméra possède un bouton d’apprentissage, une LED témoin (RGB) et une LED blanche très lumineuse. Le robot mBot sera branché sur le port I2C (avec un câble adaptateur vers le port RJ25 du robot). Comme la plupart des modules Makeblock récents, la caméra est équipée de 2 connecteurs mBuild. L’un d’eux permet de brancher la batterie rechargeable fournie dans le pack et l’autre pourrait être relié à une carte Halocode ou un robot mBot2 (mais je n’ai pas testé). Vous pouvez également alimenter la caméra avec une batterie lithium 3,7V (non fournie).
Branchement
Voilà le schéma de branchement de la caméra au robot mBot. Vous n’êtes pas obligé d’utiliser le port n°3, il suffira simplement de l’indiquer dans votre programme.
Suivi de couleurs
La caméra est capable de mémoriser jusqu’à 7 couleurs différentes. Elle pourra ensuite les reconnaitre et suivre un objet (de cette couleur).
Comme indiqué dans la documentation de Makeblock, j’ai fixé la Smart Camera à l’avant avec l’équerre inclinée à 45° et la batterie à l’arrière avec l’équerre à 90° (ça fonctionne très bien et c’est très facile puisque tous les éléments sont fournis dans la boite).
Pour faciliter la reconnaissance des couleurs, choisissez plutôt des objets monochrome, suffisamment grands et avec des couleurs bien marquées. Attention, la couleur change en fonction de la lumière. Pour éviter les problèmes, utilisez (si possible) la caméra dans le même environnement lumineux que pour l’apprentissage des couleurs. Faites aussi attention aux autres objets pouvant se trouver dans le champ de vision de la caméra. S’ils ont une couleur proche, il y a un risque de tromper la caméra.
Mémorisation des couleurs
L’apprentissage des couleurs peut se faire directement depuis l’interface (le bouton poussoir) de la caméra :
- Allumez la caméra (avec l’interrupteur situé sur la batterie),
- Appuyez longuement sur le bouton d’apprentissage (la LED RGB s’allume successivement en rouge, orange, jaune, vert, cyan, bleu et violet).
- Relâchez le bouton
- Placez un objet de couleur devant la caméra, la LED RGB change de couleur (à peu près la même que l’objet)
- Appuyez brièvement sur le bouton pour apprendre la couleur
- Maintenant, en présence de l’objet, la LED RGB s’allume de la couleur correspondante (et si on éteint la caméra, les informations sont conservées).
Cette méthode fonctionne, mais comme la Smart Camera ne possède pas d’écran, il est difficile de se rendre compte de ce qu’elle « voit » réellement. Après quelques essais on ne sait plus quel numéro correspond à chacune des couleurs et en cas d’erreur, il est impossible de tout effacer pour recommencer le processus d’apprentissage sur de bonnes bases.
Heureusement, il existe une autre solution. Téléchargez (et installez) PixyMon (v2), lancez le logiciel et reliez la caméra à l’ordinateur (en USB). L’image apparait telle qu’elle est vue par la caméra, la résolution est très faible mais ça n’a pas vraiment d’importance (on ne va pas l’utiliser pour filmer le mariage de notre cousine). Allez dans Program, sélectionnez color_connected_components et ensuite allez dans Action – Set signature 1… pour mémoriser une couleur.
Encadrez la zone avec la souris (en cliquant avec le bouton gauche). Lorsque vous relâchez, la couleur est enregistrée (en cas d’erreur, il suffit de recommencer cette opération).
Vous pouvez enregistrer d’autres couleurs, effacer une seule couleur (Action – Set CC signature x…), toutes les couleurs mémorisées (Action – Clear all signatures) ou restaurer la configuration par défaut (File – Restore default parameters).
Programmation du robot
Téléchargez et installez la dernière version de mBlock. Lancez le programme, cliquez sur ajouter (à gauche), sélectionnez mBot et cliquez sur OK.
Pour obtenir les blocs nécessaires à la programmation de la Smart Camera, cliquez sur extension, puis sur Ajouter (en bas de Smart Camera). Sélectionnez ensuite le mode Téléverser (ça ne fonctionne pas en mode En direct).
Ces 2 exemples de code sont inspirés de la documentation Makeblock (le lien est en bas de la page). Ils permettent de suivre la couleur 1, mais vous pouvez facilement les modifier pour qu’ils en suivent une autre. Le premier programme est très facile à comprendre.
Mais le second est beaucoup plus performant.
Suivi d’un autre robot
J’ai modélisé une boule et un support pour la fixer au robot (avec des vis et des écrous M4).
Si cela vous intéresse, les fichiers 3D sont disponibles sur Printables.
Le robot bleu suit la boule verte du robot rose (en mode suivi de ligne).
Suivi de ligne
La caméra est également capable de détecter une ligne (pour que le robot puisse la suivre). D’après la documentation officielle, il faut que la caméra soit plus haute, mais également parallèle à la ligne.
Malheureusement, le grand mât qui apparait sur le schéma n’est pas fourni dans la boite et en plus la longueur du câble d’alimentation ne permettrait pas de placer aussi haut la caméra (ou alors, il faudrait déplacer la batterie).
Il faudra donc bricoler un support, mais si vous disposez d’une imprimante 3D, vous pouvez utiliser les mêmes fichiers que moi (disponibles ici).
Pour que cela fonctionne, il faut régler avec soin l’angle de la caméra, l’allumer avant le robot, attendre quelques instants pour que le robot détecte la ligne et appuyer ensuite sur le bouton (pour que le robot démarre).
Vous pouvez utiliser cet exemple de code (inspiré par celui de MakeBlock) :
Sur une piste classique, la Smart Camera est un peu décevante puisqu’un simple capteur de suivi de ligne est bien plus performant (mais c’est normal, puisque les pistes sont destinées à ce type de capteur).
Cependant, la caméra est capable de détecter un simple trait sur une grande feuille. Cela permet de tester rapidement de nouveaux tracés et ouvre de nouvelles possibilités. Par exemple, vous pouvez fabriquer une piste géante en quelques minutes en déployant une nappe en papier sur le sol et en traçant rapidement une ligne au feutre.
Code barres
La caméra peut également reconnaitre les étiquettes (codes barres). Elles sont fournies avec la Smart Camera, mais pouvez aussi les imprimer vous même (le lien est à la fin de l’article). Ensuite, il suffit simplement de les disposer sur la piste pour que la caméra puisse les lire. Attention, si l’étiquette est à l’envers, elle ne sera pas prise en compte.
Voilà par exemple comment changer la couleur des LED ou stopper le robot (avec les étiquettes) :
Conclusion
C’est une extension étonnante et amusante pour le robot mBot. J’ai présenté la caméra en mars dernier à la MakerFight de Mulhouse et elle a beaucoup plu aux visiteurs.
Merci pour votre vidéo sur la Smart caméra. Votre robot suit extrêmement bien la balle. J’ai essayé le deuxième programme, qui est beaucoup plus performant, mais avec un Mbot2. Pour ma part, le résultat n’est pas concluant. Avez-vous testé le suivi d’une balle avec un Mbot2 ? Merci d’avance pour votre retour. Cordialement
J’aimeJ’aime
Bonjour Serge,
Une bonne reconnaissance des couleurs dépend énormément de la lumière, essayez de refaire le processus d’apprentissage que j’ai indiqué dans l’article sur fond neutre et dans les mêmes condition lumineuses que les tests de fonctionnement du robot.
Sinon, je n’ai pas testé avec le Mbot2, regardez du coté de la documentation officielle de Makeblock.
Bon courage
J’aimeJ’aime
Merci pour votre retour. Je vais suivre vos conseils et je permettrai de vous renvoyer un message pour vous donner le résultat. Encore un grand merci pour votre vidéo qui nous a fait gagner un temps précieux. Bien cordialement
J’aimeAimé par 1 personne
Bonjour, mes élèves d’atelier veulent absolument reproduire votre vidéo où le robot suis un autre robot mais avec les Mbot 2 qu’ils ont en leur possession. Le résultat n’est pas probant. Auriez-vous l’occasion de tester avec un Mbot 2 pour les aider ? Bien cordialement
J’aimeJ’aime
Bonjour Serge,
Je suis désolé mais je n’aurai malheureusement pas le temps de faire cela dans les semaines qui viennent. Cependant, je garde quand même votre suggestion dans un coin de ma tète (ce sera peut être pour un prochain article…).
Bien cordialement
J’aimeJ’aime
Merci, je dirai à mes élèves de suivre attentivement votre blog. En tout cas, merci pour votre réponse rapide. Bien cordialement
J’aimeJ’aime
Bonjour,
J’ai découvert votre blog sur la smart camera. Très intéressant
Je dispose d’un Mbot2 et essaie de faire fonctionner la caméra pour faire de la détection d’objet.
En vrac les difficultés rencontrées :
Bien cordialement
J’aimeJ’aime
Bonjour,
Effectivement la reconnaissance des couleurs dépend beaucoup de l’éclairage, c’est pour ça que je conseille de relier la caméra à un ordinateur pour vérifier qu’elle voit bien les objets.
Bien sûr, tous les programmes décris dans mon blog ont été testés et fonctionnent à condition de les reproduire dans les mêmes conditions (moi, j’ai utilisé le mBot 1).
Bien Cordialement
J’aimeJ’aime
Bonjour,
Merci pour votre réponse, je ferai des tests complémentaires et pourrais faire un retour d’expérience à partir d’un Mbot2
Concernant la mémorisation de l’apprentissage dans la caméra, avez-vous une astuce pour que celle ci fonctionne, ou bien est-ce un bug ?
Bien cordialement
J’aimeJ’aime
Non, je n’ai pas rencontré ce problème, vous êtes sûr que ce n’est pas lié à une différence d’éclairage ?
J’aimeJ’aime
Je vais refaire des tests car comme vous l’indiquer l’éclairage est vraiment très important.
Je vous tiendrai au courant. Un grand merci pour la réactivité.
J’aimeJ’aime