W tym projekcie zamierzamy połączyć moduł czujnika ultradźwiękowego HC-SR04 z Raspberry Pi w celu pomiaru odległości. Wcześniej używaliśmy czujnika ultradźwiękowego z Raspberry Pi do budowy robota unikającego przeszkód. Zanim przejdziesz dalej, daj znać o czujniku ultradźwiękowym.
Czujnik ultradźwiękowy HC-SR04:
Czujnik ultradźwiękowy służy do pomiaru odległości z dużą dokładnością i stabilnymi odczytami. Może mierzyć odległość od 2 cm do 400 cm lub od 1 cala do 13 stóp. Emituje w powietrzu falę ultradźwiękową o częstotliwości 40 kHz i jeśli obiekt stanie mu na drodze to odbije się z powrotem do czujnika. Wykorzystując czas potrzebny na uderzenie w obiekt i powrót, możesz obliczyć odległość.
Czujnik ultradźwiękowy wykorzystuje technikę zwaną „ECHO”. „ECHO” to po prostu odbita fala dźwiękowa. Będziesz mieć ECHO, gdy dźwięk odbija się z powrotem po osiągnięciu ślepej uliczki.
Moduł HCSR04 generuje wibracje dźwiękowe w zakresie ultradźwiękowym, gdy ustawimy pin 'Trigger' na wysoki na około 10us, co wyśle 8-cyklową serię dźwiękową z prędkością dźwięku i po uderzeniu w obiekt zostanie odebrany przez pin Echo. W zależności od czasu potrzebnego na powrót wibracji dźwiękowej, zapewnia on odpowiednie wyjście impulsowe. Jeśli obiekt jest daleko, usłyszenie ECHO zajmie więcej czasu, a szerokość impulsu wyjściowego będzie duża. A jeśli przeszkoda jest blisko, wtedy ECHO będzie słyszalne szybciej, a szerokość impulsu wyjściowego będzie mniejsza.
Możemy obliczyć odległość obiektu na podstawie czasu potrzebnego fali ultradźwiękowej na powrót do czujnika. Ponieważ czas i prędkość dźwięku są znane, możemy obliczyć odległość za pomocą następujących wzorów.
- Odległość = (czas x prędkość dźwięku w powietrzu (343 m / s)) / 2.
Wartość dzieli się przez dwa, ponieważ fala przemieszcza się do przodu i do tyłu pokonując tę samą odległość, więc czas na dotarcie do przeszkody to tylko połowa całkowitego czasu
Więc odległość w centymetrach = 17150 * T.
Wcześniej wykonaliśmy wiele przydatnych projektów wykorzystujących ten czujnik ultradźwiękowy i Arduino, sprawdź je poniżej:
- Pomiar odległości oparty na Arduino przy użyciu czujnika ultradźwiękowego
- Alarm drzwi za pomocą Arduino i czujnika ultradźwiękowego
- Monitorowanie Dumpster na podstawie IOT przy użyciu Arduino
Wymagane składniki:
Tutaj używamy Raspberry Pi 2 Model B z Raspbian Jessie OS. Wszystkie podstawowe wymagania sprzętowe i programowe zostały wcześniej omówione, możesz je sprawdzić we wprowadzeniu do Raspberry Pi i Miga dioda LED Raspberry PI, aby rozpocząć, poza tym, czego potrzebujemy:
- Raspberry Pi z preinstalowanym systemem operacyjnym
- Czujnik ultradźwiękowy HC-SR04
- Zasilanie (5 V)
- Rezystor 1KΩ (3 sztuki)
- Kondensator 1000uF
- Wyświetlacz LCD 16 * 2 znaków
Objaśnienie obwodu:
Połączenia między Raspberry Pi i LCD są podane w poniższej tabeli:
Złącze LCD |
Połączenie 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 |
W tym układzie wykorzystaliśmy komunikację 8-bitową (D0-D7) do połączenia LCD z Raspberry Pi, jednak nie jest to obowiązkowe, możemy też skorzystać z komunikacji 4-bitowej (D4-D7), ale przy 4-bitowej komunikacji program staje się trochę złożony dla początkujących, więc po prostu skorzystaj z 8-bitowej komunikacji. Tutaj podłączyliśmy 10 pinów LCD do Raspberry Pi, w których 8 pinów to pinów danych, a 2 pinów to pinów sterujących.
Poniżej znajduje się schemat podłączenia czujnika HC-SR04 i LCD z Raspberry Pi do pomiaru odległości.
Jak pokazano na rysunku, czujnik ultradźwiękowy HC-SR04 ma cztery piny,
- PIN1- VCC lub + 5V
- PIN2- TRIGGER (10us Wysoki impuls podany w celu poinformowania czujnika o wykryciu odległości)
- PIN3- ECHO (zapewnia wyjście impulsowe, którego szerokość reprezentuje odległość po wyzwoleniu)
- PIN4- UZIEMIENIE
Pin Echo zapewnia impuls wyjściowy + 5V, którego nie można podłączyć bezpośrednio do Raspberry Pi. Więc użyjemy obwodu dzielnika napięcia (zbudowanego przy użyciu R1 i R2), aby uzyskać logikę + 3,3 V zamiast logiki + 5 V.
Objaśnienie robocze:
Kompletna praca miernika odległości Raspberry Pi przebiega następująco:
1. Wyzwalanie czujnika przez pociągnięcie do góry bolca wyzwalającego na 10uS.
2. Fala dźwiękowa jest wysyłana przez czujnik. Po otrzymaniu ECHO moduł czujnika dostarcza wyjście proporcjonalne do odległości.
3. Zarejestrujemy czas, w którym impuls wyjściowy przechodzi z NISKIEGO na WYSOKI i kiedy ponownie zmienia się z WYSOKI na NISKI.
4. Będziemy mieć czas rozpoczęcia i zakończenia. Do obliczenia odległości użyjemy równania odległości.
5. Odległość jest wyświetlana na wyświetlaczu LCD 16x2.
W związku z tym napisaliśmy program w języku Python dla Raspberry Pi, aby wykonywać następujące funkcje:
1. Aby wysłać wyzwalacz do czujnika
2. Zapisz czas rozpoczęcia i zakończenia wyjścia impulsowego z czujnika.
3. Aby obliczyć odległość, używając czasu START i STOP.
4. Aby wyświetlić wynik uzyskany na wyświetlaczu LCD 16 * 2.
Pełny program i wideo demonstracyjne są podane poniżej. Program jest dobrze wyjaśniony w komentarzach, jeśli masz jakiekolwiek wątpliwości, możesz zapytać w sekcji komentarzy poniżej.