Usando HC-SR04 con il Raspberry Pi

Using the HC-SR04 With the Raspberry Pi

Il sensore ad ultrasuoni HC-SR04 è uno strumento popolare ed economico per misurare la distanza in vari progetti fai-da-te e professionali. Se abbinato a un Raspberry Pi, apre un mondo di possibilità per la creazione di applicazioni come rilevamento degli ostacoli, misurazione del livello e persino installazioni interattive. Questo post sul blog ti guiderà attraverso il processo di configurazione e utilizzo del sensore HC-SR04 con il tuo Raspberry Pi.

Cos'è il sensore ultrasonico HC-SR04?

L'HC-SR04 è un modulo di sensore ad ultrasuoni che misura la distanza emettendo onde ad ultrasuoni e calcolando il tempo impiegato per il ritorno dell'eco. Funziona a 5 V ed è noto per la sua precisione e affidabilità in misurazione della distanza corta a media raggio, in genere tra 2 cm e 400 cm.

Componenti di cui avrai bisogno

  • Raspberry Pi (qualsiasi modello con pin GPIO, come Raspberry Pi 4)
  • Sensore ultrasonico HC-SR04
  • Fili jumper
  • Breadboard
  • Resistenza da 10kΩ (per divisione di tensione)
  • Opzionale: LED e resistenza per il feedback visivo

Cablaggio dell'HC-SR04 a Raspberry Pi

Il collegamento dell'HC-SR04 al Raspberry Pi richiede un'attenta gestione, soprattutto perché i pin GPIO Raspberry PI operano a 3,3 V e l'HC-SR04 funziona a 5 V. Per evitare danni al tuo PI, è essenziale utilizzare un divisore di tensione sul perno dell'eco.

Collegamenti dei pin

  • VCC di HC-SR04 a 5v Pin su Raspberry Pi
  • GND di HC-SR04 a GND su Raspberry Pi
  • Trig Pin di HC-SR04 a a PIN GPIO su Raspberry Pi (ad es. GPIO23)
  • Eco Pin di HC-SR04 a Raspberry Pi attraverso un divisore di tensione

Impostazione del divisore di tensione

Per collegare in sicurezza il perno di eco al Raspberry Pi, utilizzare un divisore di tensione con una resistenza da 10kΩ e una resistenza da 20kΩ. Questo scenderà il segnale 5V a circa 3,3 V.


# Example schematic for voltage divider
# HC-SR04 Echo pin ---- 10kΩ ----> Raspberry Pi GPIO (Echo)
#                             |
#                           20kΩ
#                             |
#                           GND

Installazione delle librerie necessarie

Prima di scrivere il codice, assicurati che il tuo Raspberry Pi sia aggiornato e abbia le librerie necessarie installate.


sudo apt-get update
sudo apt-get upgrade
sudo apt-get install python3-rpi.gpio

Scrivere la sceneggiatura di Python

Di seguito è riportato un semplice script Python per interfacciarsi con il sensore HC-SR04. Questo script invia un impulso trigger, attende l'eco e calcola la distanza in base al tempo impiegato per il ritorno dell'eco.


import RPi.GPIO as GPIO
import time

# GPIO Mode (BOARD / BCM)
GPIO.setmode(GPIO.BCM)

# Set GPIO Pins
TRIG = 23
ECHO = 24

print("Distance Measurement In Progress")

# Set GPIO direction (IN / OUT)
GPIO.setup(TRIG, GPIO.OUT)
GPIO.setup(ECHO, GPIO.IN)

def distance():
    # Set TRIG to LOW
    GPIO.output(TRIG, False)
    time.sleep(2)

    # Send 10us pulse to TRIG
    GPIO.output(TRIG, True)
    time.sleep(0.00001)
    GPIO.output(TRIG, False)

    start_time = time.time()
    stop_time = time.time()

    # Save StartTime
    while GPIO.input(ECHO) == 0:
        start_time = time.time()

    # Save Time of Arrival
    while GPIO.input(ECHO) == 1:
        stop_time = time.time()

    # Time difference between start and arrival
    time_elapsed = stop_time - start_time
    # Multiply with speed of sound (34300 cm/s)
    # and divide by 2, because there and back
    distance = (time_elapsed * 34300) / 2

    return distance

if __name__ == '__main__':
    try:
        while True:
            dist = distance()
            print("Measured Distance = %.1f cm" % dist)
            time.sleep(1)
    except KeyboardInterrupt:
        print("Measurement stopped by User")
        GPIO.cleanup()

Esecuzione dello script

Assicurati che il tuo cablaggio sia corretto e quindi esegui lo script usando Python 3:


python3 hc-sr04.py

Dovresti vedere la distanza misurata in centimetri stampati sulla console. Se stai utilizzando un LED per il feedback visivo, puoi modificare lo script per illuminare il LED quando un oggetto si trova in un determinato intervallo.

Migliorare il tuo progetto

Una volta funzionanti le misurazioni della distanza di base, prendi in considerazione l'integrazione di funzionalità aggiuntive:

  • Indicatori a LED: Usa LED per indicare diversi intervalli di distanza.
  • Display LCD: Mostra la distanza su uno schermo LCD.
  • Registrazione dei dati: Registrare le misurazioni della distanza nel tempo per l'analisi.
  • Sistemi di allerta: Attiva allarmi o notifiche quando gli oggetti sono troppo vicini.

Risoluzione dei problemi di problemi comuni

Lavorare con sensori e GPIO a volte può essere impegnativo. Ecco alcuni problemi comuni e come affrontarli:

  • Cablaggio errato: Controllare due connessioni, in particolare il divisore di tensione sul perno di eco.
  • Misurazioni rumorose: Assicurati che l'installazione sia stabile e prendi in considerazione l'aggiunta di condensatori al rumore del filtro.
  • Conflitti GPIO: Assicurarsi che nessun altro script o servizi stia utilizzando gli stessi pin GPIO.
  • Autorizzazioni: Esegui gli script con autorizzazioni appropriate, usando sudo se necessario.

Conclusione

Il sensore ad ultrasuoni HC-SR04 è un componente versatile e affidabile che, se combinato con il Raspberry Pi, può servire una moltitudine di applicazioni dalla semplice misurazione della distanza a sistemi di automazione complessi. Seguendo i passaggi delineati in questa guida, dovresti essere in grado di impostare e iniziare a sperimentare l'HC-SR04 sul tuo Raspberry Pi. Felice armeggiare!

Lascia un commento

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.