[ARDUINO] Oko Cyklopa – ultradźwiękowy „radar” do lokalizacji obiektów

odpowiedź. Następnie przekazujemy wynik pomiaru poprzez port szeregowy (listing 2).

 

List. 2. Kod obliczający odległość do obiektu i wysyłający dane szeregowo przez RS232

W programie z listingu 2 wykorzystano funkcję:

Funkcja ta zwraca wartość wyrażoną w jednostce czasu informującą o osiągnięciu na danym porcie oczekiwanego stanu logicznego. W powyższym programie po wysłaniu impulsu oczekujemy na pojawienie się na linii 11 wysokiego poziomu napięcia. Otrzymany wynik poprzedzony odpowiednią adnotacją wysyłamy do komputera.

Po zakończeniu testów czujnika przechodzimy do kolejnego etapu, jakim jest jednoczesne uruchomienie trzech czujników oraz określenie, który czujnik znajduje się najbliżej przeszkody. Do wykonania tego zadania warto skorzystać schemat z rysunku 2. Zgodnie z tym schematem czujniki zostały dołączone następująco:

  • Czujnik 1: nadajnik – linia 10, odbiornik – linia 11,
  • Czujnik 2: nadajnik – linia 12, odbiornik – linia 13,
  • Czujnik 3: nadajnik – linia 6, odbiornik – linia 7,
  • Zasilanie oraz masa zostały dołączone równolegle.

Rys. 2. Schemat dołączenia 3 czujników ultradźwiękowych do Arduino Leonardo

Po odpowiednim połączeniu elementów urządzenia kolejnym celem będzie oprogramowanie tego układu. Do tego powielimy kod z listingu 2 odpowiednio konfigurując porty. Wynik tej operacji znajduje się na listingu 3.

 

List. 3. Kod obliczający odległość do obiektu zmierzoną przez trzy czujniki ultradźwiękowe

Aby określić położenie obiektu, będziemy musieli wyznaczyć wartość minimalną wskazania czujników. Do tego celu posłuży algorytm przedstawiony na rysunku 3. Jego implementacja w języku C jest pokazana na listingu 4.

 

Rys. 3. Algorytm sortowania wartości odczytanych przez czujniki

 

O autorze