Raspberry Pi

Kako izmjeriti udaljenost s Raspberry Pi

Kako izmjeriti udaljenost s Raspberry Pi
Udaljenost možete izmjeriti pomoću ultrazvučnog senzora HC-SR04 s Raspberry Pi. HC-SR04 senzor može mjeriti udaljenost od 2 mm (.02m) do 400cm (4m). Šalje 8 rafala od 40KHz signala, a zatim čeka da pogodi objekt i odbije se. Vrijeme potrebno za ultrazvučni zvuk vala od 40KHz naprijed-nazad koristi se za izračunavanje udaljenosti između senzora i predmeta na putu. U osnovi tako funkcionira senzor HC-SR04.

U ovom članku pokazat ću vam kako pomoću HC-SR04 ultrazvučnog senzora za mjerenje udaljenosti između vašeg senzora i predmeta na njegov način pomoću Raspberry Pi. Započnimo.

Komponente koje su vam potrebne:

Trebate za uspješno mjerenje udaljenosti s Raspberry Pi i HC-SR04 senzorom,

Napisao sam posvećeni članak o instaliranju Raspbiana na Raspberry Pi, koji možete provjeriti na https: // linuxhint.com / install_raspbian_raspberry_pi / ako trebate.

HC-SR04 izlazi:

HC-SR04 ima 4 pina. VCC, TRIGGER, ECHO, GROUD.

Fig1: HC-SR04 pinouts (https: // www.mouser.com / ds / 2/813 / HCSR04-1022824.pdf)

VCC pin treba biti povezan s + 5V pinom Raspberry Pi, koji je pin 2. Pin za uzemljenje trebao bi biti povezan s GND pinom na Raspberry Pi, koji je pin 4.

Klinovi TRIGGER i ECHO trebali bi biti povezani s GPIO pinovima Raspberry Pi. Dok se TRIGGER pin može izravno povezati s jednim od GPIO pinova Raspberry Pi, ECHO pin treba krug djelitelja napona.

Kružni dijagram:

Povežite ultrazvučni senzor HC-SR04 s vašim Raspberry Pi kako slijedi:

Slika2: HC-SR04 ultrazvučni senzor povezan s Raspberry Pi.

Jednom kad se sve poveže, ovako izgleda:

Slika 3: HC-SR04 ultrazvučni senzor povezan s Raspberry Pi na ploči za ploču.

Slika4: HC-SR04 ultrazvučni senzor povezan s Raspberry Pi na ploči za ploču.

Pisanje Python programa za mjerenje udaljenosti s HC-SR04:

Prvo se povežite s Raspberry Pi koristeći VNC ili SSH. Zatim otvorite novu datoteku (recimo udaljenost.py) i unesite sljedeće retke kodova:

Ovdje redak 1 uvozi Raspberry pi GPIO knjižnicu.

Redak 2 uvozi knjižnicu vremena.

Unutar probati blok, napisan je zapravo kod za mjerenje udaljenosti pomoću HC-SR04.

The konačno blok koristi se za čišćenje GPIO pinova pomoću GPIO.počistiti() metoda kada se program zatvori.

Unutar probati blok, na liniji 5, GPIO.postavljeni način rada (GPIO.ODBOR) koristi se za olakšavanje definiranja pribadača. Sada pinove možete referencirati prema fizičkim brojevima kao što je na ploči Raspberry Pi.

Na liniji 7 i 8, pinTrigger postavljeno je na 7 i pinEcho postavljeno je na 11. The OKIDAČ pin HC-SR04 spojen je na pin 7 i JEKA pin HC-SR04 spojen je na pin 11 Rapsberry Pi. Obje su GPIO pinove.

Na liniji 10, pinTrigger je postavljen za OUTPUT pomoću GPIO.postaviti() metoda.

Na liniji 11, pinEcho je postavljen za INPUT pomoću GPIO.postaviti() metoda.

Linije 13-17 koriste se za resetiranje pinTrigger (postavljanjem na logiku 0) i postavljanjem pinTrigger na logiku 1 za 10ms, a zatim na logiku 0. Za 10 ms senzor HC-SR04 šalje 8 pulsa od 40 KHz.

Linije 19-24 koriste se za mjerenje vremena potrebnog da se impulsi od 40KHz odraze na objektu i natrag na senzor HC-SR04.

Na liniji 25, udaljenost se mjeri pomoću formule,

Udaljenost = delta vrijeme * brzina (340M / S) / 2

=> Udaljenost = delta vrijeme * (170M / S)

Udaljenost sam izračunao u centimetrima umjesto u metrima, samo da budem precizan. Izračunao sam da je udaljenost zaokružena na 2 decimale.

Konačno, na retku 27 ispisuje se rezultat. To je to, vrlo jednostavno.

Sada pokrenite Python skriptu sa sljedećom naredbom:

$ python3 udaljenost.py

Kao što vidite, izmjerena udaljenost je 8.40 cm.

Slika 5: objekt postavljen na oko 8.40 cm od senzora.

Pomaknuo sam se da prigovorim malo dalje, izmjerena udaljenost je 21.81cm. Dakle, radi prema očekivanjima.

Slika 6: objekt postavljen na oko 21.81 cm udaljen od senzora.

Dakle, na taj način mjerite udaljenost s Raspberry Pi pomoću ultrazvučnog senzora HC-SR04.  Pogledajte kod za udaljenost.py ispod:

uvoz RPi.GPIO kao GPIO
vrijeme uvoza
probati:
GPIO.postavljeni način rada (GPIO.ODBOR)
pinTrigger = 7
pinEcho = 11
 
GPIO.postavljanje (pinTrigger, GPIO.VAN)
GPIO.postavljanje (pinEcho, GPIO.U)
 
GPIO.izlaz (pinTrigger, GPIO.NISKO)
GPIO.izlaz (pinTrigger, GPIO.VISOKO)
 
vrijeme.spavati (0.00001)
GPIO.izlaz (pinTrigger, GPIO.NISKO)
 
dok GPIO.ulaz (pinEcho) == 0:
pulseStartTime = vrijeme.vrijeme()
dok GPIO.ulaz (pinEcho) == 1:
pulseEndTime = vrijeme.vrijeme()
 
pulseDuration = pulseEndTime - pulseStartTime
udaljenost = okrugla (trajanje impulsa * 17150, 2)
 
print ("Udaljenost:%.2f cm "% (udaljenost))
konačno:
GPIO.počistiti()
Kako snimiti i struji svoju igraću sesiju na Linuxu
U prošlosti se igranje igara smatralo samo hobijem, ali s vremenom je igračka industrija zabilježila ogroman rast u pogledu tehnologije i broja igrača...
Najbolje igre za ručno praćenje
Oculus Quest nedavno je predstavio sjajnu ideju ručnog praćenja bez kontrolera. Sa sve većim brojem igara i aktivnosti koje izvršavaju podršku bilo fo...
Kako prikazati OSD prekrivač u aplikacijama i igrama na cijelom zaslonu za Linux
Igranje igara preko cijelog zaslona ili upotreba aplikacija u režimu preko cijelog zaslona bez ometanja može vas odsjeći od relevantnih informacija o ...