[ARDUINO] Oko Cyklopa – ultradźwiękowy „radar” do lokalizacji obiektów
W artykule opisano system lokalizacji obiektu, wykorzystujący trzy czujniki ultradźwiękowe HY-SFR05. Zasadę działania takich czujników przedstawiono w artykule HC-SR04 – ultradźwiękowy czujnik odległości i Arduino. W niniejszym artykule opiszę jak przygotować się do oprogramowania tych czujników oraz zaprezentuję budowę systemu śledzącego najbliższy obiekt. Do realizacji tego zadania wykorzystałem:
- 3 czujniki ultradźwiękowe HY-SFR05,
- silnik Servo 6001HB,
- płytkę startową Arduino Leonardo,
- regulator napięcia Pololu 2121,
- płytkę stykową, np. PPS0400,
- zestaw kabli, np. CAB_F,
- źródło zasilania (np. akumulator Lipol 7.4V).
Do osiągnięcia założonego celu konieczne jest:
- nauka obsługi czujnika HY-SFR05,
- jednoczesne uruchomienie 3 czujników ultradźwiękowych,
- przesłanie danych celem ich weryfikacji,
- określenie minimalnego odczytu,
- uruchomienie silnika serwo,
- skoordynowanie dwóch powyższych modułów.
Przejdźmy do pierwszego zadania. Zasada działania czujnika ultradźwiękowego została dokładnie przedstawiona we wspomnianym już artykule HC-SR04 – ultradźwiękowy czujnik odległości i Arduino. W skrócie, czujnik generuje krótki impuls ultradźwiękowy, a następnie odmierza czas do powrotu (po odbiciu od przeszkody) tego impulsu. Aby wygenerować sygnał, wykorzystam linię wyjściową 10 zestawu Arduino połączoną z linią Trigger czujnika (rysunek 1). Przykładowy program pokazano na listingu 1.
List. 1. Kod generujący krótkie impulsy
int TX1 = 10; //port nadajnika Ultrasonic void setup() { pinMode(TX1, OUTPUT); } void loop() { digitalWrite(TX1, HIGH); delayMicroseconds(10); digitalWrite(TX1, LOW); }
Rys. 1. Schemat dołączenia czujnika mod HY-SFR05 do Arduino Leonardo
Wygenerowanie sygnału pozwoli jedynie wysłać impuls. Kolejnym etapem jest odebranie odbitego sygnału oraz odpowiednia interpretacja danych. Po zakończeniu nadawania rozpoczynamy nasłuch, jednocześnie mierząc czas, po którym nadejdzie