V tomto projekte sa chystáme prepojiť modul ultrazvukového snímača HC-SR04 s Raspberry Pi na meranie vzdialenosti. Predtým sme na výrobu robota vyhýbania sa prekážkam použili ultrazvukový snímač s Raspberry Pi. Než pôjdete ďalej, dajte vedieť o ultrazvukovom senzore.
Ultrazvukový snímač HC-SR04:
Ultrazvukový senzor sa používa na meranie vzdialenosti s vysokou presnosťou a stabilnými údajmi. Môže merať vzdialenosť od 2 cm do 400 cm alebo od 1 palca do 13 stôp. Vysiela vo vzduchu ultrazvukovú vlnu s frekvenciou 40 KHz a ak mu objekt príde do cesty, odrazí sa späť k senzoru. Pomocou času, ktorý potrebujete na udrenie objektu a návrat späť, môžete vypočítať vzdialenosť.
Ultrazvukový senzor používa techniku zvanú „ECHO“. „ECHO“ je jednoducho odrazená zvuková vlna. Keď sa zvuk odrazí po dosiahnutí slepej uličky, budete mať ECHO.
Modul HCSR04 generuje zvukové vibrácie v ultrazvukovom rozsahu, keď urobíme kolík „Trigger“ vysoký na približne 10us, ktorý vyšle 8cyklový zvukový výbuch rýchlosťou zvuku a po zasiahnutí objektu bude prijatý kolíkom Echo. V závislosti od času potrebného na návrat zvukových vibrácií poskytuje vhodný impulzný výstup. Ak je objekt ďaleko, potom bude ECHO počuť viac času a šírka výstupného impulzu bude veľká. A ak je prekážka blízko, potom bude ECHO počuť rýchlejšie a šírka výstupného impulzu bude menšia.
Môžeme vypočítať vzdialenosť objektu na základe času potrebného na návrat späť k senzoru ultrazvukovou vlnou. Pretože čas a rýchlosť zvuku sú známe, môžeme vzdialenosť vypočítať podľa nasledujúcich vzorcov.
- Vzdialenosť = (čas x rýchlosť zvuku vo vzduchu (343 m / s)) / 2.
Hodnota sa vydelí dvoma, pretože vlna sa pohybuje vpred a vzad a pokrýva rovnakú vzdialenosť. Čas potrebný na dosiahnutie prekážky je teda len polovica z celkového času
Takže vzdialenosť v centimetroch = 17150 * T
Predtým sme pomocou tohto ultrazvukového senzora a Arduina vytvorili veľa užitočných projektov, skontrolujte ich nižšie:
- Arduino meranie vzdialenosti pomocou ultrazvukového senzora
- Dverový alarm pomocou Arduina a ultrazvukového senzora
- Monitorovanie popolnice na báze IOT pomocou Arduina
Požadované komponenty:
Tu používame Raspberry Pi 2 Model B s Raspbian Jessie OS. Všetky základné hardvérové a softvérové požiadavky sú už predtým diskutované. Môžete si ich vyhľadať v úvode Raspberry Pi a blikaní Raspberry PI LED, okrem toho, čo potrebujeme:
- Raspberry Pi s predinštalovaným OS
- Ultrazvukový snímač HC-SR04
- Napájanie (5v)
- 1KΩ rezistor (3 kusy)
- 1000uF kondenzátor
- 16 * 2 znakový LCD
Vysvetlenie obvodu:
Pripojenia medzi Raspberry Pi a LCD sú uvedené v nasledujúcej tabuľke:
LCD pripojenie |
Pripojenie Raspberry Pi |
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 |
V tomto obvode sme použili 8-bitovú komunikáciu (D0-D7) na pripojenie LCD k Raspberry Pi, nie je to však povinné, môžeme použiť aj 4-bitovú komunikáciu (D4-D7), ale so 4-bitovým komunikačným programom sa stane bit komplex pre začiatočníkov, takže stačí ísť s 8-bitovou komunikáciou. Tu sme pripojili 10 pinov LCD k Raspberry Pi, v ktorých 8 pinov sú dátové piny a 2 piny sú kontrolné piny.
Ďalej je uvedená schéma zapojenia pre pripojenie snímača HC-SR04 a LCD s Raspberry Pi na meranie vzdialenosti.
Ako je znázornené na obrázku, ultrazvukový snímač HC-SR04 má štyri piny,
- PIN1- VCC alebo + 5V
- PIN2- TRIGGER (10us vysoký impulz, ktorý povie snímaču, aby cítil vzdialenosť)
- PIN3- ECHO (Poskytuje impulzný výstup, ktorého šírka predstavuje vzdialenosť po spustení)
- PIN4- UZEMNENIE
Echo pin poskytuje + 5V výstupný impulz, ktorý sa nedá pripojiť priamo k Raspberry Pi. Budeme teda používať obvod deliča napätia (zostavený pomocou R1 a R2), aby sme získali logiku +3,3 V namiesto logiky + 5V.
Pracovné vysvetlenie:
Kompletné fungovanie merania vzdialenosti Raspberry Pi prebieha ako, 1. Spustenie senzora potiahnutím spúšte nahor o 10uS.
2. Zvuková vlna je vysielaná snímačom. Po prijatí ECHO poskytuje modul snímača výstup úmerný vzdialenosti.
3. Zaznamenáme čas, kedy výstupný impulz klesne z LOW na HIGH a kedy znovu, keď dôjde k zmene z HIGH na LOW.
4. Budeme mať čas začatia a zastavenia. Na výpočet vzdialenosti použijeme rovnicu vzdialenosti.
5. Vzdialenosť sa zobrazuje na 16x2 LCD displeji.
Preto sme program Python pre Raspberry Pi napísali tak, aby vykonával nasledujúce funkcie:
1. Na odoslanie spúšťača na senzor
2. Zaznamenajte čas spustenia a zastavenia impulzného výstupu zo snímača.
3. Výpočet vzdialenosti pomocou času ŠTART a STOP.
4. Pre zobrazenie výsledku získaného na 16 * 2 LCD.
Kompletný program a ukážkové video sú uvedené nižšie. Program je dobre vysvetlený prostredníctvom komentárov, ak máte pochybnosti, môžete sa opýtať v sekcii komentárov nižšie.