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 [Ici] et rejoignez-nous aujourd’hui !

2.2.8 Module de capteur ultrasonique

Introduction

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

Composants nécessaires

Dans ce projet, nous avons besoin des composants suivants.

../_images/2.2.8_ultrasonic_list.png

Il est certainement pratique d’acheter un kit complet, voici le lien :

Nom

ARTICLES DANS CE KIT

LIEN

Kit Raphael

337

Raphael Kit

Vous pouvez également les acheter séparément via les liens ci-dessous.

INTRODUCTION DU COMPOSANT

LIEN D’ACHAT

Carte d’extension GPIO

ACHETER

Plaque d’expérimentation (Breadboard)

ACHETER

Fils de Liaison

ACHETER

Module Ultrasonique

ACHETER

Schéma

../_images/2.2.8_ultrasonic_schematic.png

Procédures expérimentales

Étape 1 : Construisez le circuit.

../_images/2.2.8_ultrasonic_circuit.png

Étape 2 : Allez dans le dossier du code.

cd ~/raphael-kit/python-pi5

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

sudo python3 2.2.8_Ultrasonic_zero.py

Lorsque le code est exécuté, le module de capteur ultrasonique détecte la distance entre l’obstacle devant et le module lui-même, puis la valeur de la distance sera imprimée à l’écran.

Avertissement

Si vous recevez le 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 vous rendre au chemin du code source comme raphael-kit/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

# Initialize the DistanceSensor using GPIO Zero library
# Trigger pin is connected to GPIO 23, Echo pin to GPIO 24
sensor = DistanceSensor(echo=24, trigger=23)

try:
    # Main loop to continuously measure and report distance
    while True:
        dis = sensor.distance * 100  # Measure distance and convert from meters to centimeters
        print('Distance: {:.2f} cm'.format(dis))  # Print the distance with two decimal precision
        sleep(0.3)  # Wait for 0.3 seconds before the next measurement

except KeyboardInterrupt:
    # Handle KeyboardInterrupt (Ctrl+C) to gracefully exit the loop
    pass

Explication du code

  1. Importe la classe DistanceSensor de la bibliothèque gpiozero pour la mesure de distance, et la fonction sleep du module time pour les délais.

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

    # Initialize the DistanceSensor using GPIO Zero library
    # Trigger pin is connected to GPIO 23, Echo pin to GPIO 24
    sensor = DistanceSensor(echo=24, trigger=23)
    
  3. La boucle principale mesure continuellement la distance, la convertit de mètres en centimètres et l’imprime avec une précision de deux décimales. Puis attend 0,3 secondes avant de refaire une mesure. Gère un KeyboardInterrupt (comme Ctrl+C) pour permettre une sortie propre du script.

    try:
        # Main loop to continuously measure and report distance
        while True:
            dis = sensor.distance * 100  # Measure distance and convert from meters to centimeters
            print('Distance: {:.2f} cm'.format(dis))  # Print the distance with two decimal precision
            sleep(0.3)  # Wait for 0.3 seconds before the next measurement
    
    except KeyboardInterrupt:
        # Handle KeyboardInterrupt (Ctrl+C) to gracefully exit the loop
        pass