Spisu treści:
- Krok 1: Zasada działania
- Krok 2: Kompilacja
- Krok 3: Montaż
- Krok 4: Zaprojektuj swój ślad liniowy
- Krok 5: Zaprogramuj swój kod
- Krok 6: GOTOWE
Wideo: Robot śledzący linię oparty na PID z macierzą czujników POLOLU QTR 8RC: 6 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:32
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ć.
- 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.
- 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.
- 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
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ż
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
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
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:
Zaawansowany robot śledzący linię: 7 kroków
Zaawansowany robot podążający za linią: Jest to robot podążający za linią z kilkoma dodatkowymi funkcjami. Ten prototyp może być używany wewnątrz fabryki do bezobsługowego przemieszczania materiału. Istnieją dwie stacje Stacja załadunku Stacja rozładunku Stacja załadunku Robot będzie czekał na Materia
Robot śledzący kolor oparty na kole dookólnym i OpenCV: 6 kroków
Robot śledzący kolor oparty na kole wielokierunkowym i OpenCV: do realizacji śledzenia kolorów używam podwozia z kołem wielokierunkowym i używam oprogramowania mobilnego o nazwie OpenCVBot. Dzięki twórcom oprogramowania, dziękuję. OpenCV Bot faktycznie wykrywa lub śledzi dowolny obiekt w czasie rzeczywistym za pomocą przetwarzania obrazu
Generator muzyki oparty na pogodzie (generator Midi oparty na ESP8266): 4 kroki (ze zdjęciami)
Generator muzyki oparty na pogodzie (Generator Midi oparty na ESP8266): Cześć, dzisiaj wyjaśnię, jak zrobić własny mały generator muzyki oparty na pogodzie. Jest oparty na ESP8266, który jest trochę jak Arduino i reaguje na temperaturę, deszcz i intensywność światła.Nie oczekuj, że sprawi, że całe utwory lub akordy będą pro
Robot śledzący linię z PIC18F: 7 kroków
Robot Line Follower Z PIC18F: RACE LINKI stworzył robota Line Follower na mój kurs z mikrokontrolerem na uniwersytecie. Zrobiłem więc tego podstawowego robota podążającego za linią za pomocą Pica 18f2520 i użyłem kompilatora PIC CCS. Istnieje wiele projektów line follower w Internecie z ardunio
Robot autonomiczny Wallace - część 4 - dodanie czujników odległości na podczerwień i czujników „wzmacniacza”: 6 kroków
Robot autonomiczny Wallace – część 4 – Dodaj czujniki odległości na podczerwień i czujniki „wzmacniacza”: Witam, dzisiaj rozpoczynamy kolejny etap ulepszania możliwości Wallace'a. W szczególności staramy się poprawić jego zdolność wykrywania i omijania przeszkód za pomocą czujników odległości na podczerwień, a także wykorzystać możliwości kontrolera silnika Roboclaw