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é unirti a noi?

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

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

  • Anteprime Esclusive: Ottieni accesso anticipato ai nuovi annunci di prodotti e alle anteprime.

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

  • Promozioni Festive e Giveaway: Partecipa a giveaway e promozioni festive.

👉 Pronto a esplorare e creare con noi? Clicca su [qui] e unisciti oggi!

5.12 Misurare la Distanza

Il modulo ultrasonico viene utilizzato per la misurazione della distanza o per il rilevamento degli oggetti. In questo progetto, programmeremo il modulo per ottenere le distanze degli ostacoli. Inviando impulsi ultrasonici e misurando il tempo necessario affinché questi rimbalzino, possiamo calcolare le distanze. Questo ci permette di implementare azioni basate sulla distanza o comportamenti di evitamento degli ostacoli.

Componenti Necessari

In questo progetto, avremo bisogno dei seguenti componenti.

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

Nome

ELEMENTI IN QUESTO KIT

LINK

ESP32 Starter Kit

320+

ESP32 Starter Kit

Puoi anche acquistarli separatamente dai link sottostanti.

INTRODUZIONE AI COMPONENTI

LINK PER L’ACQUISTO

ESP32 Scheda

ACQUISTA

Estensione Fotocamera ESP32

ACQUISTA

Cavi Jumper

ACQUISTA

Modulo Ultrasonico

ACQUISTA

Pin Disponibili

  • Pin Disponibili

    Ecco un elenco dei pin disponibili sulla scheda ESP32 per questo progetto.

    Per Ingresso

    IO13, IO14, IO27, IO26, IO25, IO33, IO32, I35, I34, I39, I36, IO4, IO18, IO19, IO21, IO22, IO23

    Per Uscita

    IO13, IO12, IO14, IO27, IO26, IO25, IO33, IO32, IO15, IO2, IO0, IO4, IO5, IO18, IO19, IO21, IO22, IO23

Schema

../../_images/circuit_5.12_ultrasonic.png

L’ESP32 invia una serie di segnali a onda quadra al pin Trig del sensore ultrasonico ogni 10 secondi. Questo induce il sensore ultrasonico a emettere un segnale ultrasonico a 40kHz verso l’esterno. Se c’è un ostacolo davanti, le onde ultrasoniche verranno riflesse.

Registrando il tempo che passa dall’invio alla ricezione del segnale, dividendo per 2 e moltiplicando per la velocità del suono, è possibile determinare la distanza dall’ostacolo.

Collegamenti

../../_images/5.12_ultrasonic_bb.png

Codice

Nota

  • Apri il file 5.12_ultrasonic.ino nel percorso esp32-starter-kit-main\c\codes\5.12_ultrasonic.

  • Dopo aver selezionato la scheda (ESP32 Dev Module) e la porta appropriata, fai clic sul pulsante Upload.

  • Vedi sempre «COMxx sconosciuto»?

Ricorda di impostare la velocità di comunicazione seriale a 115200 baud.

Dopo che il codice è stato caricato con successo, il monitor seriale stamperà la distanza tra il sensore ultrasonico e l’ostacolo di fronte.

Come funziona?

Per l’applicazione del sensore ultrasonico, possiamo controllare direttamente la sottofunzione.

float readSensorData(){// ...}
  • Il trigPin del modulo ultrasonico trasmette un segnale a onda quadra di 10us ogni 2us.

    // Invia un segnale basso prima di inviare un segnale alto
    digitalWrite(trigPin, LOW);
    delayMicroseconds(2);
    // Invia un segnale alto di 10 microsecondi al trigPin
    digitalWrite(trigPin, HIGH);
    delayMicroseconds(10);
    // Ritorna al segnale basso
    digitalWrite(trigPin, LOW);
    
  • Il echoPin riceve un segnale di livello alto se c’è un ostacolo nel raggio e utilizza la funzione pulseIn() per registrare il tempo dall’invio alla ricezione.

    unsigned long microsecond = pulseIn(echoPin, HIGH);
    
  • La velocità del suono è di 340 metri al secondo, equivalente a 29 microsecondi per centimetro. Misurando il tempo impiegato da un’onda quadra per raggiungere un ostacolo e tornare, possiamo calcolare la distanza percorsa dividendo il tempo totale per 2. Questo ci dà la distanza dell’ostacolo dalla sorgente dell’onda sonora.

    float distance = microsecond / 29.00 / 2;
    

Nota che il sensore ultrasonico interromperà il programma quando è in funzione, il che potrebbe causare alcuni ritardi quando si scrivono progetti complessi.