.. 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.8_js: 2.2.8 Module de Capteur Ultrasonique ======================================== Introduction --------------- Le capteur ultrasonique utilise des ultrasons pour détecter avec précision les objets et mesurer les distances. Il émet des ondes ultrasonores et les convertit en signaux électroniques. Composants Nécessaires -------------------------- Dans ce projet, nous avons besoin des composants suivants. .. image:: ../img/list_2.2.5.png Il est vraiment pratique d'acheter un kit complet, voici le lien : .. list-table:: :widths: 20 20 20 :header-rows: 1 * - Nom - ARTICLES DANS CE KIT - LIEN * - Kit Raphael - 337 - |link_Raphael_kit| Vous pouvez également les acheter séparément en suivant 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_ultrasonic_sensor` - |link_ultrasonic_buy| Schéma de Montage -------------------- .. image:: ../img/image329.png Procédures Expérimentales ----------------------------- **Étape 1 :** Construisez le circuit. .. image:: ../img/image220.png **Étape 2 :** Allez dans le dossier du code. .. raw:: html .. code-block:: cd ~/raphael-kit/nodejs/ **Étape 3 :** Exécutez le code. .. raw:: html .. code-block:: sudo node ultrasonic_sensor.js Lorsque le code est exécuté, le module de capteur ultrasonique détecte la distance entre l'obstacle devant lui et le module lui-même, puis la valeur de la distance sera affichée à l'écran. **Code** .. code-block:: js const Gpio = require('pigpio').Gpio; // The number of microseconds it takes sound to travel 1cm at 20 degrees celcius const MICROSECDONDS_PER_CM = 1e6/34321; const trigger = new Gpio(23, {mode: Gpio.OUTPUT}); const echo = new Gpio(24, {mode: Gpio.INPUT, alert: true}); trigger.digitalWrite(0); // Make sure trigger is low const watchHCSR04 = () => { let startTick; echo.on('alert', (level, tick) => { if (level === 1) { startTick = tick; } else { const endTick = tick; const diff = (endTick >> 0) - (startTick >> 0); // Unsigned 32 bit arithmetic console.log(diff / 2 / MICROSECDONDS_PER_CM); } }); }; watchHCSR04(); // Trigger a distance measurement once per second setInterval(() => { trigger.trigger(10, 1); // Set trigger high for 10 microseconds }, 1000); **Explication du Code** La fonction ``trigger`` peut être utilisée pour générer une impulsion sur un GPIO et les ``alertes`` peuvent être utilisées pour déterminer le moment d'un changement d'état GPIO avec une précision de quelques microsecondes. Ces deux fonctionnalités peuvent être combinées pour mesurer la distance à l'aide d'un capteur ultrasonique HC-SR04. .. code-block:: js setInterval(() => { trigger.trigger(10, 1); // Déclencher haut pendant 10 microsecondes }, 1000); Cela permet d'envoyer périodiquement une impulsion ultrasonique de 10us. .. code-block:: js const watchHCSR04 = () => { echo.on('alert', (level, tick) => { if (level === 1) { startTick = tick; } else { const endTick = tick; const diff = (endTick >> 0) - (startTick >> 0); // Arithmétique non signée sur 32 bits console.log(diff / 2 / MICROSECONDES_PAR_CM); } }); }; Cette fonction définit une alerte qui enregistrera le temps entre l'envoi de l'impulsion (le niveau est 1) et la réception de l'écho (le niveau est 0). En multipliant la différence de temps par la vitesse du son (et en divisant par 2), vous pouvez obtenir la distance de l'obstacle devant vous. .. https://github.com/fivdi/pigpio Image du Phénomène ---------------------- .. image:: ../img/image221.jpeg