.. note:: Bonjour et bienvenue dans la Communauté Facebook des passionnés de Raspberry Pi, Arduino et ESP32 de SunFounder ! Plongez plus profondément dans l'univers des Raspberry Pi, Arduino et ESP32 avec d'autres passionnés. **Pourquoi rejoindre ?** - **Support d'experts** : Résolvez les problèmes après-vente et les défis techniques avec l'aide de notre communauté et de notre équipe. - **Apprendre et partager** : Échangez des astuces et des tutoriels pour améliorer vos compétences. - **Aperçus exclusifs** : Accédez en avant-première aux annonces de nouveaux produits et aux aperçus. - **Réductions spéciales** : Profitez de réductions exclusives sur nos produits les plus récents. - **Promotions festives et cadeaux** : Participez à des cadeaux et des promotions de vacances. 👉 Prêt à explorer et à créer avec nous ? Cliquez [|link_sf_facebook|] et rejoignez-nous aujourd'hui ! .. _2.2.5_py: 2.2.5 Capteur d'Évitement d'Obstacles IR ============================================ Introduction --------------- Dans ce projet, nous allons découvrir le module d'évitement d'obstacles IR, qui est un module capteur pouvant être utilisé pour détecter des obstacles à courte distance, avec une petite interférence, facile à assembler, facile à utiliser, etc. Il peut être largement utilisé dans l'évitement d'obstacles pour robots, les chariots d'évitement d'obstacles, le comptage sur les chaînes de montage, etc. .. image:: ../img/2.2.5IR_Obstacle.png :width: 300 :align: center Composants Nécessaires ------------------------- Pour ce projet, nous avons besoin des composants suivants : .. image:: ../img/2.2.5component.png :width: 700 :align: center Il est très pratique d'acheter un kit complet, voici le lien : .. list-table:: :widths: 20 20 20 :header-rows: 1 * - Nom - ÉLÉMENTS DANS CE KIT - LIEN * - Kit Raphael - 337 - |link_Raphael_kit| Vous pouvez également les acheter séparément via les liens ci-dessous. .. list-table:: :widths: 30 20 :header-rows: 1 * - INTRODUCTION DES COMPOSANTS - LIEN D'ACHAT * - :ref:`cpn_gpio_extension_board` - |link_gpio_board_buy| * - :ref:`cpn_breadboard` - |link_breadboard_buy| * - :ref:`cpn_wires` - |link_wires_buy| * - :ref:`cpn_avoid_module` - |link_obstacle_avoidance_buy| Schéma Électrique -------------------- .. image:: ../img/IR_schematic.png :width: 500 :align: center Procédures Expérimentales ---------------------------- **Étape 1 :** Construire le circuit .. image:: ../img/2.2.5fritzing.png :width: 700 :align: center **Étape 2 :** Changer de répertoire. .. raw:: html .. code-block:: cd ~/raphael-kit/python **Étape 3 :** Exécuter. .. raw:: html .. code-block:: sudo python3 2.2.5_IrObstacle.py Après l'exécution du code, lorsque vous mettez votre main devant la sonde du module, l'indicateur de sortie sur le module s'allume et "Detected Barrier!" sera imprimé à l'écran de manière répétée jusqu'à ce que vous retiriez votre main. **Code** .. note:: Vous pouvez **Modifier/Réinitialiser/Copier/Exécuter/Arrêter** le code ci-dessous. Mais avant cela, vous devez accéder au chemin du code source comme ``raphael-kit/python``. Après avoir modifié le code, vous pouvez l'exécuter directement pour voir l'effet. .. raw:: html .. code-block:: python #!/usr/bin/env python3 import RPi.GPIO as GPIO import time ObstaclePin = 17 def setup(): GPIO.setmode(GPIO.BCM) # Numbers GPIOs by physical location GPIO.setup(ObstaclePin, GPIO.IN, pull_up_down=GPIO.PUD_UP) def loop(): while True: if (0 == GPIO.input(ObstaclePin)): print ("Detected Barrier!") time.sleep(1) def destroy(): GPIO.cleanup() # Release resource if __name__ == '__main__': # Program start from here setup() try: loop() except KeyboardInterrupt: # When 'Ctrl+C' is pressed, the child program destroy() will be executed. destroy() **Explication du Code** .. code-block:: python def setup(): GPIO.setmode(GPIO.BCM) # Numbers GPIOs by physical location GPIO.setup(ObstaclePin, GPIO.IN, pull_up_down=GPIO.PUD_UP) Configurer le mode GPIO en numérotation BCM. Configurer ``ObstaclePin`` en mode entrée et l'initialiser à un niveau haut (3,3V). .. code-block:: python def loop(): while True: if (0 == GPIO.input(ObstaclePin)): print ("Detected Barrier!") Lorsque ``ObstaclePin`` est à un niveau bas, afficher "Detected Barrier!". Cela signifie qu'un obstacle est détecté. Image du Phénomène ---------------------- .. image:: ../img/2.2.5IR.JPG :width: 500 :align: center