V tem projektu bomo povezali ultrazvočni senzorski modul HC-SR04 z Raspberry Pi za merjenje razdalje. Pred tem smo za izdelavo robota, ki se izogiba oviram, uporabljali ultrazvočni senzor z Raspberry Pi. Preden nadaljujete, nas obvestite o ultrazvočnem senzorju.
Ultrazvočni senzor HC-SR04:
Ultrazvočni senzor se uporablja za merjenje razdalje z visoko natančnostjo in stabilnimi odčitki. Izmeri lahko razdaljo od 2 cm do 400 cm ali od 1 palca do 13 čevljev. V zraku oddaja ultrazvočni val s frekvenco 40KHz in če bo predmet prišel na pot, se bo odbil nazaj do senzorja. Če izrabite razdaljo tako, da uporabite čas, ki je potreben za udarjanje predmeta in vrnitev nazaj.
Ultrazvočni senzor uporablja tehniko, imenovano "ECHO". "ECHO" je preprosto odsevni zvočni val. ECHO boste dobili, ko se bo zvok odseval nazaj, ko bo prišel v slepo ulico.
Modul HCSR04 ustvarja zvočne vibracije v ultrazvočnem območju, ko zatič "Trigger" postavimo visoko za približno 10us, kar bo poslalo 8-ciklični zvočni izbruh s hitrostjo zvoka in po udarcu v objekt ga bo prejel odmevni zatič. Odvisno od časa, ki ga zvočne vibracije vzamejo nazaj, zagotavlja ustrezen impulzni izhod. Če je predmet daleč, potem traja več časa, da se ECHO zasliši, širina izhodnega impulza pa bo velika. In če je ovira blizu, bo ECHO zaslišan hitreje in širina izhodnega impulza bo manjša.
Oddaljenost predmeta lahko izračunamo na podlagi časa, ki ga ultrazvočni val vzame nazaj na senzor. Ker sta čas in hitrost zvoka znana, lahko razdaljo izračunamo po naslednjih formulah.
- Razdalja = (čas x hitrost zvoka v zraku (343 m / s)) / 2.
Vrednost je deljena z dvema, saj val potuje naprej in nazaj, ki pokriva enako razdaljo. Tako je čas za dosego ovire le polovica celotnega časa
Torej Razdalja v centimetrih = 17150 * T
S tem ultrazvočnim senzorjem in Arduinom smo že naredili veliko uporabnih projektov, preverite jih spodaj:
- Merjenje razdalje na osnovi arduina z uporabo ultrazvočnega senzorja
- Alarm za vrata z uporabo Arduino in ultrazvočnega senzorja
- Nadzor smetišča na osnovi IOT z uporabo Arduina
Potrebne komponente:
Tu uporabljamo model Raspberry Pi 2 Model B z OS Raspbian Jessie. Vse osnovne zahteve glede strojne in programske opreme so že obravnavane, za začetek si jih lahko ogledate v Uvodu Raspberry Pi in Utripajoči LED Raspberry PI, razen tistega, kar potrebujemo:
- Raspberry Pi s prednameščenim OS
- Ultrazvočni senzor HC-SR04
- Napajanje (5v)
- 1KΩ upor (3 kosi)
- 1000uF kondenzator
- 16 * 2-mestni LCD
Pojasnilo vezja:
Povezave med Raspberry Pi in LCD so podane v spodnji tabeli:
Povezava LCD |
Povezava Raspberry Pi |
GND |
GND |
VCC |
+ 5V |
VEE |
GND |
RS |
GPIO17 |
R / W |
GND |
SL |
GPIO27 |
D0 |
GPIO24 |
D1 |
GPIO23 |
D2 |
GPIO18 |
D3 |
GPIO26 |
D4 |
GPIO5 |
D5 |
GPIO6 |
D6 |
GPIO13 |
D7 |
GPIO19 |
V tem vezju smo za povezavo LCD-ja z Raspberry Pi uporabili 8-bitno komunikacijo (D0-D7), vendar to ni obvezno, lahko tudi 4-bitno komunikacijo (D4-D7), vendar s 4-bitnim komunikacijskim programom postane malo kompleksen za začetnike, zato se odločite za 8-bitno komunikacijo. Tu smo na Raspberry Pi povezali 10 nožic LCD-ja, v katerih je 8 nožic podatkovnih nožic in 2 nožici kontrolnih nožic.
Spodaj je diagram vezja za povezavo senzorja HC-SR04 in LCD z Raspberry Pi za merjenje razdalje.
Kot je prikazano na sliki, ima ultrazvočni senzor HC-SR04 štiri nožice,
- PIN1- VCC ali + 5V
- PIN2- TRIGGER (10-polni visok impulz, ki senzorju sporoči, da zazna razdaljo)
- PIN3- ECHO (zagotavlja impulzni izhod, katerega širina predstavlja razdaljo po sprožilcu)
- PIN4- TLA
Echo pin zagotavlja izhodni impulz + 5 V, ki ga ni mogoče neposredno povezati z Raspberry Pi. Torej bomo uporabili vezje delilnika napetosti (zgrajeno z uporabo R1 in R2), da dobimo + 3,3 V logiko namesto + 5 V logike.
Delovna razlaga:
Popolno delovanje Raspberry Pi Distance Measure poteka, 1. Sprožitev senzorja tako, da povlečete sprožilni zatič za 10uS.
2. Zvočni val odda senzor. Po prejemu ECHO senzorski modul daje izhodno razmerje, sorazmerno z razdaljo.
3. Zabeležili bomo čas, ko gre izhodni impulz iz NIZKEGA VISOKEGA in kdaj spet, ko gre iz VISOKEGA NA NIZKO.
4. Imeli bomo čas začetka in konca. Za izračun razdalje bomo uporabili enačbo razdalje.
5. Razdalja je prikazana na 16x2 LCD zaslonu.
V skladu s tem smo napisali program Python za Raspberry Pi, da opravlja naslednje funkcije:
1. Za pošiljanje sprožilca na senzor
2. Zapišite čas zagona in zaustavitve impulznega izhoda senzorja.
3. Za izračun razdalje uporabite čas START in STOP.
4. Za prikaz rezultatov, dobljenih na LCD 16 * 2.
Celoten program in predstavitveni video so navedeni spodaj. Program je dobro razložen s komentarji, če dvomite, ga lahko vprašate v spodnjem oddelku za komentarje.