U ovom ćemo projektu povezati ultrazvučni senzorski modul HC-SR04 s Raspberry Pi za mjerenje udaljenosti. Prije smo koristili ultrazvučni senzor s Raspberry Pi za izradu robota koji izbjegava prepreke. Prije nego što nastavite, obavijestite nas o ultrazvučnom senzoru.
HC-SR04 ultrazvučni senzor:
Ultrazvučni senzor koristi se za mjerenje udaljenosti velikom preciznošću i stabilnim očitanjem. Može mjeriti udaljenost od 2 cm do 400 cm ili od 1 inča do 13 stopa. Emitira ultrazvučni val na frekvenciji od 40KHz u zraku i ako će objekt naići na njegov put, odbit će se natrag do senzora. Koristeći vrijeme potrebno za udaranje predmeta i povratak, možete izračunati udaljenost.

Ultrazvučni senzor koristi tehniku koja se naziva "ECHO". "ECHO" je jednostavno odbijeni zvučni val. Imat ćete ECHO kada se zvuk odbije nakon povratka u slijepu ulicu.
HCSR04 modul generira zvučne vibracije u ultrazvučnom opsegu kada postavimo pin "Trigger" visok za oko 10us koji će poslati zvučni rafal od 8 ciklusa brzinom zvuka i nakon udara u objekt primit će ga Echo pin. Ovisno o vremenu koje je potrebno zvučnim vibracijama da se vrate, on daje odgovarajući impulsni izlaz. Ako je objekt daleko, potrebno je više vremena da se ECHO začuje i širina izlaznog impulsa bit će velika. A ako je prepreka blizu, tada će se brže čuti ECHO i širina izlaznog impulsa bit će manja.

Možemo izračunati udaljenost objekta na temelju vremena koje je ultrazvučnom valu trebalo za povratak na senzor. Budući da su vrijeme i brzina zvuka poznati, udaljenost možemo izračunati prema sljedećim formulama.
- Udaljenost = (Vrijeme x Brzina zvuka u zraku (343 m / s)) / 2.
Vrijednost se dijeli s dva jer val putuje naprijed i natrag pokrivajući istu udaljenost. Tako je vrijeme za dosezanje prepreke samo polovica ukupnog vremena
Dakle Udaljenost u centimetru = 17150 * T
Već smo napravili mnoge korisne projekte koristeći ovaj ultrazvučni senzor i Arduino, provjerite ih u nastavku:
- Mjerenje udaljenosti temeljeno na Arduinu pomoću ultrazvučnog senzora
- Alarm na vratima pomoću Arduina i ultrazvučnog senzora
- Nadzor smeća na temelju IOT-a pomoću Arduina
Potrebne komponente:
Ovdje koristimo Raspberry Pi 2 Model B s Raspbian Jessie OS. Svi osnovni hardverski i softverski zahtjevi su prethodno raspravljeni, možete ih potražiti u Uvodu Raspberry Pi i Trepćući LED Raspberry PI za početak, osim onoga što nam treba:
- Raspberry Pi s unaprijed instaliranim OS-om
- HC-SR04 ultrazvučni senzor
- Napajanje (5v)
- Otpor 1KΩ (3 komada)
- Kondenzator od 1000uF
- LCD s 16 * 2 znaka
Objašnjenje sklopa:
Poveznice između Raspberry Pi i LCD prikazane su u donjoj tablici:
|
LCD veza |
Raspberry Pi veza |
|
GND |
GND |
|
VCC |
+ 5V |
|
VEE |
GND |
|
RS |
GPIO17 |
|
R / W |
GND |
|
HR |
GPIO27 |
|
D0 |
GPIO24 |
|
D1 |
GPIO23 |
|
D2 |
GPIO18 |
|
D3 |
GPIO26 |
|
D4 |
GPIO5 |
|
D5 |
GPIO6 |
|
D6 |
GPIO13 |
|
D7 |
GPIO19 |
U ovom smo krugu koristili 8-bitnu komunikaciju (D0-D7) za povezivanje LCD-a s Raspberry Pi, međutim to nije obvezno, možemo koristiti i 4-bitnu komunikaciju (D4-D7), ali s 4-bitnim komunikacijskim programom postaje malo složen za početnike, zato samo krenite s 8-bitnom komunikacijom. Ovdje smo na Raspberry Pi povezali 10 pinova LCD-a u kojima su 8 pinova podatkovne i 2 pina kontrolne.
Ispod je shema spojeva za spajanje senzora HC-SR04 i LCD zaslona s Raspberry Pi za mjerenje udaljenosti.

Kao što je prikazano na slici, ultrazvučni senzor HC-SR04 ima četiri pina,
- PIN1- VCC ili + 5V
- PIN2- TRIGGER (impuls od 10us daje se senzoru da prepozna udaljenost)
- PIN3- ECHO (pruža impulsni izlaz čija širina predstavlja udaljenost nakon okidača)
- PIN4- ZEMLJA
Echo pin pruža izlazni impuls od + 5 V koji se ne može izravno povezati s Raspberry Pi. Dakle, koristit ćemo krug za razdvajanje napona (izrađen pomoću R1 i R2) da bismo dobili + 3.3V logike umjesto + 5V logike.
Radno objašnjenje:
Kompletni rad Raspberry Pi Mjera udaljenosti ide kao, 1. Pokretanje senzora povlačenjem klina okidača za 10 uS.
2. Zvučni val šalje senzor. Nakon primanja ECHO, senzorski modul daje izlaz proporcionalan udaljenosti.
3. Zabilježit ćemo vrijeme kada izlazni impuls pređe iz NISKOG u VISOKO i kada opet kada pređe iz VISOKOG u NISKO.
4. Imat ćemo vrijeme početka i zaustavljanja. Za izračun udaljenosti poslužit ćemo jednadžbom udaljenosti.
5. Udaljenost se prikazuje na LCD zaslonu 16x2.
U skladu s tim napisali smo Python program za Raspberry Pi da izvršava sljedeće funkcije:
1. Za slanje okidača na senzor
2. Zabilježite vrijeme početka i zaustavljanja impulsnog izlaza sa senzora.
3. Da biste izračunali udaljenost pomoću vremena START i STOP.
4. Za prikaz rezultata dobivenih na LCD-u 16 * 2.
Kompletni program i demo video su navedeni u nastavku. Program je dobro objašnjen kroz komentare, a ako sumnjate možete pitati u odjeljku za komentare u nastavku.
