I dette projekt vil vi interface HC-SR04 ultralydssensormodul til Raspberry Pi for at måle afstand. Vi har tidligere brugt ultralydssensor med Raspberry Pi til at bygge hindring, der undgår robot. Før du går videre, skal du vide noget om ultralydssensor.
HC-SR04 Ultralydssensor:
Ultralydssensoren bruges til at måle afstanden med høj nøjagtighed og stabile aflæsninger. Det kan måle afstand fra 2 cm til 400 cm eller fra 1 tomme til 13 fod. Den udsender en ultralydsbølge med frekvensen 40KHz i luften, og hvis objektet kommer i vejen, vil den hoppe tilbage til sensoren. Ved at bruge den tid, det tager at ramme objektet og komme tilbage, kan du beregne afstanden.
Ultralydssensoren bruger en teknik kaldet “ECHO”. "ECHO" er simpelthen en reflekteret lydbølge. Du får en ECHO, når lyden reflekteres tilbage, når du har nået en blindgyde.
HCSR04-modulet genererer en lydvibration i ultralydsområdet, når vi gør 'Trigger'-stiften høj i ca. 10us, hvilket vil sende en 8-cyklisk sonisk burst ved lydens hastighed, og efter at have ramt objektet, modtages den af Echo-stiften. Afhængig af den tid det tager af lydvibrationer at komme tilbage, giver den passende pulsudgang. Hvis objektet er langt væk, tager det mere tid for ECHO at blive hørt, og outputpulsbredden vil være stor. Og hvis forhindringen er nær, høres ECHO hurtigere, og outputpulsbredden bliver mindre.
Vi kan beregne afstanden på objektet baseret på den tid, det tager af ultralydsbølgen at vende tilbage til sensoren. Da lydens tid og hastighed er kendt, kan vi beregne afstanden ved hjælp af følgende formler.
- Afstand = (Tid x Lydhastighed i luft (343 m / s)) / 2.
Værdien divideres med to, da bølgen bevæger sig fremad og bagud, der dækker samme afstand. Dermed er tiden til at nå forhindring kun halvdelen af den samlede tid, der er taget
Så afstand i centimeter = 17150 * T.
Vi har tidligere lavet mange nyttige projekter ved hjælp af denne ultralydssensor og Arduino, se dem nedenfor:
- Arduino-baseret afstandsmåling ved hjælp af ultralydssensor
- Døralarm ved hjælp af Arduino og ultralydssensor
- IOT-baseret dumpingovervågning ved hjælp af Arduino
Nødvendige komponenter:
Her bruger vi Raspberry Pi 2 Model B med Raspbian Jessie OS. Alle de grundlæggende hardware- og softwarekrav er tidligere diskuteret, du kan slå det op i Raspberry Pi Introduktion og Raspberry PI LED Blinker for at komme i gang, bortset fra at vi har brug for:
- Raspberry Pi med forudinstalleret OS
- HC-SR04 Ultralydssensor
- Strømforsyning (5v)
- 1KΩ modstand (3 stykker)
- 1000uF kondensator
- 16 * 2 tegn LCD
Forklaring af kredsløb:
Forbindelser mellem Raspberry Pi og LCD er angivet i nedenstående tabel:
LCD-forbindelse |
Raspberry Pi-forbindelse |
GND |
GND |
VCC |
+ 5V |
VEE |
GND |
RS |
GPIO17 |
R / W |
GND |
EN |
GPIO27 |
D0 |
GPIO24 |
D1 |
GPIO23 |
D2 |
GPIO18 |
D3 |
GPIO26 |
D4 |
GPIO5 |
D5 |
GPIO6 |
D6 |
GPIO13 |
D7 |
GPIO19 |
I dette kredsløb brugte vi 8bit kommunikation (D0-D7) til at forbinde LCD med Raspberry Pi, men dette er ikke obligatorisk, vi kan også bruge 4-bit kommunikation (D4-D7), men med 4 bit kommunikationsprogram bliver det lidt kompleks for begyndere, så bare gå med 8 bit kommunikation. Her har vi tilsluttet 10 ben på LCD til Raspberry Pi, hvor 8 ben er datapinde og 2 ben er kontrolpinde.
Nedenfor er kredsløbsdiagrammet til tilslutning af HC-SR04-sensor og LCD med Raspberry Pi til måling af afstanden.
Som vist i figuren har HC-SR04 ultralydssensor fire ben,
- PIN1- VCC eller + 5V
- PIN2- TRIGGER (10us høj puls gives for at fortælle sensoren at registrere afstanden)
- PIN3- ECHO (giver pulsudgang, hvis bredde repræsenterer afstand efter trigger)
- PIN4- JORD
Echo pin giver + 5V outputpuls, som ikke kan tilsluttes direkte til Raspberry Pi. Så vi bruger Voltage Divider Circuit (bygget med R1 og R2) for at få + 3.3V logik i stedet for + 5V logik.
Arbejdsforklaring:
Komplet bearbejdning af Raspberry Pi Distance Measure går som, 1. Udløsning af sensoren ved at trække udløsertappen op i 10uS.
2. Lydbølgen sendes af sensoren. Efter modtagelse af ECHO giver sensormodulet et output, der er proportionalt med afstanden.
3. Vi registrerer det tidspunkt, hvor outputpulsen går fra LAV til HØJ, og hvornår igen når dens går fra HØJ til LAV.
4. Vi har start- og stoptid. Vi bruger afstandsligning til at beregne afstanden.
5. Afstanden vises i 16x2 LCD-display.
Derfor har vi skrevet Python-programmet til Raspberry Pi for at udføre følgende funktioner:
1. For at sende udløseren til sensoren
2. Optag start- og stoptid for pulsudgang fra sensor.
3. For at beregne afstanden ved hjælp af START- og STOP-tiden.
4. For at få vist det opnåede resultat på 16 * 2 LCD.
Komplet program og demo-video er angivet nedenfor. Programmet forklares godt gennem kommentarerne. Hvis du er i tvivl, kan du spørge i kommentarfeltet nedenfor.