School 47

Avance, tourne, répète : je programme un robot avec des blocs

Cinquième · Technologie · environ 25 min

Quand tu expliques à un petit frère comment aller à la boulangerie, tu lui dis : « Sors, tourne à gauche, marche jusqu'au feu, si le feu est rouge attends, puis traverse. » Tu viens d'écrire un programme : une suite d'instructions précises, dans l'ordre, avec une condition. Un robot ne sait rien faire tout seul ; il exécute exactement ce qu'on lui dit, ni plus ni moins. Avec Scratch ou mBlock, on écrit ces instructions en emboîtant des blocs colorés, comme des briques, sans taper une ligne de code.

1. La séquence : des instructions dans l'ordre

Un programme commence par un bloc événement (« quand le drapeau vert est cliqué », « quand le bouton est pressé »). En dessous, on empile les instructions : elles s'exécutent de haut en bas, une par une.

Exemple travaillé : tracer un carré avec un robot (ou le lutin Scratch).

quand drapeau vert cliqué
avancer de 100
tourner de 90 degrés
avancer de 100
tourner de 90 degrés
avancer de 100
tourner de 90 degrés
avancer de 100
tourner de 90 degrés

Ça marche, mais c'est long et répétitif. Un bon programmeur déteste recopier.

2. La boucle : répéter sans recopier

Une boucle répète un groupe d'instructions. Scratch propose « répéter 4 fois », « répéter indéfiniment » et « répéter jusqu'à ce que ».

Le carré devient :

répéter 4 fois
 avancer de 100
 tourner de 90 degrés

Trois lignes au lieu de huit, et pour un hexagone il suffit de changer 4 en 6 et 90 en 60. Pourquoi 60 ? Parce que le robot doit tourner en tout de 360 degrés pour revenir à sa position : 360 ÷ 6 = 60.

Sur un vrai robot (mBot avec mBlock), la boucle « répéter indéfiniment » est partout : le robot vérifie ses capteurs en permanence, des dizaines de fois par seconde.

Algorithme : condition et boucle Un organigramme se lit du haut vers le bas. On part de l'ovale début, on lit une donnée n, puis on arrive à un losange qui pose une condition : n est-il supérieur à zéro ? Si la réponse est oui, on exécute une action, puis une flèche remonte vers le test : on répète, c'est une boucle. Si la réponse est non, une flèche mène à l'ovale fin. Un algorithme enchaîne ainsi des instructions, des conditions et des boucles. début lire n n > 0 ? oui non action ; n ← n−1 boucle fin instructions · condition (si…) · boucle (répéter)

3. La condition : si… alors… sinon

Une condition permet au programme de choisir. Le bloc « si … alors » exécute les instructions seulement si la condition est vraie. Le bloc « si … alors … sinon » propose deux chemins.

Exemple travaillé : le robot qui évite les murs.

répéter indéfiniment
 si distance ultrasons < 10 alors
 reculer
 tourner à droite de 90 degrés
 sinon
 avancer

Le capteur à ultrasons mesure la distance devant le robot. Si un obstacle est à moins de 10 cm, il recule et tourne ; sinon, il avance. La boucle fait que ce test est refait sans arrêt.

Les conditions utilisent des comparaisons (<, >, =) et des opérateurs logiques : « et », « ou », « non ». Par exemple : « si (capteur gauche = noir) et (capteur droit = noir) alors avancer » pour un robot suiveur de ligne.

4. La variable : une boîte pour mémoriser

Une variable est une boîte avec un nom qui contient une valeur que le programme peut lire et modifier. On l'utilise pour compter, mémoriser un score, stocker une mesure.

Exemple travaillé : compter les tours.

mettre tours à 0
répéter indéfiniment
 si bouton pressé alors
 ajouter 1 à tours
 dire tours
 attendre 0,5 seconde

À chaque appui, la variable « tours » augmente de 1 et le robot (ou le lutin) affiche sa valeur. L'instruction « attendre » évite de compter dix fois le même appui.

Une variable peut aussi servir de consigne : « vitesse = 50 » en haut du programme, puis « avancer à vitesse » partout. Pour changer la vitesse du robot, on modifie une seule ligne.

À retenir

  • Un programme est une suite d'instructions exécutées dans l'ordre (la séquence) à partir d'un événement.
  • La boucle (« répéter n fois », « répéter indéfiniment ») évite de recopier ; un robot lit ses capteurs dans une boucle infinie.
  • La condition (« si… alors… sinon ») fait choisir le programme selon une comparaison ou un capteur.
  • La variable est une boîte nommée qui mémorise une valeur (compteur, score, vitesse).
  • Pour un polygone à n côtés, l'angle de rotation vaut 360 ÷ n.

★ Pour aller plus loin

Scratch a été créé en 2007 au MIT, aux États-Unis, par l'équipe de Mitchel Resnick, pour que les enfants apprennent à programmer en jouant. mBlock, développé par la société Makeblock, reprend Scratch et y ajoute des blocs pour piloter des robots et des cartes Arduino ou micro:bit. Derrière les blocs se cache du vrai code : mBlock peut t'afficher le programme Python ou Arduino équivalent.

Les mêmes idées (séquence, boucle, condition, variable) existent dans tous les langages de programmation du monde : Python, JavaScript, C. Quand tu sauras les combiner en blocs, passer au texte sera surtout une question de vocabulaire.

Certains robots d'exploration, comme les rovers sur Mars, reçoivent leurs programmes depuis la Terre avec un délai de plusieurs minutes. Ils doivent donc être capables de réagir seuls aux obstacles grâce à des boucles et des conditions… exactement comme ton robot qui évite les murs.

Sources pour creuser

  • Scratch pour les kids de The LEAD Project (Eyrolles) : apprendre Scratch pas à pas avec des projets.
  • Programmer avec Scratch (collection Les Petits Génies, Nathan) ou tout manuel Scratch adapté au collège disponible en bibliothèque.
  • Chaîne YouTube « Techno Flash » : cherche « programmer avec mBlock » et « mBot ».
  • Chaîne YouTube « Prof Ohmi » ou « Monsieur Scratch » : tutoriels Scratch en français pour débutants (cherche « Scratch boucle condition variable »).
  • scratch.mit.edu : le site officiel de Scratch, gratuit, utilisable dans le navigateur, avec des tutoriels en français.
  • mblock.cc : logiciel mBlock gratuit pour piloter un robot mBot ou simuler sans robot.
  • lumni.fr : rubrique Collège > Technologie, « programmer un objet ».