Spisu treści:
- Krok 1: Zmieniono lokalizację samouczka
- Krok 2: Zbuduj robota z napędem różnicowym SnappyXO
- Krok 3: Podłącz elektronikę
- Krok 4: Zainstaluj bibliotekę PreciseMovement Arduino
- Krok 5: Kod
- Krok 6: Jak to działa
Wideo: Robot SnappyXO Precise Mover: 6 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
Spraw, aby robot Arduino szedł prosto na określoną odległość lub skręcał pod określonym kątem, korzystając z biblioteki PreciseMovement Arduino.
Robot potrzebuje kółka samonastawnego lub jego odpowiednika, aby zminimalizować tarcie podczas skręcania.
www.pololu.com/product/954
Możesz powiedzieć robotowi, aby szedł do przodu na określoną odległość lub skręcał pod określonym kątem. Program określa swoją pozycję za pomocą martwego liczenia. Ponieważ oszacowania położenia opierają się tylko na prędkości koła, poślizg spowoduje znaczny błąd. Projektant robota powinien zachować ostrożność, aby zminimalizować ryzyko poślizgu.
Zostało to przetestowane pod kątem współpracy z robotem SnappyXO.
Krok 1: Zmieniono lokalizację samouczka
Samouczek został przeniesiony na poniższą stronę. Ten samouczek nie jest już obsługiwany.
sites.google.com/stonybrook.edu/premo
Krok 2: Zbuduj robota z napędem różnicowym SnappyXO
Biblioteka PreciseMovement, z której będziemy korzystać, jest kompatybilna tylko z robotami z napędem różnicowym. Możesz wybrać inne roboty z napędem na 2 koła.
Krok 3: Podłącz elektronikę
Dla standardowego enkodera optycznego SnappyXO:
D0 (wyjście enkodera) -> Pin cyfrowy Arduino
VCC -> Arduino 5V
GND -> GND
Moc silnika i Arduino:
Źródło zasilania silnika powinno być odpowiednie dla używanych silników. W zestawie SnappyXO do zasilania silnika używane są baterie 4AA, a do zasilania Arduino bateria 9V. Upewnij się, że wszystkie mają wspólny GND.
Krok 4: Zainstaluj bibliotekę PreciseMovement Arduino
Pobierać:
github.com/jaean123/PreciseMovement-library/releases
Jak zainstalować bibliotekę Arduino:
wiki.seeedstudio.com/How_to_install_Arduino_Library/
Krok 5: Kod
Kod Arduino:
create.arduino.cc/editor/whileloop/7a35299d-4e73-409d-9f39-2c517b3000d5/podgląd
Te parametry wymagają korekty. Inne parametry oznaczone jako zalecane w kodzie można dostosować w celu uzyskania lepszej wydajności.
- Sprawdź i ustaw kołki silnika pod kołkami ARDUINO.
-
Ustaw DŁUGOŚĆ i PROMIEŃ.
- DŁUGOŚĆ to odległość od lewego do prawego koła.
- PROMIEŃ to promień koła.
-
Ustaw PULSES_PER_REV, czyli liczbę impulsów wysyłanych przez enkoder na jeden obrót koła.
- Należy zauważyć, że różni się to od liczby impulsów, które wysyła enkoder na jeden obrót wału silnika, chyba że enkodery są podłączone do odczytu bezpośrednio z wału koła.
- PULSES_PER_REV = (impulsy na jeden obrót wału silnika) x (przełożenie)
-
Ustaw STOP_LENGTH, jeśli widzisz, że robot przelatuje po ruchu do przodu.
Robot zatrzyma się, gdy szacowana pozycja będzie oddalona o STOP_LENGTH od celu. Zatem STOP_LENGTH jest przybliżoną odległością wymaganą do zatrzymania się robota
-
Parametry PID
KP_FW: Jest to proporcjonalna składowa ruchu do przodu. Zwiększaj to, aż robot będzie szedł prosto. Jeśli nie możesz sprawić, by wszystko poszło prosto, dostrajając to, prawdopodobnie wadliwy jest sprzęt. (np. niewspółosiowość kół itp.)
KP_TW: Jest to proporcjonalna składowa ruchu skręcającego PID. Po prostu zacznij od niskiej wartości i zwiększaj ją, aż prędkość skręcania lub prędkość kątowa robota podczas skręcania będzie wystarczająco duża, ale nie spowoduje przeregulowania. Aby wykonać obserwacje, możesz ustawić robota naprzemiennie od 0 do 90 iz powrotem, wstawiając następujące elementy w funkcji pętli
Umieść to w pętli, aby dostroić KP_FW:
mover.forward(99999);
Umieść to w pętli, aby zmienić od 0 do 90, aby dostroić KP_TW:
mover.twist(90); // Skręt 90 CW
opóźnienie (2000);
mover.twist(-90) // Twist 90 CCW
opóźnienie (2000);
Należy zauważyć, że aby faktycznie skręcić prędkość kątową w TARGET_TWIST_OMEGA, KI_TW również musi być dostrojone, ponieważ regulator proporcjonalny nigdy nie ustawi się dokładnie na docelowym. Jednak nie jest konieczne skręcanie z dokładnie taką prędkością kątową. Prędkość kątowa musi być po prostu wystarczająco mała.
Krok 6: Jak to działa
Jeśli jesteś ciekawy, jak to działa, czytaj dalej.
Ruch do przodu jest utrzymywany prosto przy użyciu czystego algorytmu pościgu na ścieżce prostej. Więcej o Pure Pursuit:
Regulator skrętu PID próbuje utrzymać prędkość kątową skrętu na poziomie TARGET_TWIST_OMEGA. Zauważ, że ta prędkość kątowa jest prędkością kątową całego robota, a nie kół. Używany jest tylko jeden regulator PID, a wyjściem jest prędkość zapisu PWM zarówno lewego, jak i prawego silnika. Obliczenie martwe odbywa się w celu obliczenia kąta. Gdy kąt osiągnie próg błędu, robot zatrzymuje się.
Zalecana:
Arduino - Robot rozwiązujący labirynt (MicroMouse) Robot podążający za ścianą: 6 kroków (ze zdjęciami)
Arduino | Robot rozwiązujący labirynt (MicroMouse) Robot podążający za ścianą: Witam Jestem Isaac i to jest mój pierwszy robot „Striker v1.0”. Ten robot został zaprojektowany do rozwiązywania prostego labiryntu. W konkursie mieliśmy dwa labirynty i robota był w stanie je zidentyfikować. Wszelkie inne zmiany w labiryncie mogą wymagać zmiany w
PAPER HUNGRY ROBOT - Pringles Recycle Arduino Robot: 19 kroków (ze zdjęciami)
PAPER HUNGRY ROBOT - Pringles Recycle Arduino Robot: To kolejna wersja Hungry Robot, którą zbudowałem w 2018 roku. Możesz zrobić tego robota bez drukarki 3d. Wystarczy kupić puszkę Pringles, serwomotor, czujnik zbliżeniowy, arduino i kilka narzędzi. Możesz pobrać wszystkie
Robot sterowany RC na XLR8! Robot edukacyjny: 5 kroków
Robot sterowany RC na XLR8! Robot edukacyjny: Cześć, w tym artykule pokażę, jak zbudować podstawowego robota. Słowo „Robot” dosłownie oznacza „niewolnika”; lub „Robotnik”. Dzięki postępom w sztucznej inteligencji roboty nie są już tylko częścią Sci-Fi Issaca Asimova
Joy Robot (Robô Da Alegria) - Open Source 3D Printed, Arduino Powered Robot!: 18 kroków (ze zdjęciami)
Joy Robot (Robô Da Alegria) – Open Source 3D Printed, Arduino Powered Robot!: Pierwsza nagroda w konkursie Instructables Wheels Contest, druga nagroda w Instructables Arduino Contest i drugie miejsce w konkursie Design for Kids Challenge. Dziękujemy wszystkim, którzy na nas głosowali!!!Roboty są wszędzie. Od zastosowań przemysłowych po u
Robot wyważający / Robot 3-kołowy / Robot STEM: 8 kroków
Robot wyważający / Robot 3-kołowy / Robot STEM: Zbudowaliśmy kombinację robota wyważającego i robota 3-kołowego do użytku w szkołach i pozaszkolnych programach edukacyjnych. Robot oparty jest na Arduino Uno, niestandardowej osłonie (wszystkie szczegóły konstrukcyjne są dostępne), akumulatorze Li Ion (wszystkie kon