.. include:: /index.rst :start-after: start_hello_message :end-before: end_hello_message Leçon 6 : Explorer le module d'évitement d'obstacles ============================================================== Nous plongeons dans le monde du module d'évitement d'obstacles infrarouge. Placés sur les côtés de notre Mars Rover, ces capteurs agissent comme les "yeux" du rover, l'aidant à esquiver les obstacles latéraux. .. raw:: html .. note:: Si vous suivez ce cours après avoir entièrement assemblé le GalaxyRVR, déplacez l'interrupteur vers la droite avant de téléverser le code. .. image:: ../img/camera_upload.png :width: 500 :align: center Objectifs d'apprentissage ------------------------- * Comprendre le principe de fonctionnement du module d'évitement d'obstacles infrarouge. * Apprendre à utiliser Arduino pour contrôler le module. * Concevoir un système automatique d'évitement d'obstacles. Matériel nécessaire --------------------- * Modules d'évitement d'obstacles * Modèle Mars Rover (avec système rocker-bogie, cartes, moteurs) * Câble USB, Arduino IDE, Ordinateur Étapes ------------- **Étape 1 : Installer le module d'évitement d'obstacles** .. raw:: html **Étape 2 : Démystifier le module** .. image:: img/ir_avoid.png :width: 300 :align: center Définitions des broches : * **GND** : Masse * **+** : Alimentation, 3.3~5V DC * **Out** : Reste haut par défaut, passe à bas lorsqu'un obstacle est détecté * **EN** : Broche d'activation, connectée à GND par défaut (module toujours actif) Le module utilise une paire de composants IR - un émetteur et un récepteur. L'émetteur envoie une lumière infrarouge ; lorsqu'elle rencontre un obstacle, elle est réfléchie vers le récepteur. Le module émet alors un signal bas. .. image:: img/ir_receive.png :align: center Deux potentiomètres permettent de régler la puissance et la fréquence d'émission pour ajuster la distance de détection. .. image:: img/ir_avoid_pot.png :width: 400 :align: center **Étape 3 : Lire les 2 modules** Notre rover est équipé de deux capteurs sur les broches 7 (droit) et 8 (gauche). .. code-block:: arduino #define IR_RIGHT 7 #define IR_LEFT 8 void setup() { pinMode(IR_RIGHT, INPUT); pinMode(IR_LEFT, INPUT); Serial.begin(9600); } void loop() { int rightValue = digitalRead(IR_RIGHT); int leftValue = digitalRead(IR_LEFT); Serial.print("Right IR: "); Serial.println(rightValue); Serial.print("Left IR: "); Serial.println(leftValue); delay(200); } Ouvrez le moniteur série à 9600 bauds pour voir les valeurs. 0 = obstacle détecté, 1 = chemin libre. **Étape 4 : Réglage de la distance de détection** Calibrez les modules en plaçant un obstacle à 20 cm et en tournant le potentiomètre jusqu'à ce que l'indicateur s'allume. .. raw:: html **Étape 5 : Concevoir un système automatique d'évitement** Logique : Si le capteur droit détecte → tourner arrière droit. Si le gauche détecte → tourner arrière gauche. Les deux → reculer. Aucun → avancer. .. image:: img/ir_flowchart.png Le code utilise des instructions ``if...else if...else`` pour implémenter cette logique. **Étape 6 : Réflexion et résumé** Notre rover évite bien les obstacles latéraux mais peut avoir des difficultés avec les petits obstacles frontaux. Dans la prochaine leçon, nous ajouterons un capteur à ultrasons pour résoudre ce problème !