Contrôler le robot avec les flèches du clavier

Nous allons programmer une sorte de télécommande pour contrôler le robot. Pour se faire, nous allons utiliser une série de blocs bien pratique se trouvant dans l’onglet Évenements : « Quand la touche espace est préssée » et « Quand la touche espace est relâchée ».
Par sécurité, nous allons placer un premier blocs « Quand la touche « any » est relachée ».

Cherche maintenant dans Pilotage le bloc « avancer à la vitesse de 0 » qui permet de contrôler les moteurs et place-le en-dessous de « Quand la touche « any » est relachée »:

Ce qu’on vient de faire est un peu bizarre mais c’est très important: si on ne met pas de commande lorsque l’on relâche la touche, le robot continura à avancer à l’infini. Ce qui peut entraîner une chute du robot s’il est sur une table.

Maitenant nous allons le faire avancer lorsque l’on appuie sur la touche « flèche haut ». Il suffit de placer un bloc « Quand la touche « flèche haut » est préssée » puis de placer en-dessous un bloc « avancer à la vitesse de 100 » :

La vitesse est importante : en-dessous de 100, le robot ne se déplace pas et à 255, il va très vite. Ne met pas à 255 si ton robot est sur une table, il risque de chuter !

Le robot avance droit devant lui lorsque la touche avant est préssée et s’arrête lorsqu’elle est relachée !

Défi : faire les autres commandes pour que le robot tourne à gauche, à droite et recule en utilisant les 3 autres flèches du clavier.**

Réponse:

Empêcher le robot de se cogner contre les obstacles en utilisant le capteur à ultrason

Le robot est maintenant télécommander. Nous allons lui ajouter un peu d’intelligence pour que, de lui même, évite les obstacles.

Pour qu’un robot soit intelligent il faut coordonner ses entrées (inpout) avec ses sorties (output). Nous l’avons déjà fait en programmant les touche du clavier comme des entrées qui contrôlaient les moteurs du robot, les sorties. Pour ce nouvel exercice l’entrée sera le capteur à ultrason et les sorties encore les moteurs.

Programme ton robot pour qu’il recule quand un obstacles est à 10cm devant lui:

  1. Garde le programme précedent.

  2. Nous allons voir un nouveaux bloc : la condition. Il permet de créer des condition : SI
    la valeur donnée par le capteur du robot est inferieure 10cm ALORS le robot recule.
    Ce bloc se trouve dans l’onglet Contrôle. Place-le dans la boucle « Repeter Indéfiniment » que tu as fais pour faire parler le panda. Nous avons alors une boucle conditionnelle:

  3. Place maintenant un bloc pour pouvoir comparer 2 valeurs. Il se trouve dans un nouvel onglet : Opérateurs. Ces blocs permet de faire des comparaisons et de jouer avec les valeurs. Selectionne le bloc inferieur à, celui avec ce symbole : <. Place-le dans la condition :

  4. Ce dernier bloc permet de comparer 2 valeurs. Dans la case de droite, tape 10 et dans celui de gauche insère un bloc « distance mesurée par le capteur ultrason du port 3 » présent dans Pilotage :

  5. La condition est prête, ne reste plus qu’à définir une action: faire reculer automatiquement le robot lorsqu’un obstacle est detecté à 10cm devant lui. Nous allons lui demandé de reculer pendant 1 seconde puis de s’arrêter. Le bloc « attendre 1 secondes » dans l’onglet Contrôle, il faut le placer comme ceci :

    Le bloc « attendre 1 secondes » est une mauvaise traduction, il vaut mieux le comprendre comme « pendant 1 secondes ». Il permet donc de d’enchaîner des actions différentes comme avancer, tourner, reculer sans à avoir à contrôler manuellement le robot.

Voilà ! Si tout va bien le robot devrait reculer pendant une seconde à chaque qu’il rencontre un obstacle à cm devant lui. Essaye de le faire tourner plutôt que reculer maintenant !

Dernier défi: faire faire un carré au robot

Enregistre tout ce que tu as fais (Fichier -> Enregistrer le projet sous) et crée un nouveau projet (Fichier -> Nouveau projet). Le but du défi est le suivant:

Lorsque que j’appuie une seule fois sur une seule touche, le robot doit se déplacer en décrivant un carré. Comme ceci:

A toi de jouer !

Réponse :

Bravo, tu sais maintenant programmer ! Car saches que les notions que tu viens de voir comme les boucles ou les conditions sont quasiment les seuls choses à savoir en programmation, même avec les langages professionnels.

Pour continuer et aller plus loin

Si tu veux continuer la programmation par bloc tu peux continuer avec mBlock. Tu peux aussi continuer avec Scratch qui possède une très grosse communauté plein d’exemples que tu peux étudier:
https://scratch.mit.edu/

Si tu veux, toujours avec des blocs, créer ta propre application pour smartphone :
http://appinventor.mit.edu/explore/

Si tu veux continuer à programmer de l’électronique avec Mblock ou passer à l’étape superieure, tu peux acheter les kits Grove ou commencer directement avec un arduino :
https://www.lextronic.fr/P38551-starter-kit-grove—rip.html
https://boutique.semageek.com/fr/479-arduino-starter-kit-version-fran%C3%A7aise-8058333491783.html