Cuprins:
- Pasul 1: Locația tutorialului a fost modificată
- Pasul 2: Construiți robotul de acționare diferențială SnappyXO
- Pasul 3: Conectați dispozitivele electronice
- Pasul 4: Instalați biblioteca PreciseMovement Arduino
- Pasul 5: Cod
- Pasul 6: Cum funcționează
Video: Robotul SnappyXO Precise Mover: 6 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Faceți robotul dvs. Arduino să meargă drept pe o distanță specificată sau răsuciți-l într-un unghi specificat utilizând biblioteca PreciseMovement Arduino.
Robotul are nevoie de o ruletă cu bilă sau echivalent pentru a minimiza fricțiunea în timpul răsucirii.
www.pololu.com/product/954
Puteți spune robotului să meargă înainte la o distanță specificată sau să se răsucească la un unghi specificat. Programul își determină poziția folosind calculul mort. Deoarece estimările poziției se bazează doar pe viteza roții, alunecarea va induce o eroare considerabilă. Proiectantul robotului trebuie să fie atent pentru a minimiza riscul de alunecare.
Acest lucru a fost testat pentru a funcționa cu robotul SnappyXO.
Pasul 1: Locația tutorialului a fost modificată
Tutorialul a fost mutat pe pagina de mai jos. Acest tutorial nu mai este menținut.
sites.google.com/stonybrook.edu/premo
Pasul 2: Construiți robotul de acționare diferențială SnappyXO
Biblioteca PreciseMovement pe care o vom folosi este compatibilă numai cu roboții cu acționare diferențială. Puteți alege să folosiți alți roboți cu 2 roți cu tracțiune.
Pasul 3: Conectați dispozitivele electronice
Pentru codificatorul optic SnappyXO standard:
D0 (ieșire codificator) -> Pin digital Arduino
VCC -> Arduino 5V
GND -> GND
Putere motor și Arduino:
Sursa de alimentare a motorului trebuie să fie adecvată pentru motoarele pe care le utilizați. Pentru kitul SnappyXO, bateriile 4AA sunt utilizate pentru puterea motorului și bateria de 9V pentru puterea Arduino. Asigurați-vă că toate au un GND comun.
Pasul 4: Instalați biblioteca PreciseMovement Arduino
Descarca:
github.com/jaean123/PreciseMovement-library/releases
Cum se instalează Arduino Library:
wiki.seeedstudio.com/How_to_install_Arduino_Library/
Pasul 5: Cod
Cod Arduino:
create.arduino.cc/editor/whileloop/7a35299d-4e73-409d-9f39-2c517b3000d5/preview
Acești parametri necesită ajustare. Alți parametri etichetați recomandați pe cod pot fi reglați pentru o performanță mai bună.
- Verificați și setați pinii motorului sub PIN-urile ARDUINO.
-
Setați LUNGIME și RAZĂ.
- LUNGIME este distanța de la roata stângă la roata dreaptă.
- RADIUS este raza roții.
-
Setați PULSES_PER_REV, care este numărul de impulsuri pe care le scoate codificatorul pentru o rotație a roții.
- Rețineți că acest lucru este diferit de numărul de impulsuri pe care le produce ieșirea codificatorului pentru o rotație a arborelui motorului, cu excepția cazului în care codificatoarele sunt conectate pentru a fi citite direct din arborele roții.
- PULSES_PER_REV = (impulsuri pe o rotație a arborelui motorului) x (raport de transmisie)
-
Setați STOP_LENGTH dacă vedeți că robotul depășește după mișcarea înainte.
Robotul se va opri odată ce poziția estimată este STOP_LENGTH distanță de țintă. Astfel, STOP_LENGTH, este distanța aproximativă necesară pentru ca robotul să se oprească
-
Parametrii PID
KP_FW: Aceasta este componenta proporțională a mișcării înainte. Măriți acest lucru până când robotul merge drept. Dacă nu reușiți să treacă direct prin reglarea acestui lucru, atunci hardware-ul este probabil vinovat. (de ex. nealinierea roților etc.)
KP_TW: Aceasta este componenta proporțională a mișcării de răsucire PID. Pur și simplu începeți de la o valoare mică și creșteți-o până când viteza de răsucire sau viteza unghiulară a robotului în timpul răsucirii este suficient de rapidă, dar nu provoacă depășiri. Pentru a face observații, puteți avea robotul alternativ de la 0 la 90 și înapoi, inserând următoarele în funcția de buclă
Plasați acest lucru în buclă pentru a regla KP_FW:
mover.forward (99999);
Plasați acest lucru în buclă pentru a alterna de la 0 la 90 pentru a regla KP_TW:
mover.twist (90); // Twist 90 CW
întârziere (2000);
mover.twist (-90) // Twist 90 CCW
întârziere (2000);
Rețineți că, pentru a răsuci efectiv viteza unghiulară la TARGET_TWIST_OMEGA, KI_TW trebuie, de asemenea, acordat, deoarece un controler proporțional nu se va așeza niciodată la ținta exactă. Cu toate acestea, nu este necesar să se răsucească la acea viteză unghiulară exactă. Viteza unghiulară trebuie doar să fie suficient de lentă.
Pasul 6: Cum funcționează
Dacă sunteți curios despre modul în care funcționează citiți mai departe.
Mișcarea înainte este menținută drept folosind algoritmul de urmărire pură pe o linie dreaptă. Mai multe despre Pure Pursuit:
Controlerul PID de răsucire încearcă să mențină viteza unghiulară de răsucire la TARGET_TWIST_OMEGA. Rețineți că această viteză unghiulară este viteza unghiulară a întregului robot, nu roțile. Se utilizează un singur controler PID, iar ieșirea este viteza de scriere PWM atât a motoarelor din stânga, cât și din cea dreaptă. Calculul mort se face pentru a calcula unghiul. Odată ce unghiul atinge pragul de eroare, robotul se oprește.
Recomandat:
Robotul Brazo: 28 de pași
Brazo Robot: Descriere a muncii prezentului document se pretinde dar claritate despre brazo robotic și a funcțiilor sale care să faciliteze deplasarea în 3 planuri (x, y, z,) printr-o interfață creadă pentru un Arduino și PC-ul care permite
Robotul care evită obstacolele folosind Arduino Nano: 5 pași
Robot care evită robotul folosind Arduino Nano: În acest instructiv, voi descrie cum puteți face un robot care să evite obstacolele folosind Arduino
Robotul de telepresență al circuitelor Snap: 9 pași
Robot de telepresență Snap Circuits: Vacanțele în 2020 sunt puțin diferite. Familia mea este răspândită în toată țara și, din cauza pandemiei, nu putem să ne adunăm împreună pentru sărbători. Am vrut o modalitate de a-i face pe bunicii să se simtă incluși în sărbătoarea noastră de Ziua Recunoștinței. Un teleprese
Robotul Knight Rider Lunchbox: 8 pași (cu imagini)
Robotul Knight Rider Lunchbox: Ok, nu vorbește, nu este negru și nu are AI. Dar are acele LED-uri roșii fantezie în față. Construiesc un robot controlabil WiFi care constă dintr-un Raspberry Pi cu adaptor WiFi și un Arduino Uno. Puteți introduce SSH în Raspberry Pi și
Robotul cu unt: robotul Arduino cu criză existențială: 6 pași (cu imagini)
Robotul cu unt: robotul Arduino cu criză existențială: Acest proiect se bazează pe seria animată „Rick și Morty”. Într-unul dintre episoade, Rick face un robot al cărui singur scop este să aducă unt. În calitate de studenți de la Bruface (Facultatea de Inginerie din Bruxelles) avem o sarcină pentru meca