Satura rādītājs:
Video: Pašbalansējošs robots - PID kontroles algoritms: 3 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:51
Šis projekts tika iecerēts, jo man bija interese uzzināt vairāk par vadības algoritmiem un to, kā efektīvi ieviest funkcionālās PID cilpas. Projekts vēl ir izstrādes stadijā, jo vēl nav jāpievieno Bluetooth modulis, kas ļaus kontrolēt robotu no viedtālruņa ar Bluetooth.
Izmantotie N20 līdzstrāvas motori bija salīdzinoši lēti, un līdz ar to tiem ir ievērojama spēle. Tas noved pie neliela raustīšanās, jo motori pārvar “atslābumu”, jo riteņiem tiek piemērots griezes moments. Līdz ar to ir gandrīz neiespējami sasniegt pilnīgi vienmērīgu kustību. Manis uzrakstītais kods ir samērā vienkāršs, taču efektīvi parāda PID algoritma iespējas.
Projekta kopsavilkums:
Robota šasija ir izdrukāta 3D formātā, izmantojot Ender 3 printeri, un tā ir veidota tā, lai to varētu saspiest kopā.
Robotu kontrolē Arduino Uno, kas ņem sensoru datus no MPU6050 un kontrolē līdzstrāvas motorus, izmantojot ārēju motora draiveri. Tas darbojas ar 7,4 V, 1500 mAh akumulatoru. Motora vadītājs to noregulē līdz 5 V, lai darbinātu Arduino, un piegādā motoriem 7,4 V.
Programmatūra tika uzrakstīta no jauna, izmantojot gitHub bibliotēkas “Arduino-KalmanFilter-master” un “Arduino-MPU6050-master”.
Piegādes:
- 3D drukātas detaļas
- Arduino UNO
- MPU6050 6 asu sensors
- DC motora vadītājs
- N20 DC motori (x2)
- 9V akumulators
1. darbība: robota izveide
Drukāšana un montāža
Visai konstrukcijai jābūt piespiežamai, bet es esmu izmantojis superlīmi, lai nostiprinātu detaļas, lai robots būtu pilnīgi stingrs balansēšanas laikā.
Es esmu izstrādājis detaļas Fusion 360 un optimizējis katru daļu drukāšanai bez balstiem, lai nodrošinātu stingrākas pielaides un tīrāku virsmas apdari.
Ender 3 printerim tika izmantoti šādi iestatījumi: 0,16 mm slāņa augstums @ 40% aizpildījums visām detaļām.
2. darbība: 3D drukas robots
Šasija (x1)
Kreisais ritenis (x2)
Kreisais motora korpuss (x2)
Arduino futrālis (x1)
3. darbība: PID kontroles algoritms
Esmu uzrakstījis PID kontroles algoritmu no nulles, izmantojot bibliotēkas “Arduino-KalmanFilter-master” un “Arduino-MPU6050-master” no gitHub.
Algoritma pieņēmums ir šāds:
- Lasiet neapstrādātus datus no MPU6050
- Izmantojiet Kalmana filtru, lai analizētu gan žiroskopa, gan akselerometra datus, lai novērstu žiroskopa rādījumu neprecizitātes sensora paātrinājuma dēļ. Tādējādi tiek atgriezta relatīvi izlīdzināta sensora piķa vērtība grādos līdz divām zīmēm aiz komata.
- Aprēķiniet E kļūdu leņķī, ti: leņķi starp sensoru un iestatīto vērtību.
- Aprēķiniet proporcionālo kļūdu kā (proporcionalitātes konstante x kļūda).
- Aprēķiniet integrālo kļūdu kā darbības summu (integrācijas konstante x kļūda).
- Aprēķiniet atvasinājuma kļūdu kā konstantu kā [(diferenciācijas konstante) x (kļūdas izmaiņas / laika izmaiņas)]
- Summējiet visas kļūdas, lai dotu motoram nosūtāmo apgriezienu skaitu.
- Aprēķiniet motoru pagriešanas virzienu, pamatojoties uz kļūdas leņķa zīmi.
- Cilpa darbosies bezgalīgi un balstīsies uz izvadi, jo ievade mainās. Tā ir atgriezeniskā saite, kurā izvades vērtības tiek izmantotas kā jaunās ievades vērtības nākamajai iterācijai.
Pēdējais solis ir noregulēt PID cilpas Kp, Ki & Kd parametrus.
- Labs sākumpunkts ir lēnām palielināt Kp, līdz robots svārstās ap līdzsvara punktu un var panākt kritienu.
- Pēc tam sāciet Kd ar aptuveni 1% Kp vērtības un lēnām palieliniet, līdz svārstības pazūd un robots vienmērīgi slīd, kad tas tiek stumts.
- Visbeidzot, sāciet ar Ki aptuveni 20% no Kp un mainiet, līdz robots "pārsniedz" noteikto vērtību, lai aktīvi noķertu kritienu un atgrieztos vertikālā stāvoklī.
Ieteicams:
Pašbalansējošs robots no Magicbit: 6 soļi
Pašbalansējošais robots no Magicbit: šī apmācība parāda, kā izveidot pašbalansējošu robotu, izmantojot Magicbit dev dēli. Šajā projektā, kura pamatā ir ESP32, mēs izmantojam magicbit. Tāpēc šajā projektā var izmantot jebkuru ESP32 izstrādes plati
HeadBot-pašbalansējošs robots STEM mācībām un informēšanai: 7 soļi (ar attēliem)
HeadBot-pašsabalansējošs robots STEM mācībām un informēšanai: Headbot-divu pēdu garš, pašbalansējošs robots-ir Dienvidjūdžijas Robotikas komandas (SERT, FRC 2521), pirmkārt, konkurētspējīgas vidusskolas robotikas komandas ideja. Robotikas sacensības, no Jevgeņija, Oregona. Šis populārais robots palīdz
ELEKTRONISKĀ ĀTRUMA KONTROLES (ESC) KONTROLES SIGNĀLA ĢENERATORA ALTERNATĪVA: 7 soļi
ELEKTRONISKĀ ĀTRUMA KONTROLES (ESC) KONTROLES SIGNĀLA ĢENERATORA ALTERNATĪVS: Pirms kāda laika savā YouTube kanālā publicēju videoklipu (https://www.youtube.com/watch?v=-4sblF1GY1E), kurā parādīju, kā izveidot vēja turbīnu. no birstes līdzstrāvas motora. Es izveidoju video spāņu valodā, un tas paskaidroja, ka šis dzinējs tika nodots
Līdzsvarojošais robots / 3 riteņu robots / STEM robots: 8 soļi
Līdzsvarojošais robots / trīs riteņu robots / STEM robots: mēs esam izveidojuši kombinētu balansēšanas un trīsriteņu robotu, kas paredzēts lietošanai skolās un pēc skolas izglītības programmās. Robota pamatā ir Arduino Uno, pielāgots vairogs (visas konstrukcijas detaļas ir iekļautas), litija jonu akumulators (viss atbilst
Pašbalansējošs robots: 6 soļi (ar attēliem)
Pašbalansējošs robots: šajā pamācībā mēs parādīsim, kā izveidot pašbalansējošo robotu, ko izgatavojām kā skolas projektu. Tā pamatā ir daži citi roboti, piemēram, nBot un cits Instructable. Robotu var vadīt no Android viedtālruņa