- Wymagane materiały:
- Koncepcje popychacza liniowego
- Schemat obwodu robota popychacza linii Raspberry Pi i wyjaśnienie:
- Programowanie twojego Raspberry PI:
- Raspberry Pi Line Follower w akcji:
Jak wszyscy wiemy, Raspberry Pi to wspaniała platforma programistyczna oparta na mikroprocesorze ARM. Dzięki dużej mocy obliczeniowej i możliwościom rozwoju może zdziałać cuda w rękach hobbystów elektroniki lub studentów. Aby dowiedzieć się więcej o Raspberry Pi i jak to działa, spróbujmy zbudować robota Line Follower za pomocą Raspberry Pi.
Jeśli interesujesz się robotyką, powinieneś dobrze znać nazwę „ Line Follower Robot ”. Ten robot jest w stanie podążać za linią, używając tylko pary czujników i silników. Używanie potężnego mikroprocesora, takiego jak Raspberry Pi, do zbudowania prostego robota może wydawać się nieefektywne. Ale ten robot daje ci miejsce na nieskończony rozwój, a roboty takie jak Kiva (robot magazynowy Amazon) są tego przykładem. Możesz również sprawdzić nasze inne roboty Line Follower:
- Robot Line Follower wykorzystujący mikrokontroler 8051
- Robot Line Follower wykorzystujący Arduino
Wymagane materiały:
- Raspberry Pi 3 (powinien działać dowolny model)
- Czujnik podczerwieni (2 szt.)
- Silnik z przekładnią DC (2 szt.)
- Sterownik silnika L293D
- Szezlongi (możesz również zbudować własne za pomocą tektur)
- Power bank (dowolne dostępne źródło zasilania)
Koncepcje popychacza liniowego
Line Follower Robot jest w stanie śledzić linię za pomocą czujnika podczerwieni. Ten czujnik ma nadajnik i odbiornik podczerwieni. Nadajnik podczerwieni (dioda podczerwieni) przesyła światło, a odbiornik (fotodioda) czeka na powrót przechodzącego światła. Światło podczerwone powróci tylko wtedy, gdy odbije się od powierzchni. Podczas gdy wszystkie powierzchnie nie odbijają światła podczerwonego, tylko biała powierzchnia kolorowa może je całkowicie odbijać, a czarna powierzchnia całkowicie je obserwuje, jak pokazano na poniższym rysunku. Dowiedz się więcej o module czujnika podczerwieni tutaj.
Teraz użyjemy dwóch czujników podczerwieni, aby sprawdzić, czy robot porusza się po linii, i dwóch silników, aby skorygować robota, jeśli wyjdzie z toru. Silniki te wymagają dużego prądu i powinny być dwukierunkowe; dlatego używamy modułu sterownika silnika, takiego jak L293D. Będziemy również potrzebować urządzenia obliczeniowego, takiego jak Raspberry Pi, aby instruować silniki na podstawie wartości z czujnika podczerwieni. Uproszczony schemat blokowy tego samego pokazano poniżej.
Te dwa czujniki podczerwieni zostaną umieszczone po jednym z każdej strony linii. Jeśli żaden z czujników nie wykrywa czarnej linii, PI nakazuje silnikom ruch do przodu, jak pokazano poniżej
Jeśli lewy czujnik znajdzie się na czarnej linii, wówczas PI instruuje robota, aby skręcił w lewo, obracając tylko prawe koło.
Jeśli prawy czujnik znajdzie się na czarnej linii, wówczas PI instruuje robota, aby skręcił w prawo, obracając tylko lewe koło.
Jeśli oba czujniki pojawią się na czarnej linii, robot zatrzymuje się.
W ten sposób Robot będzie mógł podążać za linią bez wychodzenia z toru. Zobaczmy teraz, jak wygląda obwód i kod.
Schemat obwodu robota popychacza linii Raspberry Pi i wyjaśnienie:
Pełny schemat obwodu tego robota popychacza liniowego Raspberry Pi pokazano poniżej
Jak widać obwód składa się z dwóch czujników podczerwieni i pary silników podłączonych do Raspberry pi. Cały obwód jest zasilany przez mobilny bank energii (reprezentowany przez baterię AAA w obwodzie powyżej).
Ponieważ szczegóły pinów nie są wymienione w Raspberry Pi, musimy zweryfikować piny za pomocą poniższego obrazu
Jak pokazano na rysunku, pin w lewym górnym rogu PI jest pinem + 5V, używamy tego pinu + 5V do zasilania czujników IR, jak pokazano na schemacie obwodu (przewód czerwony). Następnie łączymy piny masowe z masą czujnika podczerwieni i modułu Motor Driver za pomocą czarnego przewodu. Żółty przewód służy do połączenia kołek wyjściowy czujnika 1 i 2 do kołków GPIO i 3, odpowiednio.
Do napędzania silników potrzebujemy czterech pinów (A, B, A, B). Te cztery piny są połączone odpowiednio z GPIO14,4,17 i 18. Pomarańczowy i biały przewód tworzą razem połączenie dla jednego silnika. Mamy więc dwie takie pary na dwa silniki.
Silniki są podłączone do modułu sterownika silnika L293D, jak pokazano na rysunku, a moduł sterownika jest zasilany z banku mocy. Upewnij się, że masa power banku jest połączona z masą Raspberry Pi, tylko wtedy Twoje połączenie będzie działać.
Programowanie twojego Raspberry PI:
Po zakończeniu montażu i połączeń robot powinien wyglądać mniej więcej tak.
WcześniejszeTeraz nadszedł czas, aby zaprogramować naszego bota i uruchomić go. Pełny kod tego bota można znaleźć na dole tego samouczka. Dowiedz się więcej o Programowaniu i uruchamianiu kodu w Raspberry Pi tutaj. Ważne kwestie wyjaśniono poniżej
Zamierzamy zaimportować plik GPIO z biblioteki, poniższa funkcja umożliwia zaprogramowanie pinów GPIO PI. Zmieniamy również nazwę „GPIO” na „IO”, więc w programie zawsze, gdy będziemy chcieli odwołać się do pinów GPIO, użyjemy słowa „IO”.
importuj RPi.GPIO jako IO
Czasami, gdy piny GPIO, których próbujemy użyć, mogą wykonywać inne funkcje. W takim przypadku podczas wykonywania programu będziemy otrzymywać ostrzeżenia. Poniższe polecenie mówi PI, aby zignorował ostrzeżenia i kontynuował program.
IO.setwarnings (fałszywe)
Możemy odnosić się do pinów GPIO PI, albo przez numer pinu na płycie, albo przez numer ich funkcji. Tak jak „PIN 29” na płycie to „GPIO5”. Więc mówimy tutaj albo będziemy reprezentować pinezkę jako „29” lub „5”.
IO.setmode (IO.BCM)
Ustawiamy 6 pinów jako piny wejścia / wyjścia. Pierwsze dwa piny to piny wejściowe do odczytu czujnika podczerwieni. Kolejne cztery to piny wyjściowe, z których dwa pierwsze służą do sterowania prawym silnikiem, a kolejne dwa do lewego.
IO.setup (2, IO.IN) #GPIO 2 -> Lewe wyjście IR IO.setup (3, IO.IN) #GPIO 3 -> Prawe wyjście IR IO.setup (4, IO.OUT) #GPIO 4 - > Silnik 1 zacisk A IO.setup (14, IO.OUT) #GPIO 14 -> Motor 1 zacisk B IO.setup (17, IO.OUT) #GPIO 17 -> Lewy zacisk silnika A IO.setup (18, IO..OUT) #GPIO 18 -> Silnik Lewy zacisk B
Czujnik podczerwieni wysyła „True”, jeśli znajduje się nad białą powierzchnią. Tak długo, jak oba czujniki wskazują True, możemy iść do przodu.
if (IO.input (2) == True i IO.input (3) == True): # oba białe idą do przodu IO.output (4, True) # 1A + IO.output (14, False) # 1B- IO.output (17, True) # 2A + IO.output (18, False) # 2B-
Musimy skręcić w prawo, jeśli pierwszy czujnik podczerwieni przekroczy czarną linię. Odbywa się to poprzez odczytanie czujnika podczerwieni i jeśli warunek jest spełniony, zatrzymujemy prawy silnik i obracamy sam lewy, jak pokazano na poniższym kodzie
elif (IO.input (2) == False i IO.input (3) == True): # skręć w prawo IO.output (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, True) # 2A + IO.output (18, False) # 2B-
Musimy skręcić w lewo, jeśli drugi czujnik podczerwieni znajdzie się nad czarną linią. Odbywa się to poprzez odczytanie czujnika podczerwieni i jeśli warunek jest spełniony, zatrzymujemy lewy silnik i obracamy sam prawy, jak pokazano na poniższym kodzie
elif (IO.input (2) == True i IO.input (3) == False): # skręć w lewo IO.output (4, True) # 1A + IO.output (14, False) # 1B- IO.output (17, Prawda) # 2A + IO.output (18, Prawda) # 2B-
Jeśli oba czujniki przekroczą czarną linię, oznacza to, że robot musi się zatrzymać. Można to zrobić, ustawiając oba zaciski silnika na prawdziwe, jak pokazano na poniższym kodzie
else: #stay still IO.output (4, True) # 1A + IO.output (14, True) # 1B- IO.output (17, True) # 2A + IO.output (18, True) # 2B-
Raspberry Pi Line Follower w akcji:
Prześlij kod Pythona dla obserwatora linii na swoje Raspberry Pi i uruchom go. Potrzebujemy przenośnego zasilacza, power bank w tym przypadku się przydaje, dlatego użyłem tego samego. Ten, którego używam, ma dwa porty USB, więc użyłem do zasilania PI, a drugiego do Power Motor Driver, jak pokazano na poniższym obrazku.
Teraz wszystko, co musisz zrobić, to skonfigurować własną czarną ścieżkę i zwolnić na niej swojego bota. Użyłem czarnej taśmy izolacyjnej do tworzenia toru. Możesz użyć dowolnego czarnego materiału, ale upewnij się, że kolor podłoża nie jest ciemny.
Pełne działanie bota można znaleźć na poniższym filmie. Mam nadzieję, że zrozumiałeś projekt i podobał Ci się jego projekt. Jeśli masz jakieś pytania, zamieść je w sekcji komentarzy poniżej.