Zbuduj własnego robota - Robot śledzący ścianę

Zaprezentuje jak wykorzystując platformę jezdną z projektu robota Line Follower, której budowę opisałem poprzednio, można zbudować robota śledzącego ścianę. Do tego potrzebny będzie nam ultradźwiękowy czujnik odległości zamontowany z boku robota, prostopadle do linii ruchu, który zastąpi nam czujniki obiciowe do znajdowania linii.  

Jak śledzić ścianę?

Aby nasz robot mógł podążać wzdłuż ściany niezbędny jest pomiar odległości robot a od ściany. W tym celu można wykorzystać ultradźwiękowy czujnik odległości. Ja wykorzystałem czujnik HC-SR04. Pomiar odległości w ten sposób działa następująco: czujnik  za pomocą nadajnika generuje sygnał ultradźwiękowy niesłyszalny dla człowieka a następnie za pomocą detektora nasłuchuje sygnał odbity od przeszkody. Znając prędkość dźwięku oraz czas od momentu nadania sygnału i otrzymania sygnału odbitego jesteśmy w stanie obliczyć odległość od przeszkody. 

Czujnik HC-SR04 posiada cztery piny, do dwóch z nich podłączamy zasilanie, natomiast pozostałe dwa czyli „Trig” i „Echo” wykorzystujemy do pomiaru odległości. Na wejście „Trig” wysyłamy sygnał o długości 10 µs i mierzymy czas do pojawienia się sygnału na wyjściu „Echo”. Tak zmierzony czas możemy przeliczyć na odległość od przeszkody w następujący sposób: s=V/t, znamy czas t [µs] oraz prędkość dźwięku w powietrzu która wynosi 340,3 [m/s] czyli 0,03403 [cm/µs]. Sygnał ultradźwiękowy pokonuje drogę do przeszkody dwukrotnie, raz z nadajnika do przeszkody, następnie od przeszkody do odbiornika. Także musimy nasz wynik podzielić przez 2 : s=V/2t. W przybiżeniu wychodzi że aby obliczyć odległość od przeszkody wystarcz podzielić zmierzony czas przez 58, czyli s=t/58. Uzyskujemy wtedy wynik odległości w centymetrach.

Algorytm działania robota

Robot śledzący ścianę musi poruszać się tak aby utrzymywać możliwie stałą odległość od ściany. Możemy spróbować sterować robotem w sposób dwustanowy, czyli jeżeli odległość od ściany jest za duża, robot powinien zacząć skręcać w kierunku ściany,  natomiast jeżeli odległość od ściany jest zbyt mała wówczas robot powinien zacząć skręcać w kierunku przeciwnym do ściany. Algorytm taki pozwoli nam podążać za ścianą która nie posiada zbyt ostrych zagięć, ale sprawi że robot będzie cały czas skręcał nawet wtedy gdy ściana jest prosta. Dużo lepszym rozwiązaniem jest zastosowanie tutaj regulatora proporcjonalnego. Działa on następująco: sprawdzamy odległość robota od ściany, następnie porównujemy ją z odległością zadaną i w zależności od tej różnicy określamy jak mocno robot powinien zacząć skręcać i w którym kierunku. To pozwali nam na śledzenie nawet mocno pokręconych ścian. Ważne jest także, aby zamontować czujnik odległości pod takim kątem aby „patrzył” delikatnie w do przodu a nie idealnie prostopadle do ściany. Pozwoli nam to wykonywać manewry z wyprzedzeniem. 

Schemat połączeń

Na poniższym rysunku są przedstawione wszystkie połączenia elektryczne jakie należy wykonać w projekcie. Do wykonania połączeń najlepiej wykorzystać przewody połączeniowe męsko – męskie. Czujnik odległości można podłączyć za pomocą przewodów damsko-męskich lub bezpośrednio do Arduino Uno. Na rysunku obok widać jak wygląda cala konstrukcja po jej złożeniu i zamontowaniu na płycie podwozia. 

Uruchomienie robota

Żeby uruchomić naszego robota niezbędne będzie środowisko Arduino IDE, możesz je pobrać tutaj. Dodatkowo będzie potrzebny program, który należy wgrać na płytkę z mikrokontrolerem. Program znajdziesz pod tym linkiem.  Następnie podłącz płytkę Arduino Uno do komputera za pomocą kabelka USB. Uruchom środowisko Arduino IDE  i skonfiguruj połączenie z płytką. Wystarczy, że w zakładce “Narzędzia->Płytka” wybierzesz moduł “Arduino Uno” oraz również w zakładce “Narzędzia->Port” wybierzesz port szeregowy pod którym widoczny jest moduł. Teraz w zakładce “Plik” wybierz opcję “Otwórz” i wybierz pobrany program “Wally”. Musisz teraz zaprogramować mikrokontroler klikając w ikonkę ze strzałką  w lewym górynym rogu. 

Mikrokontroler jest już zaprogramowany, przystępujemy teraz do uruchomienia robota. W tym celu uruchamiamy monitor portu szeregowego ikonką w lewym górnym rogu lub skrótem klawiszowym Crtl+Shift+M. Wprowadzamy takie same ustawienia portu jak w rysunku powyżej. Wpisujemy teraz komunikat “Front” i klikamy enter. Nasz robot powinien teraz zacząć jechać do przodu, jeśli tak nie jest należy zmodyfikować podłączenie silników do sterownika. Wystarczy zamienić miejscami kabelki silnika, który obraca się do tyłu. Jeśli robot jedzie do przodu to go resetujemy przyciskiem na module Arduino UNO i poprzez monitor portu szeregowego wprowadzamy komendę “Start” i klikamy przycisk enter. Nasz robot uruchomi wówczas tryb śledzenia ściany, teraz możemy umieścić przy ścianie i podziwiać. Przedstawiona tutaj konstrukcja posiada tylko jeden czujnik odległości, zatem ciężko od niej wymagać radzenia sobie z kątami wklęsłymi ściany. Należałoby dodać dodatkowy czujnik z przodu i odpowiednio zmienić algorytm działania. Jest to dobra konstrukcja na początek, aby zapoznać się z problemem śledzenia ścian.

Adrian Wójcik

Adrian Wójcik

Inżynier badań i rozwoju Zajmuje się tworzeniem nowych technologii, lubię dzielić się swoją widzą z innymi, jestem opiekunem praktykantów w firmie w której pracuję. Specjalizuję się w zagadnieniach związanych z robotyką oraz teorią sterowania.
Szukasz dobrych materiałów o projektowaniu elektroniki?

Załóż darmowe konto na naszej platformie i odbierz pakiet materiałów edukacyjnych.

Zakładając konto zgadzasz się na przesyłanie Ci treści marketingowych przez IT20 sp. z o.o. zgodnie z dostępną na stronie Polityką Prywatności. Możesz wycofać zgodę w każdej chwili.

One thought on “Zbuduj własnego robota – Robot śledzący ścianę

  • 20 maja 2020 o 13:16
    Permalink

    Czy można u Was zakupić wszystkie niezbędne komponenty? No i gdzie jest kod?

    Odpowiedz

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Szukasz dobrych materiałów o projektowaniu elektroniki?

Załóż darmowe konto na naszej platformie i odbierz pakiet materiałów edukacyjnych.

Zakładając konto zgadzasz się na przesyłanie Ci treści marketingowych przez IT20 sp. z o.o. zgodnie z dostępną na stronie Polityką Prywatności. Możesz wycofać zgodę w każdej chwili.

Zapisz się na listę mailową i odbierz swoje bonusy!

Więcej treści na temat elektroniki i robotyki, darmowe e-booki i dostęp do minikursów on-line. Otrzymasz to wszystko zapisując się na naszą listę mailową.