Note

Bonjour et bienvenue dans la communauté des passionnés de SunFounder Raspberry Pi, Arduino et ESP32 sur Facebook ! Plongez dans l’univers du Raspberry Pi, Arduino et ESP32 avec d’autres passionnés.

Pourquoi nous rejoindre ?

  • Support d’experts : Résolvez vos problèmes après-vente et relevez vos 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 à des avant-premières.

  • Réductions spéciales : Profitez de réductions exclusives sur nos derniers produits.

  • Promotions festives et cadeaux : Participez à des concours et des promotions pendant les fêtes.

👉 Prêt à explorer et à créer avec nous ? Cliquez sur [Ici] et rejoignez-nous dès aujourd’hui !

2.2.5 Module Capteur Ultrasonique

Introduction

Le capteur ultrasonique utilise des ultrasons pour détecter des objets et mesurer des distances avec précision. Il émet des ondes ultrasoniques et les convertit en signaux électroniques.

Composants nécessaires

Pour ce projet, nous avons besoin des composants suivants.

../_images/2.2.5_ultrasonic_list.png

Schéma de câblage

../_images/2.2.5_ultrasonic_schematic.png

Procédure expérimentale

Étape 1 : Montez le circuit.

../_images/2.2.5_ultrasonic_circuit.png

Étape 2 : Accédez au dossier du code.

cd ~/davinci-kit-for-raspberry-pi/python-pi5

Étape 3 : Exécutez le fichier exécutable.

sudo python3 2.2.5_Ultrasonic.py

Lorsque le code s’exécute, le module de capteur ultrasonique détecte la distance entre l’obstacle devant lui et le module. La valeur de la distance est ensuite affichée à l’écran.

Avertissement

En cas de message d’erreur RuntimeError: Cannot determine SOC peripheral base address, veuillez consulter Si gpiozero ne fonctionne pas..

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 source du code, comme davinci-kit-for-raspberry-pi/python-pi5. Après avoir modifié le code, vous pouvez l’exécuter directement pour voir l’effet.

#!/usr/bin/env python3
from gpiozero import DistanceSensor
from time import sleep

# Initialiser le capteur de distance avec la bibliothèque GPIO Zero
# Le pin Trigger est connecté à GPIO 23, le pin Echo à GPIO 24
sensor = DistanceSensor(echo=24, trigger=23)

try:
    # Boucle principale pour mesurer et afficher la distance en continu
    while True:
        dis = sensor.distance * 100  # Mesurer la distance et la convertir de mètres en centimètres
        print('Distance: {:.2f} cm'.format(dis))  # Afficher la distance avec une précision de deux décimales
        sleep(0.3)  # Attendre 0,3 seconde avant la prochaine mesure

except KeyboardInterrupt:
    # Gérer l'interruption clavier (Ctrl+C) pour quitter la boucle proprement
    pass

Explication du code

  1. Importe la classe DistanceSensor de la bibliothèque gpiozero pour la mesure de distance, ainsi que la fonction sleep du module time pour introduire des pauses.

    #!/usr/bin/env python3
    from gpiozero import DistanceSensor
    from time import sleep
    
  2. Initialise le capteur de distance ultrasonique avec le pin Echo connecté à GPIO 24 et le pin Trigger à GPIO 23.

    # Initialiser le capteur de distance avec la bibliothèque GPIO Zero
    # Le pin Trigger est connecté à GPIO 23, le pin Echo à GPIO 24
    sensor = DistanceSensor(echo=24, trigger=23)
    
  3. La boucle principale mesure en continu la distance, la convertit de mètres en centimètres et l’affiche avec deux décimales de précision. Ensuite, il attend 0,3 seconde avant de refaire une mesure. L’instruction KeyboardInterrupt (comme Ctrl+C) permet une sortie propre du script.

    try:
        # Boucle principale pour mesurer et afficher la distance en continu
        while True:
            dis = sensor.distance * 100  # Mesurer la distance et la convertir de mètres en centimètres
            print('Distance: {:.2f} cm'.format(dis))  # Afficher la distance avec une précision de deux décimales
            sleep(0.3)  # Attendre 0,3 seconde avant la prochaine mesure
    
    except KeyboardInterrupt:
        # Gérer l'interruption clavier (Ctrl+C) pour quitter la boucle proprement
        pass