Robotyka i druk 3D

Line follower – jak działa robot podążający za linią i jak go zbudować

Spis treści
Line follower – jak działa robot podążający za linią i jak go zbudować

Robot line follower to autonomiczny pojazd, który wykrywa linię na podłożu i podąża za nią dzięki czujnikom oraz układowi sterowania opartemu na sprzężeniu zwrotnym. To doskonały projekt dla miłośników elektroniki, ponieważ łączy mechanikę, programowanie mikrokontrolerów i podstawy automatyki.

Czym jest robot line follower?

Robot podążający za linią, nazywany również line followerem, to niewielki pojazd autonomiczny. Rozpoznaje wyznaczoną trasę — najczęściej czarną linię na białym tle — i porusza się wzdłuż niej bez udziału człowieka.

Robot korzysta z dwóch lub większej liczby czujników skierowanych w stronę podłoża. Rozpoznają one linię na podstawie ilości odbitego światła lub wykrytego koloru. Mikrokontroler analizuje odczyty i odpowiednio reguluje prędkość lewego oraz prawego silnika, aby utrzymać pojazd na trasie.

Typowy tor powstaje z czarnej taśmy umieszczonej na białej powierzchni, ale kontrast można odwrócić. Robot może podążać za białą linią na ciemnym tle, jeśli logika odczytu czujników zostanie odpowiednio skonfigurowana.

Zasada działania – sprzężenie zwrotne

Działanie robota line follower opiera się na pętli sprzężenia zwrotnego: czujniki mierzą położenie linii, mikrokontroler przetwarza dane, a silniki korygują kierunek jazdy.

Cykl pracy robota obejmuje trzy podstawowe etapy:

  1. Pomiar – czujniki, najczęściej działające w podczerwieni, mierzą ilość światła odbitego od podłoża i określają, czy znajdują się nad linią, czy nad tłem;
  2. Przetwarzanie – mikrokontroler, na przykład Arduino lub ESP32, odczytuje wartości, porównuje je z ustalonymi progami i wyznacza błąd położenia;
  3. Sterowanie – mikrokontroler zmienia prędkość silników na podstawie obliczonego błędu, dzięki czemu robot wraca na wyznaczoną trasę.

Gdy robot zbacza z toru, sterownik zmniejsza prędkość jednego silnika lub zwiększa prędkość drugiego. Różnica prędkości obrotowej kół powoduje skręt i umożliwia szybki powrót na linię.

Czujniki linii – serce robota

Czujniki odbiciowe na podczerwień

Najczęściej stosuje się odbiciowe czujniki podczerwieni. Każdy z nich zawiera diodę IR pełniącą funkcję nadajnika oraz fototranzystor lub fotodiodę działającą jako odbiornik. Dioda oświetla podłoże, a odbiornik mierzy ilość odbitego promieniowania.

Jasna powierzchnia odbija więcej światła podczerwonego, natomiast ciemna linia pochłania jego większą część. W zależności od konstrukcji modułu białe podłoże może powodować niski stan logiczny, a czarna linia — stan wysoki. W innych czujnikach zależność może być odwrotna, dlatego należy sprawdzić dokumentację lub przeprowadzić prosty test.

Czujniki mogą pracować pojedynczo, w parach albo w listwach składających się na przykład z 5 lub 8 elementów. Większa liczba punktów pomiarowych pozwala precyzyjniej określić położenie linii względem środka robota.

Rozmieszczenie czujników

Czujniki kieruje się w dół i montuje blisko podłoża, zwykle na wysokości około 5 mm. Takie ustawienie zapewnia stabilniejszy odczyt i ogranicza wpływ oświetlenia zewnętrznego.

W prostych konstrukcjach stosuje się dwa czujniki rozmieszczone tak, aby linia znajdowała się między nimi. Ich rozstaw powinien być większy niż szerokość linii, dzięki czemu każdy czujnik kontroluje jedną stronę toru.

Listwa z kilkoma czujnikami zapewnia dokładniejszy pomiar położenia linii i umożliwia zastosowanie regulatora P lub PID.

Projekt mechaniczny – podwozie i napęd

Podwozie i układ kół

Najpopularniejsza konfiguracja obejmuje dwa koła napędzane oraz jedno kółko podporowe zamontowane z przodu lub z tyłu. Taki układ upraszcza sterowanie, ponieważ do wykonywania skrętów wystarczy zmieniać prędkość lewego i prawego silnika.

Dobre podwozie powinno spełniać następujące wymagania:

  • Niewielka masa – konstrukcja z tworzywa sztucznego, sklejki lub pleksi pozwala zastosować mniejsze silniki i lżejszy akumulator;
  • Odpowiednia sztywność – odległość czujników od podłoża nie powinna zmieniać się podczas jazdy;
  • Niski profil – ogranicza kołysanie pojazdu i ułatwia utrzymanie czujników blisko nawierzchni.

Rozmieszczenie czujników i środka ciężkości

Czujniki umieszcza się zwykle z przodu robota, nieco przed osią kół. Dzięki temu wcześniej wykrywają zakręty i dają sterownikowi więcej czasu na wykonanie korekty.

Środek ciężkości powinien znajdować się możliwie nisko i pomiędzy kołami. Takie rozmieszczenie poprawia przyczepność oraz ogranicza kołysanie podczas przyspieszania, hamowania i gwałtownych zmian kierunku.

Elektronika robota line follower

Typowy robot line follower składa się z mikrokontrolera, czujników linii, mostka H, silników prądu stałego oraz układu zasilania. Właściwe dopasowanie tych elementów wpływa na dokładność sterowania, osiąganą prędkość i niezawodność całej konstrukcji.

Mikrokontroler

W prostych projektach często stosuje się Arduino UNO lub kompatybilny moduł. Platforma jest łatwa w obsłudze, dobrze udokumentowana i oferuje wiele gotowych bibliotek oraz przykładów.

Alternatywą jest ESP32, który zapewnia większą moc obliczeniową oraz dodatkowe funkcje, takie jak Wi-Fi i Bluetooth. Może być dobrym wyborem, jeśli robot ma przesyłać dane, umożliwiać bezprzewodową zmianę parametrów albo korzystać z bardziej zaawansowanych algorytmów.

Mikrokontroler odczytuje sygnały analogowe lub cyfrowe z czujników, oblicza błąd położenia linii i generuje sygnały sterujące dla silników. Do regulacji ich prędkości najczęściej wykorzystuje się modulację PWM.

Czujniki linii i ich podłączenie

Czujnik odbiciowy można podłączyć do wejścia analogowego lub cyfrowego. Wejście analogowe pozwala mierzyć napięcie proporcjonalne do ilości odbitego światła, co zapewnia więcej informacji i ułatwia precyzyjne obliczenie położenia linii.

W przypadku wejścia cyfrowego komparator porównuje sygnał z ustawionym progiem i zwraca stan 0 lub 1. Takie rozwiązanie jest prostsze, ale nie pokazuje, jak duża jest różnica pomiędzy aktualnym odczytem a wartością graniczną.

Przykładowa konstrukcja może wykorzystywać listwę z 5 czujnikami IR. Odczyty są porównywane z progiem zapisanym w programie, na przykład jako BLACK_LINE_THRESHOLD, aby określić, które czujniki znajdują się nad linią.

Sterownik silników, czyli mostek H

Silników prądu stałego nie należy zasilać bezpośrednio z wyjść mikrokontrolera, ponieważ wymagają znacznie większego prądu. Do sterowania kierunkiem obrotów i prędkością stosuje się mostek H.

Popularny moduł L298N umożliwia sterowanie dwoma silnikami za pomocą sygnałów logicznych i PWM, ale ma stosunkowo duże straty mocy. Nowocześniejszy DRV8833 jest mniejszy, sprawniejszy i zwykle lepiej sprawdza się w lekkich robotach zasilanych z akumulatora.

Mikrokontroler przekazuje do mostka sygnały określające kierunek obrotów oraz wypełnienie PWM, które wpływa na średnie napięcie i prędkość silników.

Zasilanie

Robot line follower może być zasilany pakietem Li-Po, akumulatorem NiMH lub ogniwami AA. Napięcie dla mikrokontrolera i czujników należy ustabilizować do poziomu 5 V albo 3,3 V, zależnie od wymagań zastosowanych podzespołów.

Należy zadbać o odpowiednie filtrowanie zasilania oraz wspólną masę wszystkich układów. W miarę możliwości warto rozdzielić linie zasilające silniki i elektronikę sterującą, aby zakłócenia generowane przez napęd nie powodowały błędnych odczytów ani restartów mikrokontrolera.

Proste algorytmy sterowania – dwa czujniki

W najprostszej wersji robot korzysta z dwóch czujników rozmieszczonych po obu stronach linii. Algorytm oparty na instrukcjach warunkowych może działać następująco:

  • Żaden czujnik nie wykrywa linii – robot jedzie prosto;
  • Lewy czujnik wykrywa linię – robot wykonuje korektę w lewo;
  • Prawy czujnik wykrywa linię – robot wykonuje korektę w prawo.

Dokładny kierunek korekty zależy od rozmieszczenia czujników, sposobu podłączenia silników oraz od tego, czy czujniki wykrywają linię, czy tło. Przed zwiększeniem prędkości należy sprawdzić reakcję robota przy każdym możliwym stanie wejść.

Sterowanie z wieloma czujnikami – regulator P/PID

Bardziej zaawansowane konstrukcje wykorzystują listwy zawierające od 5 do 8 czujników IR. Pozwala to dokładnie określić położenie linii względem środka robota i zastosować regulator proporcjonalny lub PID.

Obliczanie położenia linii

W typowej implementacji każdy czujnik otrzymuje wagę, na przykład −2, −1, 0, 1 i 2. Pozycję linii oblicza się na podstawie średniej ważonej sygnałów ze wszystkich aktywnych czujników.

Otrzymany wynik pozwala wyznaczyć błąd, czyli różnicę między środkiem robota a aktualnym położeniem linii. Regulator wykorzystuje tę wartość do ustalenia prędkości obu silników.

Regulator P

Regulator P, czyli regulator proporcjonalny, steruje różnicą prędkości silników zależnie od wielkości błędu.

Im większe odchylenie od linii, tym większa powinna być różnica prędkości lewego i prawego silnika. Przy niewielkim błędzie robot delikatnie koryguje tor, a przy dużym wykonuje mocniejszy skręt.

Regulator PID

Rozwinięciem regulatora P jest regulator PID. Jego działanie opiera się na trzech składnikach:

  • Część proporcjonalna – reaguje na aktualną wartość błędu;
  • Część całkująca – uwzględnia historię błędu i pomaga usuwać trwałe odchylenie;
  • Część różniczkująca – reaguje na szybkość zmian błędu i ogranicza oscylacje.

Prawidłowo dostrojony regulator PID zapewnia płynniejszą jazdę, ogranicza oscylacje wokół linii i pozwala zwiększyć prędkość bez utraty stabilności.

Przykładowa konstrukcja robota line follower z Arduino

Poniższy projekt przedstawia uproszczoną konstrukcję robota line follower opartego na Arduino UNO.

1. Lista podstawowych elementów

Do budowy robota potrzebne są następujące podzespoły:

  • Mikrokontroler – Arduino UNO lub kompatybilny moduł;
  • Czujniki linii – 2 lub 5 odbiciowych czujników IR;
  • Sterownik silników – moduł z mostkiem H, na przykład L298N lub DRV8833;
  • Napęd – 2 silniki prądu stałego z przekładniami i kołami;
  • Podwozie – gotowa platforma lub konstrukcja z tworzywa, sklejki albo pleksi;
  • Podpora – kółko podporowe lub ślizg;
  • Zasilanie – pakiet Li-Po, akumulator NiMH lub koszyk na baterie ze stabilizatorem napięcia;
  • Elementy montażowe – przewody, płytka prototypowa, śruby oraz dystanse.

2. Montaż mechaniczny

Montaż podwozia warto przeprowadzić w następującej kolejności:

  1. Montaż napędu – zamocuj silniki z kołami po lewej i prawej stronie podwozia, dbając o równoległość osi i symetryczne rozmieszczenie;
  2. Montaż podpory – zainstaluj kółko podporowe z przodu lub z tyłu, aby robot stabilnie opierał się na trzech punktach;
  3. Montaż elektroniki – przykręć płytkę Arduino w pobliżu środka podwozia i zabezpiecz ją przed uderzeniami oraz zwarciem;
  4. Montaż czujników – umieść listwę z przodu robota, skieruj ją ku podłożu i ustaw na wysokości kilku milimetrów.

3. Połączenia elektryczne

Po zamontowaniu podzespołów wykonaj połączenia elektryczne:

  1. Podłączenie czujników – połącz ich wyjścia z wejściami analogowymi lub cyfrowymi Arduino, zależnie od rodzaju modułu;
  2. Podłączenie sterownika – połącz wejścia mostka H z wyjściami cyfrowymi Arduino, w tym z pinami obsługującymi PWM;
  3. Podłączenie silników – połącz silniki z wyjściami mostka, a jego wejście zasilające z pakietem akumulatorów;
  4. Stabilizacja napięcia – zapewnij mikrokontrolerowi i czujnikom napięcie zgodne z wymaganiami producenta;
  5. Połączenie mas – połącz masy mikrokontrolera, czujników, sterownika silników i źródła zasilania.

Oprogramowanie – przykładowy algorytm

Struktura programu

Program sterujący robotem line follower powinien obejmować następujące etapy:

  1. Inicjalizacja portów – konfiguracja wejść czujników oraz wyjść sterujących silnikami;
  2. Kalibracja czujników – pomiar wartości nad linią i tłem oraz wyznaczenie progów rozpoznawania;
  3. Pętla główna – cykliczny odczyt czujników, obliczanie błędu i aktualizacja prędkości silników.

Prosty algorytm dla dwóch czujników

W wersji z dwoma czujnikami program może realizować następującą logikę:

  • Żaden czujnik nie wykrywa linii – jedź prosto z ustawioną prędkością bazową;
  • Lewy czujnik wykrywa linię – zmień prędkości silników, aby wykonać korektę w lewo;
  • Prawy czujnik wykrywa linię – zmień prędkości silników, aby wykonać korektę w prawo.

W praktyce trzeba sprawdzić, czy reakcje odpowiadają rozmieszczeniu czujników i sposobowi podłączenia silników. Jeśli robot skręca w niewłaściwą stronę, należy zmienić logikę programu lub skorygować połączenia napędu.

Algorytm z regulatorem P dla wielu czujników

Dla listwy z 5 czujnikami algorytm może wykonywać następujące operacje:

  1. Odczyt sygnałów – pobierz wartości ze wszystkich czujników analogowych;
  2. Wykrywanie linii – porównaj odczyty z progiem, na przykład BLACK_LINE_THRESHOLD;
  3. Obliczenie pozycji – wyznacz położenie linii jako średnią ważoną, wykorzystując wagi −2, −1, 0, 1 i 2;
  4. Obliczenie błędu – określ różnicę między pozycją linii a środkiem robota;
  5. Korekta prędkości – zastosuj człon P i wyznacz nowe prędkości lewego oraz prawego silnika.

Przy dużym błędzie robot wykonuje mocny skręt, natomiast przy niewielkim odchyleniu delikatnie koryguje tor. Takie sterowanie zapewnia płynniejszą jazdę zarówno na prostych odcinkach, jak i na zakrętach.

Kalibracja i uruchomienie robota

Kalibracja czujników

Kalibracja polega na zmierzeniu sygnałów czujników nad linią oraz nad tłem, a następnie wyznaczeniu progów rozpoznawania. Najpierw należy zapisać odczyty dla jasnej nawierzchni, a później powtórzyć pomiar nad czarną linią.

Na podstawie zebranych danych można wyznaczyć próg znajdujący się w połowie zakresu pomiędzy wartością dla linii i tła. W bardziej zaawansowanej wersji każdy czujnik może mieć osobne wartości minimalne, maksymalne i progowe.

Kalibrację należy powtórzyć po zmianie nawierzchni, oświetlenia, wysokości listwy pomiarowej lub rodzaju trasy.

Testy na prostej linii i zakrętach

Pierwszy test najlepiej przeprowadzić na prostej linii i przy niewielkiej prędkości. Należy sprawdzić, czy robot utrzymuje się na torze i nie wykonuje gwałtownych oscylacji.

Następnie można dodać zakręty o różnych promieniach i stopniowo zwiększać prędkość. W razie potrzeby należy dostroić wzmocnienie regulatora, progi czujników oraz bazową prędkość silników.

Typowe problemy i ich rozwiązania

1. Robot gubi linię na zakrętach

Przyczyną może być zbyt mała liczba czujników, nieodpowiedni rozstaw listwy pomiarowej albo nadmierna prędkość. Pomóc może zwiększenie liczby czujników, przesunięcie ich przed oś kół, zmniejszenie prędkości oraz ponowne dostrojenie regulatora P lub PID.

2. Niestabilne odczyty czujników

Zakłócenia mogą wynikać ze światła zewnętrznego, zbyt dużej odległości od nawierzchni lub nierównego podłoża. Warto obniżyć listwę, osłonić czujniki przed bocznym światłem i ponownie przeprowadzić kalibrację.

3. Zakłócenia generowane przez silniki

Silniki prądu stałego mogą wprowadzać zakłócenia do układu zasilania, powodując błędne odczyty lub restarty mikrokontrolera. Rozwiązaniem jest zastosowanie kondensatorów przy silnikach, filtrowanie napięcia oraz rozdzielenie linii zasilających napęd i elektronikę sterującą.

4. Zbyt wolna lub zbyt szybka jazda

Zbyt mała prędkość może powodować szarpanie, natomiast przy zbyt dużej układ sterowania może nie nadążać z wykonywaniem korekt. Prędkość bazową i parametry regulatora należy dobierać stopniowo, rozpoczynając od bezpiecznych, niewielkich wartości.

Rozszerzenia i dalszy rozwój

Po uruchomieniu podstawowej wersji robota można rozbudować konstrukcję o dodatkowe funkcje:

  • Enkodery na kołach – umożliwiają pomiar prędkości i przebytej drogi oraz zastosowanie dokładniejszego sterowania;
  • Dynamiczna regulacja prędkości – pozwala przyspieszać na prostych odcinkach i zwalniać przed zakrętami;
  • Komunikacja bezprzewodowa – Bluetooth lub Wi-Fi umożliwiają podgląd odczytów i zdalne dostrajanie parametrów;
  • Rejestrowanie danych – zapis błędu położenia i sygnałów sterujących ułatwia analizę zachowania robota;
  • Optymalizacja do zawodów – zmniejszenie masy, poprawa przyczepności i dostrojenie regulatora pozwalają osiągać większe prędkości.