Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
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!!