Nota

Ciao, benvenuto nella SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Community su Facebook! Approfondisci l’esplorazione del Raspberry Pi, Arduino ed ESP32 con altri appassionati.

Perché unirti a noi?

  • Supporto esperto: Risolvi i problemi post-vendita e le sfide tecniche con l’aiuto della nostra comunità e del nostro team.

  • Impara e condividi: Scambia consigli e tutorial per migliorare le tue competenze.

  • Anteprime esclusive: Accedi in anteprima agli annunci di nuovi prodotti e alle anticipazioni esclusive.

  • Sconti speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.

  • Promozioni e omaggi festivi: Partecipa a omaggi e promozioni speciali durante le festività.

👉 Sei pronto a esplorare e creare con noi? Clicca su [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. Emette onde ultrasoniche e le converte in segnali elettronici.

Componenti necessari

In questo progetto avremo bisogno dei seguenti componenti.

../_images/list_2.2.5.png

È sicuramente conveniente acquistare un kit completo, ecco il link:

Nome

ELEMENTI IN QUESTO KIT

LINK

Kit Raphael

337

Raphael Kit

Puoi anche acquistarli separatamente dai link sottostanti.

INTRODUZIONE AI COMPONENTI

LINK PER L’ACQUISTO

Scheda di estensione GPIO

ACQUISTA

Breadboard

ACQUISTA

Cavi Jumper

ACQUISTA

Modulo Ultrasuoni

ACQUISTA

Schema elettrico

../_images/image329.png

Procedura sperimentale

Passo 1: Costruisci il circuito.

../_images/image220.png

Passo 2: Vai nella cartella del codice.

cd ~/raphael-kit/python/

Passo 3: Esegui il file eseguibile.

sudo python3 2.2.8_Ultrasonic.py

Una volta eseguito il codice, il modulo del sensore ultrasonico rileva la distanza tra l’ostacolo davanti e il modulo stesso, quindi il valore della distanza verrà stampato sullo schermo.

Codice

Nota

Puoi Modificare/Resettare/Copiare/Eseguire/Fermare il codice qui sotto. Ma prima di farlo, devi andare nel percorso del codice sorgente, come raphael-kit/python. Dopo aver modificato il codice, puoi eseguirlo direttamente per vedere l’effetto.

import RPi.GPIO as GPIO
import time

TRIG = 16
ECHO = 18

def setup():
    GPIO.setmode(GPIO.BOARD)
    GPIO.setup(TRIG, GPIO.OUT)
    GPIO.setup(ECHO, GPIO.IN)

def distance():
    GPIO.output(TRIG, 0)
    time.sleep(0.000002)

    GPIO.output(TRIG, 1)
    time.sleep(0.00001)
    GPIO.output(TRIG, 0)

    while GPIO.input(ECHO) == 0:
        a = 0
    time1 = time.time()
    while GPIO.input(ECHO) == 1:
        a = 1
    time2 = time.time()

    during = time2 - time1
    return during * 340 / 2 * 100

def loop():
    while True:
        dis = distance()
        print ('Distance: %.2f' % dis )
        time.sleep(0.3)

def destroy():
    GPIO.cleanup()

if __name__ == "__main__":
    setup()
    try:
        loop()
    except KeyboardInterrupt:
        destroy()

Spiegazione del Codice

def distance():

Questa funzione serve a realizzare la funzionalità del sensore ultrasonico calcolando la distanza di rilevamento.

GPIO.output(TRIG, 1)
time.sleep(0.00001)
GPIO.output(TRIG, 0)

Questo codice invia un impulso ultrasonico di 10 µs.

while GPIO.input(ECHO) == 0:
    a = 0
time1 = time.time()

Questo ciclo vuoto serve per assicurarsi che, quando viene inviato il segnale di trigger, non ci sia un segnale di eco interferente, dopodiché viene acquisito il tempo corrente.

while GPIO.input(ECHO) == 1:
    a = 1
time2 = time.time()

Questo ciclo vuoto serve per assicurarsi che il passo successivo non venga eseguito fino a quando non viene ricevuto il segnale di eco, dopodiché viene acquisito il tempo corrente.

during = time2 - time1

Esegue il calcolo dell’intervallo di tempo.

return during * 340 / 2 * 100

La distanza viene calcolata in base all’intervallo di tempo e alla velocità di propagazione del suono. La velocità del suono nell’aria: 340 m/s.

Immagine del fenomeno

../_images/image221.jpeg