Avance, tourne, répète : je programme un robot avec des blocs
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.
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 ».