Programmer ses robots avec mBlock
Apprendre à programmer un robot piloté par un Arduino avec mBot et mBlock5
Utilisé en France (par l’Éducation nationale) et ailleurs, plébiscité par des clubs de robotique et d’apprentissage de la programmation, le petit robot mBot de Makeblock est une belle entrée en matière.
Il permet non seulement de retrouver le plaisir d’un assemblage de pièces, comme du temps du Meccano où le résultat de quelques heures d’application produisait un objet concret, mais également de se familiariser avec l’algorithmique en programmant son comportement.
Le robot mBot se situe dans le courant de l’apprentissage des STEAM (sciences, technologie, électronique, arts et mathématiques).
Il est livré avec une base mécanique à assembler, un module embarquant un Arduino et disposant de LED et d’un buzzer pour communiquer. Le pack inclut également un capteur de suivi de ligne et un autre capteur pour mesurer la distance à partir d’ultrasons. Ce dernier est utilisé comme détecteur d’obstacle et permet de programmer des évitements comme lorsqu’un objet est posé sur la ligne que doit suivre le robot.
Description de mBot, basé sur un Arduino, et de son interaction avec mBlock5
Les enseignants et animateurs de clubs ne s’y sont pas trompés. Le module de commande de mBot est un Arduino, donc facilement programmable et suffisamment puissant.
L’interaction avec mBlock est grandement facilitée avec la version 5 puisque les blocs de commande disponibles dans la version sur tablette sont repris avec la même simplicité d’agencement.
Le choix du module se fait dans l’interface en ajoutant celui de mBot.
Après avoir cliqué sur Ajouter un appareil, sélectionnez mBot, puis ajoutez-le.
D’emblée, les blocs spécifiques à mBot sont disponibles dans l’environnement de programmation. Quatre nouvelles catégories sont ajoutées : Apparence, Montrer, Action et Détection.
La catégorie de blocs Évènements est enrichie de deux blocs dédiés à mBot. Le premier permet d’utiliser le bouton embarqué sur le module du robot et de détecter s’il est pressé ou relâché avant de lancer le programme.
Un autre bloc capture l’évènement de démarrage du module de pilotage de mBot, appelé mCore, et est équivalent à Quand Arduino démarre. Dans la capture d’écran ci-après, ce bloc est grisé, car le module...
Les blocs et les algorithmes de base pour les déplacements
Le contrôle des déplacements est facilité par des blocs dédiés.
Souvenons-nous de la programmation d’un pont en H pour contrôler et coordonner les deux moteurs d’un robot simple. Les blocs préprogrammés simplifient beaucoup les déplacements :
-
Ils permettent d’avancer, de reculer ou de tourner à gauche ou à droite pendant une durée déterminée et avec un niveau de puissance fixé.
-
Ils permettent également d’avancer, de reculer ou de tourner à droite ou à gauche selon l’option choisie, en précisant le niveau de puissance, donc la vitesse. Un même bloc gère donc les quatre types de déplacement et peut être inséré dans une boucle de contrôle.
-
Il est possible de stopper le mouvement.
-
On peut aussi moduler la vitesse des roues gauche et droite en même temps.
La modulation différenciée des roues permet d’avoir des mouvements agiles :
-
À la même puissance, mais en sens inverse : le robot tourne sur place, ce qui peut être pratique pour changer de direction dans un espace limité et avec un temps compté, comme dans le cas d’une coupe de robotique.
-
Dans le même sens, mais avec des puissances différentes, le robot virera avec élégance...
Utiliser les capteurs pour apprendre la programmation des déplacements
La raison pour laquelle deux capteurs permettant le suivi de ligne et la détection d’obstacle sont livrés en standard avec ce petit robot est qu’ils permettent de joindre l’utile à l’agréable en programmant des actions ludiques.
Le site de Makeblock fournit des cartes complémentaires à celle qui est livrée dans le coffret de base et encourage également à dessiner ses propres cartes.
Nous pouvons commencer par un circuit simple :
Puis, nous pouvons passer à quelque chose de plus compliqué :
Et, une fois que la programmation est maîtrisée, nous pouvons corser le tout en ajoutant des obstacles sur la ligne pour tester notre stratégie d’évitement. Dans la carte ci-après, les obstacles sont placés à l’intérieur ou sur les cercles :
Les capteurs sont pilotés par des blocs dédiés.
1. Les blocs à utiliser pour le suivi de ligne
Les blocs à utiliser pour le suivi de ligne sont rangés dans la rubrique Détection.
Nous voyons qu’un seul bloc suffit pour le suivi de ligne dans la mesure où il est capable de gérer un capteur sur quatre ports, de détecter si la couleur au-dessous de lui est noire ou blanche et de sélectionner la partie gauche du capteur...
Programmer un robot autonome
Qu’est-ce qu’un robot autonome ? Il s’agit d’un robot qui a le moins besoin possible d’une décision humaine pour orienter son comportement. Ce qui veut dire que l’ensemble des situations possibles et des conditions de fonctionnement doivent avoir été prévues et testées.
En général, l’autonomie d’un robot lui est donnée pour réaliser des tâches répétitives qui correspondraient à des routines de tâches manuelles dans le monde humain. La méthode de programmation par preuve repose sur des fonctions mathématiques qui permettent de démontrer que le fonctionnement est correct et qu’un programme se termine dans l’un des états décrits, quelles que soient les conditions.
En robotique ludique et pédagogique, cette exigence est un peu excessive dans la mesure où il n’est pas question de sûreté de fonctionnement et donc de protection des biens et des personnes, comme ce peut être le cas pour un ascenseur, par exemple.
L’algorithme qui rend un robot autonome repose sur la même vieille boucle infinie et sa batterie de conditions qui testent les valeurs des capteurs.
Ensuite, des sous-programmes envoient les instructions nécessaires aux actionneurs, que ce soient des moteurs, des afficheurs ou autres, pour qu’ils...
Piloter à distance son robot et contrôler les déplacements avec Bluetooth et mBlock5
Grâce à un module Bluetooth (pour les kits qui en sont équipés ou en en faisant l’acquisition), il est possible de piloter mBot à distance. C’est d’ailleurs le mode utilisé pour piloter le robot avec une tablette ou un smartphone.
L’appareil est connecté au robot qui reçoit les commandes par radio sur le port série de l’Arduino. Plusieurs options sont possibles :
-
Les actions du robot sont asservies à l’interface sur la tablette ou le smartphone qui fonctionne un peu comme une télécommande.
-
Le programme est élaboré sur l’ordinateur, la tablette ou le smartphone, puis téléversé dans la mémoire de l’Arduino.
Dans ce dernier cas, le robot est autonome et son comportement sera lié au codage de l’algorithme.
Aller au-delà de mBot : un robot sur mesure
mBot n’est qu’une base technique de première approche de la programmation en robotique qui porte des développements plus complets et plus complexes.
La généralisation du modèle de la boucle de détection et la progression dans la connaissance des capteurs et des actionneurs vont conduire à la conception, à la réalisation et à la programmation de robots sur mesure.
Ajouter des roues ou des chenilles, un bras mécanique piloté par des moteurs ou des servomoteurs pour assurer les actions de jeu de compétitions telles que les Trophées de la robotique (coupe Eurobot) par exemple est à la portée du mécanicien et codeur qui a pratiqué la programmation.
En outre, l’impression 3D peut apporter beaucoup dans la réalisation de projets. Nous trouvons par exemple sur Internet de modèles prêts pour l’impression qui permettent de réaliser une coque pour habiller mBot (la carapace d’un personnage célèbre du jeu Mario Kart est du plus bel effet). Investir dans la modélisation en 3D permet de créer ses propres objets et même ses propres capteurs et actionneurs. L’inventivité est celle de l’inventeur et les moyens de réduire l’effort d’apprentissage pour arriver à un modèle imprimable...