Nota
Ciao, benvenuto nella Community di SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts su Facebook! Approfondisci le tue conoscenze su Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.
Perché Unirsi?
Supporto Tecnico Esperto: Risolvi i problemi post-vendita e affronta le sfide tecniche con l’aiuto della nostra comunità e del nostro team.
Impara e Condividi: Scambia suggerimenti e tutorial per migliorare le tue competenze.
Anteprime Esclusive: Ottieni accesso anticipato agli annunci di nuovi prodotti e anteprime.
Sconti Speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni Festive e Giveaway: Partecipa a giveaway e promozioni festive.
👉 Sei pronto a esplorare e creare con noi? Clicca [Qui] e unisciti oggi stesso!
2.2.8 Modulo Sensore Ultrasonico
Introduzione
Il sensore ultrasonico utilizza ultrasuoni per rilevare con precisione gli oggetti e misurare le distanze. Invia onde ultrasoniche e le converte in segnali elettronici.
Componenti Necessari
In questo progetto, abbiamo bisogno dei seguenti componenti.
È decisamente conveniente acquistare un kit completo, ecco il link:
Nome |
COMPONENTI NEL KIT |
LINK |
|---|---|---|
Raphael Kit |
337 |
Puoi anche acquistarli separatamente dai link sottostanti.
INTRODUZIONE AI COMPONENTI |
LINK PER L’ACQUISTO |
|---|---|
Schema Elettrico
Procedure Sperimentali
Passo 1: Costruisci il circuito.
Passo 2: Vai alla cartella del codice.
cd ~/raphael-kit/python-pi5
Passo 3: Esegui il file eseguibile.
sudo python3 2.2.8_Ultrasonic_zero.py
Dopo l’esecuzione del codice, il modulo sensore ultrasonico rileva la distanza tra l’ostacolo di fronte e il modulo stesso, e il valore della distanza verrà stampato sullo schermo.
Avvertimento
Se viene visualizzato l’errore RuntimeError: Cannot determine SOC peripheral base address, fare riferimento a If gpiozero doesn’t work..
Code
Nota
Puoi Modificare/Resettare/Copiare/Eseguire/Fermare il codice qui sotto.
Ma prima, devi andare al percorso sorgente del codice come raphael-kit/python-pi5.
Dopo aver modificato il codice, puoi eseguirlo direttamente per vedere l’effetto.
#!/usr/bin/env python3
from gpiozero import DistanceSensor
from time import sleep
# Inizializza il sensore di distanza utilizzando la libreria GPIO Zero
# Il pin di trigger è collegato al GPIO 23, il pin di echo al GPIO 24
sensor = DistanceSensor(echo=24, trigger=23)
try:
# Ciclo principale per misurare e riportare continuamente la distanza
while True:
dis = sensor.distance * 100 # Misura la distanza e converti da metri a centimetri
print('Distanza: {:.2f} cm'.format(dis)) # Stampa la distanza con due cifre decimali
sleep(0.3) # Attendi 0,3 secondi prima della prossima misurazione
except KeyboardInterrupt:
# Gestisce KeyboardInterrupt (Ctrl+C) per uscire dal ciclo in modo ordinato
pass
Spiegazione del Codice
Viene importata la classe
DistanceSensordalla libreriagpiozeroper la misurazione della distanza, e la funzionesleepdal modulotimeper gestire i ritardi.#!/usr/bin/env python3 from gpiozero import DistanceSensor from time import sleep
Inizializza il sensore ultrasonico di distanza con il pin Echo collegato al GPIO 24 e il pin Trigger al GPIO 23.
# Inizializza il sensore di distanza utilizzando la libreria GPIO Zero # Il pin di trigger è collegato al GPIO 23, il pin di echo al GPIO 24 sensor = DistanceSensor(echo=24, trigger=23)
Il ciclo principale misura continuamente la distanza, la converte da metri a centimetri e la stampa con due cifre decimali di precisione. Poi attende 0,3 secondi prima di rieseguire la misurazione. Il ciclo viene interrotto correttamente tramite KeyboardInterrupt (ad esempio Ctrl+C) per consentire un’uscita ordinata dallo script.
try: # Ciclo principale per misurare e riportare continuamente la distanza while True: dis = sensor.distance * 100 # Misura la distanza e converti da metri a centimetri print('Distanza: {:.2f} cm'.format(dis)) # Stampa la distanza con due cifre decimali sleep(0.3) # Attendi 0,3 secondi prima della prossima misurazione except KeyboardInterrupt: # Gestisce KeyboardInterrupt (Ctrl+C) per uscire dal ciclo in modo ordinato pass