Përmbajtje:
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-13 06:58
Bëjeni robotin tuaj Arduino të shkojë drejt për një distancë të caktuar ose ktheni në një kënd të caktuar duke përdorur bibliotekën PreciseMovement Arduino.
Robotit i duhet një rrotull topi i rrotullueshëm ose ekuivalent për të minimizuar fërkimin gjatë kthesës.
www.pololu.com/product/954
Ju mund t'i thoni robotit të shkojë përpara në një distancë të caktuar ose të rrotullohet në një kënd të caktuar. Programi përcakton pozicionin e tij duke përdorur llogaritjen e vdekur. Meqenëse vlerësimet e pozicionit mbështeten vetëm në shpejtësinë e rrotës, rrëshqitja do të shkaktojë gabime të konsiderueshme. Projektuesi i robotit duhet të jetë i kujdesshëm për të minimizuar rrezikun e rrëshqitjes.
Kjo është testuar për të punuar me robotin SnappyXO.
Hapi 1: Vendndodhja e mësimit u ndryshua
Udhëzimi është zhvendosur në faqen më poshtë. Ky tutorial nuk mirëmbahet më.
sites.google.com/stonybrook.edu/premo
Hapi 2: Ndërtoni Robotin Diferencial të SnappyXO Drive
Biblioteka PreciseMovement që do të përdorim është e pajtueshme vetëm me robotët e diferencialeve. Ju mund të zgjidhni të përdorni robotë të tjerë me dy rrota.
Hapi 3: Lidhni Elektronikën
Për kodifikuesin optik standard SnappyXO:
D0 (dalja e kodifikuesit) -> Pin Arduino dixhital
VCC -> Arduino 5V
GND -> GND
Motor dhe Arduino Power:
Burimi i energjisë së motorit duhet të jetë i përshtatshëm për motorët që përdorni. Për kompletin SnappyXO, bateritë 4AA përdoren për fuqinë e motorit dhe baterinë 9V për fuqinë Arduino. Sigurohuni që të gjithë kanë një GND të përbashkët.
Hapi 4: Instaloni Bibliotekën PreciseMovement Arduino
Shkarko:
github.com/jaean123/PreciseMovement-library/releases
Si të instaloni Bibliotekën Arduino:
wiki.seeedstudio.com/How_to_install_Arduino_Library/
Hapi 5: Kodi
Kodi Arduino:
create.arduino.cc/editor/hileloop/7a35299d-4e73-409d-9f39-2c517b3000d5/preview
Këta parametra kërkojnë rregullim. Parametrat e tjerë të etiketuar të rekomanduar në kod mund të rregullohen për performancë më të mirë.
- Kontrolloni dhe vendosni kunjat e motorit nën kunjat ARDUINO.
-
Vendosni LENGTH dhe RADIUS.
- LENGTH është distanca nga rrota e majtë në timonin e djathtë.
- RADIUS është rrezja e rrotës.
-
Vendosni PULSES_PER_REV, që është numri i pulseve që daljet e koduesit për një rrotullim të një rrote.
- Vini re se kjo është e ndryshme nga numri i pulseve që daljet e koduesit për një rrotullim të boshtit të motorit, përveç nëse koduesit janë të lidhur për të lexuar drejtpërdrejt nga boshti i rrotës.
- PULSES_PER_REV = (pulsimet për një rrotullim të boshtit të motorit) x (raporti i ingranazheve)
-
Vendosni STOP_LENGTH nëse shihni që roboti po tejkalon lëvizjen përpara.
Roboti do të ndalet sapo pozicioni i vlerësuar të jetë STOP_LENGTH larg objektivit. Kështu, STOP_LENGTH, është distanca e përafërt e kërkuar që roboti të ndalet
-
Parametrat PID
KP_FW: Ky është komponenti proporcional i lëvizjes përpara. Rriteni këtë derisa roboti të shkojë drejt. Nëse nuk mund ta bëni atë të shkojë direkt duke e rregulluar këtë, atëherë hardueri ka të ngjarë të jetë në faj. (p.sh. shtrirja e gabuar e rrotave, etj)
KP_TW: Ky është komponenti proporcional i PID -it të lëvizjes së përdredhur. Thjesht filloni nga një vlerë e ulët dhe rriteni këtë derisa shpejtësia e kthesës, ose shpejtësia këndore e robotit gjatë kthesës, të jetë mjaft e shpejtë, por nuk shkakton tejkalim. Për të bërë vëzhgime, mund ta keni robotin alternativ nga 0 në 90 dhe mbrapa duke futur sa vijon në funksionin e lakut
Vendoseni këtë në lak për të akorduar KP_FW:
lëvizës.para (99999);
Vendoseni këtë në lak për të alternuar nga 0 në 90 për të akorduar KP_TW:
lëvizës.dredhur (90); // Kthesë 90 CW
vonesa (2000);
lëvizës.twist (-90) // Twist 90 CCW
vonesa (2000);
Vini re se në mënyrë që të ktheni shpejtësinë këndore në TARGET_TWIST_OMEGA, KI_TW gjithashtu duhet të akordohet pasi një kontrollues proporcional nuk do të vendoset kurrë në objektivin e saktë. Sidoqoftë, nuk është e nevojshme të ktheni në atë shpejtësi saktësisht këndore. Shpejtësia këndore thjesht duhet të jetë mjaft e ngadaltë.
Hapi 6: Si funksionon
Nëse jeni kurioz se si funksionon, lexoni.
Lëvizja përpara mbahet drejt duke përdorur algoritmin e pastër të ndjekjes në një rrugë të drejtë. Më shumë në Pursuit Pure:
Kontrolluesi PID i kthesës përpiqet të mbajë shpejtësinë këndore të kthesës në TARGET_TWIST_OMEGA. Vini re se kjo shpejtësi këndore është shpejtësia këndore e të gjithë robotit jo e rrotave. Përdoret vetëm një kontrollues PID dhe dalja është shpejtësia e shkrimit PWM e motorëve të majtë dhe të djathtë. Llogaritja e vdekur bëhet për të llogaritur këndin. Pasi këndi arrin pragun e gabimit, roboti ndalon.