Programmer un robot mBot

Temps estimé : 60 minutes

Difficulté: Facile

Dans cet atelier, nous allons essayer de créer un programme pour notre robot capable de déplacer et nettoyer des déchets. En exploitant le capteur infra-rouge, le robot va se mouvoir dans une zone à nettoyer et pousser tous les déchets vers le bord de la zone.
Le robot sera autonome, et doit être calibré pour pouvoir nettoyer toute la piste.
Nous souhaitons aussi qu’il puisse détecter les obstacles, de façon à ce qu’il n’entre pas en collision avec d’autres robots nettoyeurs si il y en a.


1- Faire avancer le robot

Commençons par un premier programme simple, où le robot va avancer jusqu’à atteindre le bord du terrain. La logique est la suivante :

  • Le robot avance en surveillant le signal détecté par le capteur infra-rouge;
  • Toutes les 1/10 secondes, il vérifie s’il est toujours à l’intérieur de la piste;
  • Si c’est le cas, il continue d’avancer. Sinon il arrête le mouvement.

2- Parcourir la piste

Nous sommes maintenant prêts pour la suite. Essayons de changer le programme précédent pour que, une fois arrivé au bord de la piste, le robot change de direction.
En option, on peut modifier l’apparence du robot pour qu’il par exemple change de couleur et émette un signal sonore lors d'un changement de direction.
Le programme peut ressembler à l’image suivante :

3- Réaction aléatoire

Dans le programme précédent, le robot tourne toujours à droite pour changer de direction.
Il serait plus intéressant de faire en sorte qu’il pivote à droite OU à gauche. On va le programmer pour choisir le sens de rotation de manière aléatoire.
Pour cela nous allons créer une variable, à laquelle on va attribuer une valeur aléatoire comprise entre 0 et 1 :
  • Si le tirage au sort retourne 1 : le robot pivote vers la droite,
  • SINON, il tourne vers la gauche.

4- Blocs personnalisés

On va maintenant simplifier ce programme pour qu’il devienne plus lisible. Dans makeCode, il est possible de créer des blocs personnalisés. On peut donc écrire notre programme de la manière suivante :

5- Détection d'obstacles

Pour compléter le tout, il ne nous reste plus qu'à ajouter la dernière brique manquante pour que notre robot détecte les obstacles.
Le capteur à ultrasons va renvoyer une distance qui sépare le robot de l’objet en face de lui. Dans cet exemple, le robot va REAGIR si cette distance est inférieure à 10 cm.

A partir de ce programme, le robot mBot est capable de se déplacer dans une zone définie en se repositionnant d'une manière aléatoire, tout en évitant des obstacles, le rendant ainsi autonome pour se débarasser de chaque déchet. Pas mal non ?