V tomto projektu budeme propojovat modul ultrazvukového senzoru HC-SR04 s Raspberry Pi pro měření vzdálenosti. Dříve jsme k výrobě robota zabraňujícího překážkám použili ultrazvukový senzor s Raspberry Pi. Než půjdeme dále, dejte vědět o ultrazvukovém senzoru.
Ultrazvukový senzor HC-SR04:
Ultrazvukový senzor se používá k měření vzdálenosti s vysokou přesností a stabilním odečtem. Může měřit vzdálenost od 2 cm do 400 cm nebo od 1 palce do 13 stop. Vysílá do vzduchu ultrazvukovou vlnu o frekvenci 40 KHz a pokud mu objekt přijde do cesty, odrazí se zpět k senzoru. Pomocí času, který trvá úder na objekt a návrat, můžete vypočítat vzdálenost.
Ultrazvukový senzor používá techniku zvanou „ECHO“. „ECHO“ je jednoduše odražená zvuková vlna. Když se zvuk po dosažení slepé uličky odrazí zpět, budete mít ECHO.
Modul HCSR04 generuje zvukové vibrace v ultrazvukovém rozsahu, když uděláme kolík „Trigger“ vysoký na přibližně 10 us, který vyšle 8 cyklů sonického výbuchu rychlostí zvuku a po zasažení objektu jej přijme kolík Echo. V závislosti na době, kterou zvukové vibrace potřebují k návratu, poskytuje vhodný pulzní výstup. Pokud je objekt daleko, pak bude ECHO slyšet více času a šířka výstupního pulzu bude velká. A pokud je překážka blízko, pak bude ECHO slyšet rychleji a šířka výstupního pulzu bude menší.
Můžeme vypočítat vzdálenost objektu na základě času, který ultrazvuková vlna potřebuje k návratu zpět k senzoru. Protože je znám čas a rychlost zvuku, můžeme vzdálenost vypočítat podle následujících vzorců.
- Vzdálenost = (čas x rychlost zvuku ve vzduchu (343 m / s)) / 2.
Hodnota se dělí dvěma, protože vlna se pohybuje vpřed a vzad a pokrývá stejnou vzdálenost. Čas potřebný k dosažení překážky je tedy jen polovina celkového času
Takže vzdálenost v centimetrech = 17150 * T
Dříve jsme pomocí tohoto ultrazvukového senzoru a Arduina vytvořili mnoho užitečných projektů, zkontrolujte je níže:
- Arduino měření vzdálenosti pomocí ultrazvukového senzoru
- Dveřní alarm využívající Arduino a ultrazvukový senzor
- Monitorování kontejnerů na IOT pomocí Arduina
Požadované komponenty:
Zde používáme Raspberry Pi 2 Model B s Raspbian Jessie OS. Všechny základní hardwarové a softwarové požadavky jsou již dříve diskutovány, můžete si je vyhledat v Raspberry Pi Introduction a Raspberry PI LED Blinking pro začátek, kromě toho, co potřebujeme:
- Raspberry Pi s předinstalovaným operačním systémem
- Ultrazvukový senzor HC-SR04
- Napájení (5 V)
- 1KΩ rezistor (3 kusy)
- 1000uF kondenzátor
- 16 * 2 znakový LCD
Vysvětlení obvodu:
Spojení mezi Raspberry Pi a LCD jsou uvedena v následující tabulce:
Připojení LCD |
Připojení 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 obvodu jsme pro připojení LCD s Raspberry Pi použili 8bitovou komunikaci (D0-D7), není to však povinné, můžeme použít i 4bitovou komunikaci (D4-D7), ale se 4bitovým komunikačním programem se stane bit komplexní pro začátečníky, takže stačí 8bitová komunikace. Zde jsme připojili 10 pinů LCD k Raspberry Pi, ve kterých 8 pinů jsou datové piny a 2 piny jsou kontrolní piny.
Níže je schéma zapojení pro připojení snímače HC-SR04 a LCD s Raspberry Pi pro měření vzdálenosti.
Jak je znázorněno na obrázku, ultrazvukový senzor HC-SR04 má čtyři piny,
- PIN1- VCC nebo + 5V
- PIN2- TRIGGER (10us vysoký puls daný k tomu, aby senzor snímal vzdálenost)
- PIN3- ECHO (Poskytuje pulzní výstup, jehož šířka představuje vzdálenost po spuštění)
- PIN4 - UZEMNĚNÍ
Echo pin poskytuje + 5V výstupní impuls, který nelze přímo připojit k Raspberry Pi. Budeme tedy používat obvod děliče napětí (vytvořený pomocí R1 a R2), abychom získali logiku +3,3 V namísto logiky + 5V.
Pracovní vysvětlení:
Kompletní fungování měření vzdálenosti Raspberry Pi probíhá jako, 1. Spuštění senzoru vytažením spouštěcího kolíku na 10uS.
2. Zvuková vlna je vysílána senzorem. Po obdržení ECHO poskytuje senzorový modul výstup úměrný vzdálenosti.
3. Zaznamenáme čas, kdy výstupní impuls přejde z LOW na HIGH a kdy znovu, když jeho puls přejde z HIGH na LOW.
4. Budeme mít čas zahájení a zastavení. K výpočtu vzdálenosti použijeme rovnici vzdálenosti.
5. Vzdálenost se zobrazuje na 16x2 LCD displeji.
Proto jsme napsali program Python pro Raspberry Pi, který umožňuje následující funkce:
1. Odeslat spoušť na senzor
2. Zaznamenejte čas spuštění a zastavení pulzního výstupu ze snímače.
3. Výpočet vzdálenosti pomocí času START a STOP.
4. Chcete-li zobrazit výsledek získaný na 16 * 2 LCD.
Kompletní program a ukázkové video jsou uvedeny níže. Program je dobře vysvětlen prostřednictvím komentářů, pokud máte pochybnosti, můžete se zeptat v sekci komentářů níže.