MBot

De Kernel Fablab Lannion


Cette page regroupe quelques trucs et astuces pour l'animation d'activités à destination des enfants autour de la plateforme mBot/MakeBlock.


Montage

Le montage du mBot peut être effectué par les enfants sous supervision d'un adulte. La notice type LEGO ou Meccano est assez simple et claire. Il sera tout de même souhaitable de faire effectuer le vissage des roues (en force) par l'animateur. Il faudra également toute l'attention de l'animateur pour le montage des capteurs et les branchements (donc un adulte seul ne peut pas forcément surveiller plusieurs montages en parallèle dans un contexte salon avec beaucoup de visiteurs).

ATTENTION prévoir 4 piles AA et une pile bouton CR2025 car elles ne sont pas inclues dans les kits (6 piles AA pour le robot à chenilles)


À l'issue du montage

Le mBot est livré avec un firmware qui permet de jouer un peu avec dès la fin du montage (pourvu qu'on ait des piles...). Le robot est contrôlable avec la télécommande (haut, bas, gauche, droite). Le bouton B permet de passer en mode exploration, le bouton C en mode suivi de ligne (une piste sur une feuille A3 qui rappelle étrangement un logo Arduino est présente dans le kit). Le bouton A permettra de repasser en mode téléccommandé. En mode suivi de ligne, les boutons numériques permettent de changer la vitesse du robot.


L'environnement mBlock

mBlock est un environnement graphique basé sur Scratch qui permet de programmer le mBot, grâce à des "blocs" spécifiques (dans la catégorie "Pilotage" pour la version française). Il n'est à ce jour disponible que pour Windows et OS X. On pourra, au choix, faire tourner son programme Scratch dans mBlock (donc sur le PC) en accédant aux capteurs et moteurs de mBot via WiFi ou Bluetooth, ou générer un firmware que l'on pourra verser dans le microcontrôleur embarqué (simili Arduino) afin de le faire fonctionner de manière autonome.

Il faudra dans tous les cas, à l'issue du montage, charger un firmware car celui d'origine ne permet pas la prise de contrôle de mBot via liaison sans fil. Pour cela, brancher le mCore en USB puis cliquer sur "connecter" -> "par port série (COM)" -> sélectionner le port nouvellement apparu suite à branchement USB.

Une fois la barre de titre indiquant que la connexion série est effective, on pourra, pour verser le firmware permettant la prise de contrôle via WiFi/Bluetooth, cliquer sur "Connecter" -> "Mettre à jour le microprogramme". On pourra alors déconnecter le câble USB pour se connecter en WiFi ou Bluetooth (toujours via le menu "Connecter").

Pour verser un firmware généré à partir de mBlock, la connexion série via USB étant établie, remplacer le bloc de démarrage du programme Scratch ("Quand drapeau vert pressé") par un bloc "mBot: générer le code", cliquer avec le bouton droit sur ce dernier -> "téléverser dans l'Arduino" puis cliquer sur le bouton du même nom dans l'IDE Arduino embarqué qui apparaît sur la droite.

Pour restaurer le firmware d'origine qui permet le contrôle à la télécommande, cela se fait également avec la connexion série établie via le menu "Connecter" => "Réinitialiser le microprogramme d'origine".


Exemples de blocs proposés par mBlock

  • contrôle des LEDs RGB sur la carte
  • jouer une note sur le buzzer de la carte
  • définir une vitesse moteur
  • lire la distance du capteur ultrason
  • lire l'état du capteur de suivi de ligne

(c'est à peu-près tout avec le kit de base mais le FabLab dispose de quelques autres accessoires)

  • afficher une image sur la matrice de LEDs
  • afficher une valeur sur l'afficheur numérique
  • changer la consigne d'un servo-moteur/moteur à pas
  • lire un angle au joystick
  • lire l'inclinaison d'un gyroscope

...


Specificités et glitches des modes autonome et asservi

Le comportement d'un programme Scratch ne sera pas strictement identique selon qu'on le fasse tourner dans l'environnement mBlock (avec connexion WiFi/Bluetooth au mBot) ou en mode autonome (après avoir généré et versé le firmware équivalent pour Arduino).

En particulier, lorsque le programme tourne dans l'environnement mBlock, il y a de la latence dans la lecture des données capteurs et l'envoi de consignes moteur. Cette latence fait que les programmes seront typiquement moins réactifs et on ne pourra pas, par exemple, faire tourner en mode asservi le programme d'évitement de chute en bord de table proposé dans l'archive : le délai détection du vide -> décision -> marche arrière est trop long et le robot tombe de la table.

A l'inverse, l'utilisation du capteur ultra-son en mode autonome est plus ardue qu'en mode asservi car les valeurs lues sont bruitées alors qu'elles sont apparemment filtrées lorsqu'on les lit depuis mBlock. Cela fait qu'un programme Scratch où la détection d'un seuil de distance entraîne un enchaînement d'actions (ex : "si distance < 20cm alors reculer 0.5 seconde puis tourner 1 seconde") aura un comportement erratique en mode autonome. Il faudra parfois ruser dans le programme pour tenir compte de ce bruit (ex : constater 10 mesures à 10ms d'intervalle toutes inférieures à 20cm avant d'entraîner un enchaînement d'actions). C'est plus une affaire à embrouiller le public qu'autre chose donc le mieux à faire pour les ateliers enfants est peut-être de toujours travailler en mode asservi et de ne pas tenter la détection de bord de table...


Fichiers mBlock

Quelques comportements de base ont été reproduits dans les programmes de l'archive suivante : robot explorateur, suivi de lignes, évitement de chute en bord de table.

Fichier:Projets mBot.zip