Raspberry Pi

Kako izmeriti razdaljo z Raspberry Pi

Kako izmeriti razdaljo z Raspberry Pi
Razdaljo lahko izmerite z ultrazvočnim senzorjem HC-SR04 z Raspberry Pi. Senzor HC-SR04 lahko meri razdaljo od 2 mm (.02m) do 400cm (4m). Pošlje 8 rafalnih 40KHz signalov in nato počaka, da zadene predmet in se odbije nazaj. Čas, potreben za potovanje ultrazvočnega 40KHz zvočnega vala naprej in nazaj, se uporabi za izračun razdalje med senzorjem in predmetom na poti. Tako deluje v bistvu senzor HC-SR04.

V tem članku vam bom pokazal, kako z uporabo ultrazvočnega senzorja HC-SR04 za merjenje razdalje med senzorjem in predmetom na njegov način z uporabo Raspberry Pi. Začnimo.

Komponente, ki jih potrebujete:

Za uspešno merjenje razdalje s senzorjem Raspberry Pi in HC-SR04 potrebujete,

Napisal sem poseben članek o namestitvi Raspbian na Raspberry Pi, ki ga lahko preverite na https: // linuxhint.com / install_raspbian_raspberry_pi / po potrebi.

Izvlečki HC-SR04:

HC-SR04 ima 4 nožice. VCC, TRIGGER, ECHO, GROUD.

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

Zatič VCC mora biti povezan s + 5V zatičem Raspberry Pi, ki je zatič 2. Zatič GROUND mora biti povezan z zatičem GND na Raspberry Pi, ki je zatič 4.

Zatiči TRIGGER in ECHO morajo biti povezani z zatiči GPIO na Raspberry Pi. Medtem ko je zatič TRIGGER mogoče neposredno povezati z enim od GPIO zatičev Raspberry Pi, zatič ECHO potrebuje vezje delilnika napetosti.

Shema vezja:

Ultrazvočni senzor HC-SR04 priključite na Raspberry Pi, kot sledi:

Slika2: Ultrazvočni senzor HC-SR04, priključen na Raspberry Pi.

Ko je vse povezano, je videti tako:

Slika3: Ultrazvočni senzor HC-SR04, priključen na Raspberry Pi na plošči.

Slika4: Ultrazvočni senzor HC-SR04, priključen na Raspberry Pi na plošči.

Pisanje Python programa za merjenje razdalje s HC-SR04:

Najprej se povežite z Raspberry Pi s pomočjo VNC ali SSH. Nato odprite novo datoteko (recimo razdalja.py) in vnesite naslednje vrstice kod:

Tukaj vrstica 1 uvozi knjižnico maline pi GPIO.

Vrstica 2 uvozi časovno knjižnico.

Znotraj poskusite blok, je napisana dejanska koda za merjenje razdalje s pomočjo HC-SR04.

The končno blok se uporablja za čiščenje zatičev GPIO z GPIO.pospravi() metoda, ko program zapre.

Znotraj poskusite blok, v vrstici 5, GPIO.nastavljeni način (GPIO.ODBOR) se uporablja za lažje določanje zatičev. Zdaj se lahko na nožke sklicujete s fizičnimi številkami, kot je na plošči Raspberry Pi.

Na vrstici 7 in 8, pinTrigger je nastavljeno na 7 in pinEcho je nastavljeno na 11. The TRIGGER zatič HC-SR04 je priključen na zatič 7 in ECHO zatič HC-SR04 je povezan z zatičem 11 Rapsberry Pi. Oba sta zatiča GPIO.

Na liniji 10, pinTrigger je nastavitev za OUTPUT z uporabo GPIO.nastaviti() metoda.

V vrstici 11, pinEcho je nastavitev za INPUT z uporabo GPIO.nastaviti() metoda.

Vrstice 13-17 se uporabljajo za ponastavitev pinTrigger (z nastavitvijo na logiko 0) in nastavitvijo pinTrigger do logike 1 za 10 ms in nato do logike 0. V 10 ms senzor HC-SR04 pošlje 8 impulzov 40 KHz.

Vrstice 19-24 se uporabljajo za merjenje časa, ki je potreben, da se impulzi 40KHz odbijejo na predmet in nazaj na senzor HC-SR04.

V vrstici 25 se razdalja meri po formuli,

Razdalja = delta čas * hitrost (340M / S) / 2

=> Razdalja = delta čas * (170M / S)

Razdaljo sem izračunal v centimetrih namesto v metrih, čisto natančno. Izračunal sem, da je razdalja tudi zaokrožena na dve decimalni mesti.

Na koncu se v vrstici 27 natisne rezultat. To je to, zelo preprosto.

Zdaj zaženite skript Python z naslednjim ukazom:

$ python3 razdalja.py

Kot lahko vidite, je izmerjena razdalja 8.40 cm.

Slika 5: objekt postavljen na približno 8.40 cm stran od senzorja.

Premaknil sem se proti objektu nekoliko dlje, izmerjena razdalja je 21.81cm. Torej, deluje po pričakovanjih.

Slika 6: objekt postavljen na približno 21.81 cm stran od senzorja.

Torej tako merite razdaljo z Raspberry Pi z ultrazvočnim senzorjem HC-SR04.  Glejte kodo za razdaljo.py spodaj:

uvoz RPi.GPIO kot GPIO
čas uvoza
poskusite:
GPIO.nastavljeni način (GPIO.ODBOR)
pinTrigger = 7
pinEcho = 11
 
GPIO.nastavitev (pinTrigger, GPIO.OUT)
GPIO.nastavitev (pinEcho, GPIO.IN)
 
GPIO.izhod (pinTrigger, GPIO.LOW)
GPIO.izhod (pinTrigger, GPIO.VISOKO)
 
čas.spanje (0.00001)
GPIO.izhod (pinTrigger, GPIO.LOW)
 
medtem ko GPIO.vhod (pinEcho) == 0:
pulseStartTime = čas.čas ()
medtem ko GPIO.vhod (pinEcho) == 1:
pulseEndTime = čas.čas ()
 
pulseDuration = pulseEndTime - pulseStartTime
razdalja = okrogla (trajanje impulza * 17150, 2)
 
print ("Razdalja:%.2f cm "% (oddaljenost))
končno:
GPIO.pospravi()
Brezplačni in odprtokodni igralni mehanizmi za razvoj iger Linux
Ta članek bo zajemal seznam brezplačnih in odprtokodnih igralnih mehanizmov, ki jih je mogoče uporabiti za razvoj 2D in 3D iger v Linuxu. Obstaja veli...
Vadnica Shadow of the Tomb Raider za Linux
Shadow of the Tomb Raider je dvanajsti dodatek k seriji Tomb Raider - franšiza akcijsko-pustolovskih iger, ki jo je ustvaril Eidos Montreal. Kritiki i...
Kako povečati FPS v Linuxu?
FPS pomeni Število sličic na sekundo. Naloga FPS je merjenje hitrosti sličic pri predvajanju video posnetkov ali igranih predstavah. Z enostavnimi bes...