QSCOUT - Capteur ultrason

QSCOUT - Capteur ultrason

1. Introduction

Salut l'ami !

Ta nouvelle mission ici va être de détecter les obstacles avec ton robot Qscout et de les éviter. Pour cela, tu vas utiliser le capteur à ultrason.

2. Le capteur ultrason

Le capteur ultrason fonctionne ainsi : une onde sonore (inaudible par l’oreille humaine) est émise et – suivant le temps qu’elle met à revenir vers le récepteur – le capteur est capable d’estimer la distance en connaissant la vitesse de propagation du son.

Le défi est le suivant : de manière générale, le robot Qscout devra avancer sans s’arrêter jusqu’à ce qu’il détecte un obstacle. Le cas échéant, il s’arrête, recule de quelques centimètres, et repart dans une autre direction, jusqu’au nouvel obstacle.

Découpons cette activité en plusieurs étapes. Dans un premier temps, le robot devra simplement s’arrêter à l’obstacle.

Le capteur ultrason renvoie un nombre qui correspond à la distance le séparant de l’obstacle. Ainsi, cette valeur devra être comparée à une valeur définie dans un test « si… alors… » comme vu dans l’activité précédente.

De fait, voici la première étape : le robot avance sans discontinuer, jusqu’à ce qu’il détecte un obstacle ; auquel cas il s’arrête.

Cette fois-ci, l’écriture de la condition est plus subtile. Comme indiqué précédemment, le capteur ultrason renvoie un nombre. Il faut donc utiliser un comparateur (dans la partie Opérateurs) pour l’évaluer. Par exemple, il est estimé ici qu’en dessous de 8, l’obstacle est trop proche.

Poursuis l’écriture du programme jusqu’à ce que ton robot soit capable de s’arrêter en détectant un obstacle.

Remarque : n’oublie pas de vérifier que ton capteur est branché au bon port !

Ainsi, le programme attendu ressemble à cela :

 

3. Se déplacer seul

À présent, fais en sorte que le robot, lorsqu’il détecte un obstacle, recule un petit peu, pivote (vers la gauche, par exemple), et repart dans une autre direction.

Pour cela, il suffit de remplacer la consigne d’arrêt par le mouvement attendu, à savoir le recul et la rotation. 

Si tu testes ton programme, tu remarqueras que le robot l’exécute une seule fois seulement. Trouve une solution pour résoudre ce problème et que Qscout soit capable d’accomplir à l’infini sa mission.

Tu l’as deviné, il faut ajouter autour de ton programme une boucle indéfinie « toujours ». Bravo !

Ce qui donne le programme suivant :

Ainsi, tu as programmé un robot autonome, capable de se déplacer dans l’espace sans risquer de heurter son environnement.

 

4. Ajouter une lumière

Tu peux parfaire encore un petit peu ton programme.

Ajoute lui une lumière !

Le robot circule avec une couleur de croisière (bleu, par exemple) et se met en alerte (rouge, par exemple) en détectant un obstacle. Puis, il reprend sa couleur d’origine à la fin de la manœuvre.

À toi de deviner comment incorporer cela à ton programme.

Cela consiste simplement à ajouter quelques blocs :

5. Pour aller plus loin : direction aléatoire.

Un dernier ajout que l’on peut faire au programme consiste à demander que la direction (après le recul) se fasse aléatoirement à gauche ou à droite (afin d’éviter que le robot ne tourne en rond).
 
Pour cela, tu vas utiliser les variables et, plus précisément, les variables aléatoires.
 
Une variable est une donnée gérée par l’ordinateur qui peut prendre différentes valeurs en fonction du temps ou de l’avancement du programme. Par exemple, on pourra dire qu’une barrière ouverte est en position 1 et en position 0 lorsqu’elle est fermée. Ou, plus simplement, une variable va être le calcul d’un temps écoulé. Une variable aléatoire va, quant à elle, être choisie au hasard. C’est comme si l’ordinateur lançait un dé pour déterminer la valeur associée.
 
Dans notre cas de figure, le but est de jouer à « pile ou face » pour déterminer si on va à gauche ou à droite. Disons que 1 fait aller à gauche et 2 à droite.
           
À toi de découvrir comment déclarer une variable.
Ensuite, définis-la à l’aide d’un opérateur générant un aléa.

Cette déclaration de variable doit se faire dans le bloc « si … alors … » car le tirage au sort se fera à chaque fois qu’un obstacle est détecté.

            Puis, ajoute deux tests de condition :

→ Si alea vaut 1, on tourne à gauche ;
→ Si alea vaut 2, on tourne à droite.

    Teste ton programme avant de voir la solution !

    En réalité, il est plus simple de choisir un test de condition « si… alors… autre… » puisque de toute façon « alea » ne peut prendre que deux valeurs. Voici le programme optimisé :

    Bravo ! Tu as accompli toutes les missions de découverte de ton robot Qscout.

    À toi maintenant d’imaginer d’autres programmes et aventures pour continuer de t’amuser avec ton robot Qscout ! Tu peux aussi utiliser les extensions q-scout - Myriapod Legion 3 en 1 et q-scout - Matrice LED !

    N’hésite pas à le prendre en photo ou en vidéo et à les partager à la communauté SMARTEO.

    À bientôt pour de nouveaux défis !

    Laissez un commentaire

    * Champs obligatoires

    Veuillez noter que les commentaires doivent être vérifiés et approuvés avant d'être publiés.