.. include:: /index.rst :start-after: start_hello_message :end-before: end_hello_message .. _ir_obstacle: Leçon 6 : Le module infrarouge anti-obstacle ============================================ Découvrez les « yeux » latéraux de votre rover – les capteurs infrarouges d'évitement d'obstacles ! Ces capteurs astucieux aident votre GalaxyRVR à détecter et à esquiver les obstacles sur ses côtés, comme une vision périphérique. Apprenez comment ils fonctionnent et programmez votre rover pour qu'il contourne automatiquement les objets. Préparez-vous à faire de votre Rover Martien un as de l'évitement ! .. raw:: html Objectifs d'apprentissage ------------------------- * Comprendre les principes de fonctionnement du module infrarouge anti-obstacle et son application dans le Rover Martien * Apprendre à lire et à utiliser les données du module infrarouge anti-obstacle dans Scratch * Créer un jeu d'évitement d'obstacles sur le thème de l'exploration martienne en utilisant le module IR et la scène Scratch Découvrir le module anti-obstacle ---------------------------------- Dites bonjour au nouveau compagnon de votre GalaxyRVR – le module infrarouge anti-obstacle ! Ce petit dispositif ingénieux aide votre rover à détecter et à éviter les obstacles. Voyons ce qui le fait fonctionner : .. image:: img/ir_avoid.png :width: 300 :align: center **Les quatre broches importantes :** * **GND** – La masse (ferme le circuit) * **+** – Alimentation électrique (nécessite 3,3 V à 5 V) * **Out** – Sortie du signal (envoie les messages « obstacle détecté ») * **EN** – Broche d'activation (contrôle quand le module est actif) **Comment ça marche – La lampe torche invisible :** Imaginez ce module comme une lampe torche invisible avec des lunettes spéciales : .. image:: img/ir_receive.png :align: center 1. L'émetteur envoie de la lumière infrarouge (invisible à nos yeux) 2. Lorsque la lumière rencontre un obstacle, elle rebondit 3. Le récepteur « voit » la lumière réfléchie 4. Le module envoie un signal : « Obstacle devant ! » **Informations utiles sur votre capteur :** * **Portée de détection** : 2 à 40 cm (environ la longueur de votre trousse !) * **La couleur compte** : Fonctionne mieux avec les objets de couleur claire * **Objets sombres** : Plus difficiles à détecter de loin **Contrôles avancés (pour les esprits curieux) :** * **Broche EN** : Le cavalier maintient le module toujours actif. Retirez-le si vous souhaitez contrôler le module par code. .. image:: img/ir_cap.png :width: 400 :align: center * **Deux réglages** : - Un bouton contrôle la distance parcourue par la lumière infrarouge - Un bouton ajuste la fréquence de la lumière .. image:: img/ir_avoid_pot.png :width: 400 :align: center Maintenant que vous avez fait connaissance avec votre nouveau compagnon, connectons-le à votre rover et commençons à programmer ! Tester vos capteurs infrarouges ------------------------------- #. Commencez par :ref:`app_connect`. 2. Réglons vos capteurs pour des performances optimales ! a. Assurez-vous que les composants infrarouges sont droits. Ajustez-les doucement si nécessaire. .. raw:: html b. Placez un objet (comme la boîte de votre rover) à 20 cm. Tournez le bouton jusqu'à ce que le voyant s'allume. Testez en rapprochant et en éloignant l'objet. .. raw:: html c. Faites de même pour l'autre module infrarouge. 3. Puis, :ref:`app_connect`. 4. Trouvez les blocs « état IR gauche » et « état IR droit » dans la catégorie GalaxyRVR et cochez leurs cases. .. image:: img/4_ir_statusblock.png 5. Les valeurs des capteurs s'afficheront maintenant sur votre scène. .. image:: img/4_ir_statusvalue.png 6. Passez votre main près de chaque capteur infrarouge et regardez les valeurs changer ! **Signification des valeurs :** - **True (Vrai)** = Obstacle détecté - **False (Faux)** = Voie libre Vous êtes maintenant prêt à voir ce que votre rover peut « voir » ! Programmer votre rover pour éviter les obstacles ------------------------------------------------ Apprenons à votre GalaxyRVR à esquiver automatiquement les obstacles grâce à ses capteurs infrarouges ! #. Commencez par :ref:`app_connect`. #. Démarrez le programme avec un bloc drapeau vert. .. image:: img/4_ir_start.png #. Réglez une vitesse de sécurité de 30 % pour faciliter les tests et le débogage. .. image:: img/4_ir_speed.png #. Trouvez le bloc ``when left IR is blocked`` pour la détection du capteur gauche. .. image:: img/4_ir_when_blocked.png #. Lorsque le capteur gauche détecte un obstacle, faites tourner le rover à droite. .. image:: img/4_ir_turn_right.png #. Continuez à tourner à droite jusqu'à ce que le côté gauche ne détecte plus l'obstacle. .. image:: img/4_ir_wait_until.png #. Arrêtez le mouvement une fois la voie dégagée. .. image:: img/4_ir_stop.png #. Testez en déclenchant le capteur infrarouge gauche avec votre main. Le GalaxyRVR devrait tourner à droite pour l'éviter. #. Dupliquez le code en appuyant longuement sur les blocs et en sélectionnant Dupliquer dans le menu. .. image:: img/4_ir_duplicate.png #. Dans le code dupliqué, inversez les côtés gauche et droit pour gérer les obstacles du côté droit. .. image:: img/4_ir_left_right.png #. Pour éviter un comportement erratique lorsque les deux capteurs sont déclenchés en même temps, ajoutez un bloc « stop other scripts in sprite ». Cela garantit qu'un seul événement de capteur est traité à la fois. .. image:: img/4_ir_stop_script.png :width: 800 .. note:: Le bloc d'arrêt des scripts peut entrer en conflit avec les blocs de mouvement chronométrés, évitez donc de les utiliser ensemble lorsque c'est possible. #. Votre GalaxyRVR tournera maintenant à gauche ou à droite lorsque des obstacles sont détectés de chaque côté. Testez en déclenchant les deux capteurs avec vos mains. #. Ajoutez un bloc « avancer » sous chaque section de code pour que le rover continue d'avancer après avoir évité les obstacles. .. image:: img/4_ir_avoid_move.png :width: 800 Cliquez maintenant sur le drapeau vert ! Votre GalaxyRVR avancera en continu, esquivant intelligemment les obstacles et reprenant sa trajectoire après les avoir contournés. Blocs liés au module IR ----------------------- * Bloc d'événement déclenché lorsque le capteur IR gauche détecte un obstacle - Changez « left » en « right » dans le menu déroulant .. image:: img/block/ir_when.png * Met le programme en pause jusqu'à ce que le capteur IR gauche ne détecte plus d'obstacle - Changez « left » en « right » pour l'autre capteur - Changez « is not » en « is » pour la condition inverse .. image:: img/block/ir_wait_until.png * Bloc conditionnel qui renvoie VRAI si le capteur IR gauche détecte un obstacle - Idéal avec les instructions ``si`` - Changez « left » en « right » pour l'autre capteur .. image:: img/block/ir_condition.png * Affiche l'état actuel de détection du capteur IR gauche .. image:: img/block/ir_left_value.png * Affiche l'état actuel de détection du capteur IR droit .. image:: img/block/ir_right_value.png