Hindbær Pi

Sådan måles afstand med Raspberry Pi

Sådan måles afstand med Raspberry Pi
Du kan måle afstand ved hjælp af HC-SR04 ultralydssensor med Raspberry Pi. HC-SR04-sensoren kan måle afstanden fra 2 mm (.02m) til 400cm (4m). Det sender 8 burst af 40KHz signaler og venter derefter på, at det rammer et objekt og bliver reflekteret tilbage. Den tid, det tager for ultralyds 40KHz lydbølge at rejse frem og tilbage, bruges til at beregne afstanden mellem sensoren og objektet på vej. Sådan fungerer HC-SR04-sensoren.

I denne artikel vil jeg vise dig, hvordan du bruger en HC-SR04 ultralydssensor til at måle afstanden mellem din sensor og et objekt på sin måde ved hjælp af Raspberry Pi. Lad os komme igang.

Komponenter, du har brug for:

For at kunne måle afstand med Raspberry Pi og HC-SR04-sensor har du brug for,

Jeg har skrevet en dedikeret artikel om installation af Raspbian på Raspberry Pi, som du kan tjekke på https: // linuxhint.com / install_raspbian_raspberry_pi / hvis du har brug for det.

HC-SR04 Pinouts:

HC-SR04 har 4 ben. VCC, TRIGGER, ECHO, GROUD.

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

VCC-stiften skal forbindes til + 5V-stift på Raspberry Pi, som er stift 2. GROUND-stiften skal forbindes til GND-stiften på Raspberry Pi, som er pin 4.

TRIGGER- og ECHO-benene skal forbindes til GPIO-benene på Raspberry Pi. Mens TRIGGER-stiften kan forbindes direkte til en af ​​GPIO-stifterne på Raspberry Pi, skal ECHO-stiften have et spændingsdelerkredsløb.

Kredsløbsdiagram:

Tilslut HC-SR04 ultralydssensoren til din Raspberry Pi som følger:

Fig2: HC-SR04 ultralydssensor tilsluttet Raspberry Pi.

Når alt er tilsluttet, ser det sådan ud:

Fig3: HC-SR04 ultralydssensor tilsluttet Raspberry Pi på brødbræt.

Fig4: HC-SR04 ultralydssensor tilsluttet Raspberry Pi på brødbræt.

Skrivning af et Python-program til måling af afstand med HC-SR04:

Opret først forbindelse til din Raspberry Pi ved hjælp af VNC eller SSH. Åbn derefter en ny fil (lad os sige afstand.py) og indtast følgende linjer med koder:

Her importerer linje 1 hindbær pi GPIO-biblioteket.

Linje 2 importerer tidsbiblioteket.

Inde i prøve blok, den faktiske kode til måling af afstanden ved hjælp af HC-SR04 skrives.

Det langt om længe blok bruges til at rydde op i GPIO-benene med GPIO.Ryd op() metode, når programmet afsluttes.

Inde i prøve blok, på linje 5, GPIO.setmode (GPIO.BESTYRELSE) bruges til at gøre det lettere at definere stifter. Nu kan du henvise til ben ved hjælp af fysiske tal, som det er på Raspberry Pi-kortet.

På linje 7 og 8, pinTrigger er indstillet til 7 og pinEcho er indstillet til 11. Det UDLØSER stift på HC-SR04 er forbundet med stift 7, og EKKO pin af HC-SR04 er forbundet til pin 11 på Rapsberry Pi. Begge disse er GPIO-ben.

På linje 10, pinTrigger er opsat til OUTPUT ved hjælp af GPIO.Opsætning() metode.

På linje 11, pinEcho er konfigureret til INPUT ved hjælp af GPIO.Opsætning() metode.

Linjer 13-17 bruges til nulstilling pinTrigger (ved at indstille den til logik 0) og indstille pinTrigger til logik 1 i 10 ms og derefter til logik 0. På 10 ms sender HC-SR04-sensoren 8 40 KHz-puls.

Linjer 19-24 bruges til at måle den tid, det tager, at 40KHz impulser reflekteres til et objekt og tilbage til HC-SR04 sensoren.

På linje 25 måles afstanden ved hjælp af formlen,

Afstand = deltatid * hastighed (340M / S) / 2

=> Afstand = delta tid * (170M / S)

Jeg beregnede afstanden i centimeter i stedet for meter, bare for at være præcis. Jeg beregnede afstand er også afrundet til 2 decimaler.

Endelig udskrives resultatet på linje 27. Det er det, meget simpelt.

Kør nu Python-scriptet med følgende kommando:

$ python3 afstand.py

Som du kan se, er den målte afstand 8.40 cm.

Fig5: objekt placeret omkring 8.40 cm væk fra sensoren.

Jeg bevægede mig for at gøre indsigelse lidt længere, den målte afstand er 21.81 cm. Så det fungerer som forventet.

Fig6: objekt placeret omkring 21.81 cm væk fra sensoren.

Så det er sådan, du måler afstanden med Raspberry Pi ved hjælp af HC-SR04 ultralydssensoren.  Se koden for afstand.py nedenfor:

importer RPi.GPIO som GPIO
importtid
prøve:
GPIO.setmode (GPIO.BESTYRELSE)
pinTrigger = 7
pinEcho = 11
 
GPIO.opsætning (pinTrigger, GPIO.UD)
GPIO.opsætning (pinEcho, GPIO.I)
 
GPIO.output (pinTrigger, GPIO.LAV)
GPIO.output (pinTrigger, GPIO.HØJ)
 
tid.sove (0.00001)
GPIO.output (pinTrigger, GPIO.LAV)
 
mens GPIO.input (pinEcho) == 0:
pulseStartTime = tid.tid()
mens GPIO.input (pinEcho) == 1:
pulseEndTime = tid.tid()
 
pulseDuration = pulseEndTime - pulseStartTime
distance = rund (pulsvarighed * 17150, 2)
 
print ("Afstand:%.2f cm "% (afstand))
langt om længe:
GPIO.Ryd op()
Installer nyeste Dolphin Emulator til Gamecube & Wii på Linux
Dolphin Emulator giver dig mulighed for at spille dine valgte Gamecube & Wii-spil på Linux Personal Computers (PC). Som en frit tilgængelig og open s...
Sådan bruges GameConqueror Cheat Engine i Linux
Artiklen dækker en vejledning om brug af GameConqueror-snydemotoren i Linux. Mange brugere, der spiller spil på Windows, bruger ofte "Cheat Engine" -a...
Bedste spilkonsolemulatorer til Linux
Denne artikel viser en liste over populære spilkonsolemuleringssoftware, der er tilgængelig til Linux. Emulation er et softwarekompatibilitetslag, der...