Spisu treści:

Robot śledzący linię oparty na PID z macierzą czujników POLOLU QTR 8RC: 6 kroków (ze zdjęciami)
Robot śledzący linię oparty na PID z macierzą czujników POLOLU QTR 8RC: 6 kroków (ze zdjęciami)

Wideo: Robot śledzący linię oparty na PID z macierzą czujników POLOLU QTR 8RC: 6 kroków (ze zdjęciami)

Wideo: Robot śledzący linię oparty na PID z macierzą czujników POLOLU QTR 8RC: 6 kroków (ze zdjęciami)
Wideo: Line follower 2024, Lipiec
Anonim
Robot podążający za linią PID z macierzą czujników POLOLU QTR 8RC
Robot podążający za linią PID z macierzą czujników POLOLU QTR 8RC

Cześć!

to jest mój pierwszy artykuł na temat instrukcji, a dzisiaj zabiorę cię w drogę i wyjaśnię, jak zbudować linię opartą na PID, podążając za robotem, używając matrycy czujników QTR-8RC.

Zanim przejdziemy do budowy robota, musimy zrozumieć, co nazywa się PID,

Krok 1: Zasada działania

Co to jest PID?

Termin PID oznacza proporcjonalny, całkowy, pochodny. Więc po prostu, to, co robimy z PID z podążaniem za linią, polega na tym, że wydajemy robotowi polecenie, aby podążał za linią i wykrywał skręty poprzez obliczenie błędu, biorąc pod uwagę, w jaki sposób daleko zszedł z toru.

kluczowe terminy wymienione w dokumentach polalu

Wartość proporcjonalna jest w przybliżeniu proporcjonalna do pozycji robota względem linii. Oznacza to, że jeśli twój robot jest dokładnie wyśrodkowany na linii, oczekujemy proporcjonalnej wartości dokładnie 0

Wartość całkowita rejestruje historię ruchu robota: jest to suma wszystkich wartości składnika proporcjonalnego, które zostały zarejestrowane od momentu uruchomienia robota

Pochodną jest tempo zmiany wartości proporcjonalnej

W tym samouczku omówimy tylko terminy Kp i Kd, jednak wyniki można również uzyskać za pomocą terminu Ki. Odczyty, które otrzymujemy z czujnika, to nie tylko odczyty analogowe, ale także odczyty położenia robota Tak więc czujnik dostarcza wartości od 0 do 2500 w zakresie od maksymalnego do minimalnego odbicia, ale jednocześnie dostarcza również informacji o tym, jak daleko robot oddalił się od linii.)

Teraz musimy wziąć pod uwagę składnik błędu, Jest to różnica dwóch wartości, wartości zadanej i wartości bieżącej. wartość jest chwilowymi odczytami czujnika. Np.: Jeśli używasz tego czujnika matrycowego i używasz 8 czujników, otrzymasz pozycyjny odczyt 3500, jeśli jesteś na miejscu, około 0, jeśli jesteś zbyt daleko od linii i około 7000, jeśli masz zbyt rację.). Naszym celem jest wyzerowanie błędu. Tylko wtedy robot może płynnie podążać za linią.

Potem przychodzi część obliczeniowa,.

1) obliczyć błąd.

Błąd = wartość zadana - wartość bieżąca = 3500 - pozycja

Jak używam 8 czujników. czujnik daje odczyt położenia 3500, gdy robot jest idealnie umieszczony. Teraz, gdy obliczyliśmy nasz błąd, margines, o jaki nasz robot dryfuje po torze, nadszedł czas, abyśmy przyjrzeli się temu błędowi i odpowiednio dostosowali prędkość silnika

2) określić nastawione prędkości silników.

Prędkość silnika = Kp * Błąd + Kd * (Błąd - LastError);

ostatni błąd = błąd;

RightMotorSpeed = RightBaseSpeed + MotorSpeed;

LeftMotorSpeed = LeftBaseSpeed - Prędkość silnika;

Logicznie rzecz biorąc, błąd 0 oznacza, że nasz robot znajduje się w lewo, co oznacza, że nasz robot musi jechać nieco w prawo, co z kolei oznacza, że prawy silnik musi zwolnić, a lewy przyspieszyć. TO JEST PID!

Wartość MotorSpeed jest określana na podstawie samego równania. RightBaseSpeed i LeftBaseSpeed to prędkości (dowolna wartość PWM 0-255), przy których robot działa, gdy błąd wynosi zero.

W kodzie który załączyłem jest też jak sprawdzić wartości pozycyjne czujnika, dzięki czemu można otworzyć monitor szeregowy i wgrać kod i zobaczyć na własne oczy z kreską jak obracają się silniki przy zmianie pozycji.

Jeśli napotkasz kłopoty przy wdrażaniu swojego robota, po prostu sprawdź czy i zobacz, zmieniając znaki równań !!!

A teraz najtrudniejsza część ZNAJDOWANIE Kp I Kd, musiałem poświęcić ponad godzinę, aby idealnie dostroić mojego robota. Zamiast umieszczać losowe wartości, znalazłem łatwiejszą metodę, aby to ustalić.

  1. Zacznij od kp i Kd równych 0 i zacznij od Kp, najpierw spróbuj ustawić Kp na 1 i obserwuj robota, naszym celem jest podążanie za linią, nawet jeśli jest chwiejna, jeśli robot przekroczy i zgubi linię, zmniejsz wartość kp.jeśli robot nie może wykonać skrętu i jest powolny, zwiększ wartość Kp.
  2. Gdy robot wydaje się nieco podążać za linią, dostosuj wartość Kd (wartość Kd > wartość Kp) zacznij od 1 i zwiększaj wartość, aż zobaczysz płynną jazdę z mniejszym chybotaniem.
  3. Gdy robot zacznie podążać za linią, zwiększ prędkość i sprawdź, czy jest w stanie utrzymać i podążać za linią.

Należy pamiętać, że prędkość ma bezpośredni wpływ na strojenie PID i czasami może być konieczne ponowne dostrojenie, aby dopasować prędkość robota.

Teraz możemy zabrać się do budowy naszego robota.

Krok 2: Kompilacja

Kompilacja
Kompilacja
Kompilacja
Kompilacja
Kompilacja
Kompilacja

Arduino atmega 2560 z kablem USB – jest to główny używany mikrokontroler.

Podwozie- do podwozia robota użyłem 2 okrągłych płyt akrylowych, które są używane do innego projektu, który jest do tego idealny. Za pomocą nakrętek i śrub zbudowałem dwupiętrowe podwozie, dzięki czemu mogę przymocować inne moduły do górnej płyty.lub możesz użyć gotowego podwozia dostępnego.

www.ebay.com/itm/2WD-DIY-2-Wheel-Drive-Rou…

Motoreduktory mikrometalowe - robot potrzebował szybko obracających się silników, aby poradzić sobie z rutyną PID, do tego użyłem silników o napięciu 6V 400rpm i odpowiednich przyczepnych kół.

www.ebay.com/itm/12mm-6V-400RPM-Torque-Gea…

www.ebay.com/itm/HOT-N20-Micro-Gear-Motor-…

Tablica czujników QTR 8Rc – może być używana do śledzenia linii, jak wspomniano wcześniej, myślę, że masz teraz jasne zrozumienie, jak obsługiwać tablicę czujników z PID. kod jest bardzo prosty i korzystając z istniejących bibliotek arduino będziesz w stanie zbudować szybkiego zwolennika linii.

www.ebay.com/itm/Pololu-QTR-8RC-Reflectanc…

TB6612FNG Sterownik silnika-chciałem użyć sterownika silnika, który może obsługiwać skręty i zmieniać kierunek w mgnieniu oka, co jest w stanie skutecznie hamować silniki, gdy sygnał PWM jest niski.

www.ebay.com/itm/Pololu-Dual-DC-Motor-Driv…

Bateria Lipo - bateria lipo 11,1 V służy do zasilania robota. chociaż użyłem baterii lipo 11,1 V, ta pojemność jest większa niż potrzebna dla arduino i silników. jeśli możesz znaleźć lekki 7,4 V akumulator lipo lub akumulator 6V Ni-MH będzie idealny. Z tego powodu muszę użyć konwertera buck do zamiany napięcia na 6V.

11.1V-

7,4 V-

Moduł przetwornicy buck-

Oprócz tego potrzebne są przewody rozruchowe, nakrętki i śruby, śrubokręty i taśmy elektryczne, a także opaski zaciskowe, aby upewnić się, że wszystko jest na swoim miejscu.

Krok 3: Montaż

Złożenie
Złożenie
Złożenie
Złożenie
Złożenie
Złożenie
Złożenie
Złożenie

przymocuj silniki i małe kółko do płytki za pomocą nakrętek i śrub, a następnie zamontuj czujnik QTR, sterownik silnika, płytkę arduino i na koniec akumulator na podwoziu.

Oto idealny schemat, który znalazłem w internecie, który mówi, jak należy wykonać połączenia.

Krok 4: Zaprojektuj swój ślad liniowy

Zaprojektuj swoją linię ścieżkową
Zaprojektuj swoją linię ścieżkową

Teraz wydaje się, że twój projekt dobiega końca. Ponieważ na ostatnim etapie musisz mieć małą arenę, aby przetestować swojego robota. Użyłem losowej linii o szerokości 3 cm białej linii na czarnym tle. Upewnij się, że wszystko dobrze wkleiłeś. A na razie unikaj 90 stopniowych krzyżyków i przekrojów, bo to skomplikowana sprawa z punktu widzenia kodowania.

Krok 5: Zaprogramuj swój kod

1. Pobierz i zainstaluj Arduino

Środowisko IDE na komputer stacjonarny

· okna -

· Mac OS X -

· Linux -

2. Pobierz i wklej plik tablicy czujników QTR 8 RC do folderu bibliotek Arduino.

·

· Wklej pliki do ścieżki - C:\Arduino\libraries

3. Pobierz i otwórzLINEFOLLOWING.ino

4. Prześlij kod do płyty arduino za pomocą kabla USB

Krok 6: GOTOWE

Image
Image

teraz masz zrobioną przez siebie linię podążającą za robotem.

Mam nadzieję, że ten samouczek był pomocny. Nie wahaj się ze mną skontaktować za pośrednictwem [email protected], jeśli masz jakiś problem.

do zobaczenia z kolejnym nowym projektem.

Miłego budowania!!

Zalecana: