Les robots conçus pour apprendre à programmer sont utilise dans les associations, les FabLab ou les écoles. Celui d’Elecfreaks s’appelle CuteBot PRO. C’est l’évolution d’un précédent modèle et il prend en compte les remontées des utilisateurs. La carte principale comporte un MCU qui gère les moteurs avec des codeurs pour garantir la reproductibilité des déplacements, mais aussi les différents capteurs. Une carte micro:bit complète le robot et permet la programmation en mode blocs avec MakeCode. Le tout est alimenté par une batterie 18650 rechargée par le robot lui-même.
Au sommaire :
Robot CuteBot Pro d’Elecfreaks pour Micro:bit
Déballage
Le robot est livré dans une boîte en carton rigide.
La présence du capteur ultrason et de l’espèce de sourire dessiné sur la carte lui donne une bouille sympathique.
Peu de choses dans la boîte, une fois la notice et la piste pour le suivi de ligne enlevées, on trouve le robot tout monté. Il suffira de connecter le détecteur de distance ultrasonore. Le câble USB servira à charger la batterie et à connecter la carte micro:bit à votre PC.
Le détecteur ultrasonore de distance est un classique, il est monté sur un support pour s’adapter au robot.
Le SONAR viendra se positionner ici, sur la rangée de trous située à l’avant de la prise. L’autre rangée donne accès à un portI2C.
Le CuteBot Pro est sorti de sa boîte, il est pratiquement prêt à l’emploi
La partie principale du robot est une plaque de circuit imprimé qui sert également de châssis. Une carte montée en mezzanine embarque le support pour l’accumulateur 18650. On distingue bien ici le support (bleu) pour la carte micro:bit.
L’accumulateur 18650 et la carte micro:bit ne sont pas fournis.
Caractéristiques
Alimentation Batterie au lithium 18650
Courant de charge 1000mA
Temps de charge Environ 120 minutes
Tension de fonctionnement max. 4,2V
Tension de fonctionnement nominale 3,7V
Tension de fonctionnement minimale 3,3V
Tension de sortie des connexions du moteur 3,3V
Courant de sortie max. des connexions du moteur 0,2A
Tension de sortie des connexions servo = Tension actuelle de la batterie
Courant de sortie max. des connexions servo 3A
Tension de sortie des ports IO 3,3V
Courant de sortie max. des ports IO = 3A
Dispositifs embarqués : 2 LEDs RGB sous le robot ; 2 phares LEDs RGB ; 1 buzzer ; 1 module de réception infrarouge, 4 capteurs de suivi de ligne infrarouge
4 Connexions servomoteurs
1 Connexions moteur
4 Connexions GPIO
2 Ports IIC
Plus de détails sur la carte CuteBot Pro
Les composants
Curieux (comme un maker) j’ai été intéressé par la carte électronique du robot CuteBot Pro. Vous trouverez ci-dessus les principaux circuits intégrés utilisés, et ci-dessus leur destination (pou certains la doc n’est qu’en chinois…)
- MM32 : C’est un microcontrôleur proche du STM32
- RS358A : Double ampli OP rapide
- 75V15 : Pilote de moteur YX-75V15 Toy DC Motor Driver IC Motor Forward and Reverse IC Speed Control 1.2A
- 1230AM : Commande de moteur 12v/3A
- DW06D : Circuit de recharge batterie
- TCA4056 : Chargeur de batterie Li-on
Les photos
Un des deux phares du robot. C’est une LED RGB de grand diamètre appelée HeadLight dans les blocs de programmation.
Le connecteur M pour un moteur supplémentaire, avec le circuit de commande moteur à côté.
Sous la mezzanine on trouve le buzzer (flèche jaune) devant lequel 4 broches donnent accès à un port I2C (Masse, +3v, IO19, IO 20).
Connecteur d’extension pour 4 servomoteurs.
A droite les broches sont des extensions de ports GPIO.
A l’avant du robot on trouve la roue folle. 4 détecteurs de lignes (flèches jaunes) détectent la présence d’une ligne noire. ils sont constitués d’un émetteur/récepteur infrarouge. Leur mise en œuvre nécessite un apprentissage (étalonnage) déclenché par le bouton training (flèche bleue) expliqué un peu plus loin. Les deux LEDs RGB indiquées par les flèches rouges font partie d’un « ruban » indiqué « strip » dans les blocs de programmation. Ce sont des Neopixels WS2812B (ou équivalent) connectées au GPIO 15 et numérotées 0 et 1 (LEDs adressables).
Sur cette image on voit mieux en haut à droite le suiveur de ligne, à gauche le bouton poussoir Training et enbas la LED Neopixel P15_1.
Les 4 LEDs à l’avant du CuteBot Pro permettent de lire l’état des détecteurs de lignes. Allumées ou éteintes selon ce qui est détecté.
La procédure d’étalonnage (ou d’entraînement) est la suivante :
- Mettre le CuteBot sous tension (pas besoin de la carte micro:bit)
- Positionner les détecteurs de ligne (ils sont à peu près sous le support de la carte micro:bit) sur une zone claire (blanche)
- Appuyer sur le bouton Training
- Les LEDs s’allument une à une, puis clignotent rapidement indiquent que le MCU balaye en lecture les capteurs de ligne.
- Avancer et reculer plusieurs fois les capteurs de ligne (au niveau du connecteur bleu de la micro:bit) au dessus de la ligne noire. Cela permet au microcontrôleur de mesurer les valeurs maxi et mini et de les enregistrer, puis de vérifier que la détection fonctionne bien.
- Lorsque l’étalonnage est fini, les deux « phares » s’illuminent en vert. C’est terminé.
- Si les phares s’allument en rouge, l’étalonnage a échoué, il faut recommencer !
A l’arrière du robot on trouve les moteurs et leurs connecteurs. Le nombre important de fils est dû au fait que ce robot gère les moteurs des roues en boucle fermée. Des capteurs optiques (flèche jaune sur l’image ci-dessous) enregistrent les rotations de chaque moteur, ce qui permet au microcontrôleur MM32 de connaître exactement l’angle dont chaque moteur a tourné et de gérer la distance parcourue avec précision, ainsi que les angles lors des virages.
Gros plan sur les capteurs optiques couplés à l’axe des moteurs d’entraînement.
Ici à l’arrière de CuteBot Pro, une prise micro USB permet d’alimenter le robot et de recharger la batterie. Un petit oubli (?) le commutateur Arrêt/Marche n’a pas d’indication. La position marche est ici à gauche vers les 4 LEDs situées sous le M. Ces LEDs indiquent l’état de charge de la batterie.
Juste derrière le commutateur A/M on voit les fils qui partent vers la batterie 18650. Entre le commutateur et le connecteur de batterie se trouve le récepteur Infrarouge.
Créer un programme
Rendez vous sur la page https://makecode.microbit.org et créez un compte si vous n’en avez pas encore.
Configurer makecode
Cliquez sur la croix bleue Nouveau Projet
Donnez un nom à votre projet. Choisissez un nom qui veut dire quelque chose car quand vous aurez de nombreux projets, il faudra pouvoir les reconnaitre. J’appellerai le mien cutebot_patrouille. Validez avec le bouton Créer.
Vous retrouvez le nom du projet en bas de la page (flèche bleue). Cliquez sur Extensions (flèche rouge).
Descendez la page jusqu’à trouver cutebotpro et cliquez sur l’icône.
L’extension cutebotpro est téléchargée et ajoutée à votre interface (flèche rouge).
Cahier des charges
Les LED du dessus et celles du dessous de CuteBot clignotent en rouge/bleu. quand on appuie sur le bouton A de micro:bit, le robot avance de 20 cm, s’arrête 2 secondes, puis repart en arrière.
Écriture du programme
Pour commencer à écrire mes programmes pour CuteBot Pro, j’ai utilisé Firefox comme à mon habitude. Vous verrez que ce n’était pas le bon choix… Mais je vous raconte tout ça.
Déclaration des Neopixel
Dans Neopixel choisissez la première ligne (strip) et glissez la dans la boucle de Démarrage.
Configurez la comme ci-dessus, à savoir un ruban (strip) de 2 néopixel (diodes RGB) connectées à la broche 15.
Lecture du bouton et mouvement du robot
Dans Entrées, prenez la brique lorsque le bouton A est pressé et glissez la dans la zone de programme
Insérez les instructions pour faire avancer, attendre 2 secondes, puis reculer le robot.
Faire clignoter les LED
Dans la brique toujours écrire le programme ci-dessus pour faire clignoter les LEDs
Enregistrer le programme
Le mieux est de garder le programme en local sur votre ordinateur. Cliquez sur l’icône de la disquette.
Choisissez un dossier pour enregistrer le programme. il sera enregistré au forma .hex qui est un programme directement exécutable par la carte micro:bit.
Une fois le programme téléchargé, vous pouvez le transférer sur la carte micro:bit. Connectez la carte micro:bit à un port USB de votre ordinateur. Elle apparait comme une clé USB.
On va déplacer notre programme en faisant simplement glisser le fichier sur la carte micro:bit.
Et là, horreur! après quelques instants, la fenêtre se rouvre, un fichier fail.txt apparait. L’afficheur à LED de la micro:bit affiche une visage triste puis le code 521 et en cherchant un peu sur les pages de micro:bit on trouve ceci :
Qui renvoie à une erreur produite sous Windows qui devrait être corrigée en septembre 2023 (peut-être). Ça nous renvoie aussi à une page qui nous donne ce conseil :
Pour utiliser WebUSB il faut utiliser Chrome ou Edge. Bon, ok, je passe sur Chrome pour la suite.
Transférer le fichier sur micro:bit avec Chrome
Dans Chrome quand vous cliquez sur Télécharger, une fenêtre vous demande de connecter la carte micro:bit. faites le. La fenêtre s’ouvre pour donner accès à la mémoire de la micro:bit.
La première fois que vous connecterez la carte, il faudra choisir la carte connectée en USB et valider. Par la suite la connexion sera directe. Vous obtenez ceci :
Vous pouvez cliquer sur télécharger et votre programme est transféré sur la carte. Vérifiez que le programme se comporte comme prévu :
Wiki de CuteBot PRO
Vous trouverez toutes les informations (en anglais) sur le Wiki de CuteBot Pro ainsi que des programmes exemples pour commencer à utiliser le robot. Les exemples remote-control permettent de piloter le robot avec une télécommande comme ci-dessous
Cet article n’est pas destiné à apprendre l’utilisation de MakeCode avec la micro:bit, je vous laisse découvrir tout cela à votre rythme.
Un suiveur de ligne
Pour voir comment fonctionne le suiveur de ligne, je me suis fait mon propre programme. Là, pas d’hésitation, je sors le crayon et j’analyse ce que je veux faire :
C’est ce qui me permet de raisonner sur les différents cas possibles. J’ajouterai l’allumage du phare du côté où la roue tournera pour ramener le robot sur la ligne. La seule modif sur le programme final c’est que quand le robot est loin de la ligne (4 LEDs éteintes) je faisais un cercle au début. Après quand le programme fonctionne ça n’a plus lieu d’être et j’arrête simplement les moteurs.
Et voila CuteBot parti à l’aventure …
En vidéo ça donne ça
Le programme : https://makecode.microbit.org/S87581-00254-06380-66095
Vidéo
Conclusion
Le CuteBot Pro est un robot pré-monté qui ne nécessite pas de connaissances spéciales en électronique pour démarrer. Il est rapidement mis en œuvre à condition d’avoir sous la main (ou de les avoir commandés en même temps !) une batterie de type 18650 et une carte micro:bit. Si vous voulez écrire des programmes utilisant une télécommande, ajoutez celle d’Elecfreaks pour 1,90$… J’en ai essayé d’autres mais les codes ne correspondent pas et ce n’est pas pratique.
Un bon outil pour apprendre à programmer en ligne si on connait déjà Scratch ou MakeCode. L’avantage que je trouve à ce genre de matériel, c’est qu’on voit réellement la programmation, ce n’est pas juste sur l’écran ou sur une matrice de LEDs mais le robot répond aux commandes qu’on a écrites…
CuteBot Pro est en vente au prix de 49,90$ sur le site Elecfreaks. Il bénéficie d’une remise avec l’opération Back to Schook Sale, il suffit d’entrer le code réduction BTS12. (valable jusque mi septembre 2023 environ)
Sources
Carte micro:bit chez Elecfreaks
Wiki de CuteBot Pro
http://wiki.elecfreaks.com/en/microbit/microbit-smart-car/microbit-smart-cutebot-pro/
Ping : Robot CuteBot Pro d’Elecfreaks pour Micro:bit
Bonjour ;
J’ai bien étalonné les 2 CUTEBOT et les 2 DELS VERTES se sont allumées.
Mon CUTEBOT fonctionne très bien en suiveur de ligne pas de problème.
Par contre mon CUTEBOT-PRO ne fonctionne absolument pas comme suiveur de ligne ??? Il n’avance pas ???
Qu’est ce qu’il se passe avec ??? Pouvez-vous m’expliquer cela ???
Merci infiniment de votre service.
Bien à vous
Christian
Bonjour Christian
désolé mais à distance et juste avec comme indication que ça ne fonctionne pas
je ne peux pas vous aider
https://www.framboise314.fr/depanner-un-raspberry-pi-ce-nest-pas-de-la-voyance/
cdt
francois