Come misurare la distanza con il Raspberry Pi

Come misurare la distanza con il Raspberry Pi
È possibile misurare la distanza usando il sensore ultrasonico HC-SR04 con Raspberry Pi. Il sensore HC-SR04 può misurare la distanza da 2 mm (.02m) a 400 cm (4m). Invia 8 esplosioni di segnali da 40 kHz e poi attende che colpisca un oggetto e si riflettesse. Il tempo impiegato per via e l'onda sonora ad ultrasuoni 40khz per viaggiare avanti e indietro viene utilizzato per calcolare la distanza tra il sensore e l'oggetto sulla sua strada. È fondamentalmente come funziona il sensore HC-SR04.

In questo articolo, ti mostrerò come utilizzare un sensore ad ultrasuoni HC-SR04 per misurare la distanza tra il sensore e un oggetto sulla sua strada usando Raspberry Pi. Iniziamo.

Componenti di cui hai bisogno:

Per misurare con successo la distanza con il sensore Raspberry Pi e HC-SR04, è necessario,

  • Un computer a schema singolo Raspberry Pi o 3 con Raspbian installato.
  • Un modulo di sensore ad ultrasuoni HC-SR04.
  • Resistori da 3x10kΩ.
  • Una breadboard.
  • Alcuni connettori da maschio a femmina.
  • Alcuni connettori maschi a maschio.

Ho scritto un articolo dedicato sull'installazione di Raspbian su Raspberry Pi, che puoi controllare su https: // linuxhint.com/ install_raspbian_raspberry_pi/ se è necessario.

Pinout HC-SR04:

L'HC-SR04 ha 4 pin. VCC, grilletto, eco, groud.

Fig1: Pinout HC-SR04 (https: // www.mouser.com/ds/2/813/hcsr04-1022824.PDF)

Il perno VCC deve essere collegato al pin +5V del lampone Pi, che è il pin 2. Il perno di terra dovrebbe essere collegato al perno GND del lampone PI, che è il pin 4.

I pin di grilletto ed eco dovrebbero essere collegati ai pin GPIO di Raspberry Pi. Mentre, il perno del trigger può essere collegato direttamente a uno dei pin GPIO di Raspberry Pi, il perno di eco necessita di un circuito del divisore di tensione.

Schema elettrico:

Collega il sensore ad ultrasuoni HC-SR04 al tuo Raspberry Pi come segue:

Fig2: sensore ultrasonico HC-SR04 collegato a Raspberry Pi.

Una volta che tutto è connesso, è così che appare:

Fig3: sensore ultrasonico HC-SR04 collegato a Raspberry Pi su Breadboard.

Fig4: sensore ultrasonico HC-SR04 collegato a Raspberry Pi su Breadboard.

Scrivere un programma Python per misurare la distanza con HC-SR04:

Innanzitutto, connettiti a Raspberry Pi usando VNC o SSH. Quindi, apri un nuovo file (diciamo distanza.Py) e digitare le seguenti righe di codici:

Qui, la linea 1 importa la libreria Raspberry Pi GPIO.

La riga 2 importa la libreria del tempo.

Dentro il Tentativo blocco, il codice effettivamente per misurare la distanza utilizzando HC-SR04 è scritto.

IL Finalmente Il blocco viene utilizzato per ripulire i perni GPIO con GPIO.ripulire() Metodo quando il programma esce.

Dentro il Tentativo blocco, sulla riga 5, GPIO.SetMode (GPIO.ASSE) è usato per semplificare la definizione dei pin. Ora, puoi fare riferimento ai pin per numeri fisici come si trova sulla scheda Raspberry Pi.

Sul rigo 7 e 8, pintrigger è impostato per 7 E Pinecho è impostato per 11. IL GRILLETTO Il pin di HC-SR04 è collegato al pin 7 e ECO Il pin di HC-SR04 è collegato al pin 11 di Rapsberry Pi. Entrambi sono pin GPIO.

Sulla riga 10, pintrigger è configurazione per l'output utilizzando GPIO.impostare() metodo.

Sulla riga 11, Pinecho è configurazione per l'input utilizzando GPIO.impostare() metodo.

Le righe 13-17 vengono utilizzate per il ripristino pintrigger (impostandolo su Logic 0) e impostando il pintrigger alla logica 1 per 10 ms e poi alla logica 0. In 10ms, il sensore HC-SR04 invia 8 impulsi da 40khz.

Le righe 19-24 vengono utilizzate per misurare il tempo impiegato per riflettere gli impulsi a 40kHz su un oggetto e di nuovo al sensore HC-SR04.

Nella riga 25, la distanza viene misurata usando la formula,

Distanza = tempo delta * velocità (340m / s) / 2

=> Distanza = tempo delta * (170m/s)

Ho calcolato la distanza in centimetri anziché in metri, solo per essere precisi. Ho calcolato la distanza è anche arrotondata a 2 posti decimali.

Infine, sulla riga 27, il risultato è stampato. Ecco, molto semplice.

Ora, esegui lo script Python con il seguente comando:

$ Python3 Distanza.Py

Come puoi vedere, la distanza misurata è 8.40 cm.

Fig5: oggetto posto a circa 8.40 cm di distanza dal sensore.

Mi sono spostato per obiettare un po 'più lontano, la distanza misurata è 21.81 cm. Quindi, funziona come previsto.

Fig6: oggetto posto a circa 21.81 cm di distanza dal sensore.

È così che misuri la distanza con Raspberry Pi usando il sensore ultrasonico HC-SR04. Vedere il codice per la distanza.Py sotto:

Importa RPI.GPIO AS GPIO
tempo di importazione
Tentativo:
GPIO.SetMode (GPIO.ASSE)
pintrigger = 7
pinecho = 11
GPIO.Setup (Pintrigger, GPIO.FUORI)
GPIO.Setup (PineCho, GPIO.IN)
GPIO.Uscita (Pintrigger, GPIO.BASSO)
GPIO.Uscita (Pintrigger, GPIO.ALTO)
tempo.dormire (0.00001)
GPIO.Uscita (Pintrigger, GPIO.BASSO)
mentre GPIO.Input (pinecho) == 0:
PulsestartTime = Time.tempo()
mentre GPIO.Input (pinecho) == 1:
PulseEndtime = Time.tempo()
PulsEDURATION = PulseEndtime - PulsestartTime
Distanza = round (pulsutodurazione * 17150, 2)
Stampa ("Distanza: %.2f cm " % (distanza))
Finalmente:
GPIO.ripulire()