2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
See projekt loodi, kuna olin huvitatud rohkem juhtimisalgoritmide tundmaõppimisest ja funktsionaalsete PID -ahelate tõhusast rakendamisest. Projekt on alles arendusfaasis, kuna Bluetooth -moodul on veel lisamata, mis võimaldab robotit juhtida Bluetooth -toega nutitelefonist.
Kasutatud N20 alalisvoolumootorid olid suhteliselt odavad ja seetõttu on neil märkimisväärne mäng. See toob kaasa väikese tõmbluse, kuna mootorid ületavad "lõtku", kuna see rakendab ratastele pöördemomenti. Seega on peaaegu võimatu saavutada täiesti sujuvat liikumist. Minu kirjutatud kood on suhteliselt lihtne, kuid demonstreerib tõhusalt PID -algoritmi võimalusi.
Projekti kokkuvõte:
Roboti šassii on 3D-trükitud, kasutades Ender 3 printerit ja see on mõeldud kokku pressimiseks.
Robotit juhib Arduino Uno, mis võtab MPU6050 andurite andmed ja juhib alalisvoolumootoreid välise mootoridraiveri kaudu. See töötab 7,4 V, 1500 mAh akuga. Mootorijuht reguleerib seda Arduino toiteks 5 V -ni ja toidab mootoreid 7,4 V -ga.
Tarkvara kirjutati nullist gitHubi raamatukogude Arduino-KalmanFilter-master ja Arduino-MPU6050-master abil.
Tarvikud:
- 3D trükitud osad
- Arduino UNO
- MPU6050 6-teljeline andur
- DC mootorijuht
- N20 DC mootorid (x2)
- 9V aku
Samm: robotite ehitamine
Trükkimine ja kokkupanek
Kogu konstruktsioon peaks olema pressitud, kuid komponentide kinnitamiseks olen kasutanud superliimi, et robot oleks tasakaalustamisel täiesti jäik.
Olen projekteerinud osad Fusion 360 -s ja optimeerinud iga osa ilma toeta printimiseks, et võimaldada rangemaid tolerantse ja puhtamat pinnaviimistlust.
Ender 3 printeris kasutati järgmisi sätteid: 0,16 mm kihi kõrgused ja kõigi osade täitmine 40%.
Samm: 3D -printimisrobot
Šassii (x1)
Vasak ratas (x2)
Vasak mootorikorpus (x2)
Arduino ümbris (x1)
3. samm: PID -i juhtimisalgoritm
Olen nullist kirjutanud PID-juhtimisalgoritmi, kasutades gitHubi raamatukogusid 'Arduino-KalmanFilter-master' ja 'Arduino-MPU6050-master'.
Algoritmi eeldus on järgmine:
- Lugege lähteandmeid MPU6050 -st
- Kasutage Kalmani filtrit, et analüüsida nii güroskoobi kui ka kiirendusmõõturi andmeid, et kõrvaldada güroskoobi näitude ebatäpsused anduri kiirenduse tõttu. See tagastab anduri sammu suhteliselt silutud väärtuse kraadides kahe kümnendkoha täpsusega.
- Arvutage E rror nurga all, st: nurk anduri ja seadepunkti vahel.
- Arvutage proportsionaalne viga järgmiselt (Proportsionaalsuse konstant x viga).
- Arvutage integraalviga (Integratsiooni konstant x viga) jooksva summana.
- Arvuta tuletusviga konstantsena kui [(diferentseerimiskonstant) x (vea muutus / aja muutus)]
- Summeerige kõik vead, et anda mootoritele saadetav kiiruse väljund.
- Arvutage veanurga märgi põhjal, millises suunas mootoreid pöörata.
- Tsükkel töötab lõputult ja põhineb väljundil, kuna sisend varieerub. See on tagasisideahel, mis kasutab väljundväärtusi uue sisendväärtusena järgmiseks iteratsiooniks.
Viimane samm on häälestada PID -ahela Kp, Ki & Kd parameetrid.
- Hea lähtepunkt on aeglaselt suurendada Kp -d, kuni robot võngub tasakaalupunkti ümber ja suudab kukkuda.
- Seejärel alustage Kd umbes 1% Kp väärtusest ja suurendage aeglaselt, kuni võnkumised kaovad ja robot libiseb tõrgeteta.
- Lõpuks alustage Ki -ga umbes 20% Kp -st ja muutke, kuni robot "ületab" seadepunkti, et aktiivselt kukkumist tabada ja naasta vertikaali.