INHOUDSOPGAWE:
Video: Selfbalanserende robot - PID -beheeralgoritme: 3 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:23
Hierdie projek is bedink omdat ek belangstel om meer te wete te kom oor beheeralgoritmes en hoe om funksionele PID -lusse effektief te implementeer. Die projek is nog in die ontwikkelingsfase, aangesien 'n Bluetooth -module nog nie bygevoeg moet word nie, wat beheer oor die robot moontlik maak vanaf 'n Bluetooth -slimfoon.
Die N20 DC -motors wat gebruik is, was relatief goedkoop en bevat dus 'n aansienlike mate van spel. Dit lei tot 'n klein ruk as die motors die 'slack' oorkom, aangesien dit wringkrag op die wiele toedien. Daarom is dit byna onmoontlik om perfek gladde beweging te verkry. Die kode wat ek geskryf het, is redelik eenvoudig, maar toon effektief die vermoëns van die PID -algoritme aan.
Projekopsomming:
Die onderstel van die robot is 3D-gedruk met 'n Ender 3-drukker en is ontwerp om saam te druk.
Die robot word beheer deur 'n Arduino Uno wat sensordata van die MPU6050 neem en die GS -motors deur 'n eksterne motorbestuurder beheer. Dit werk met 'n 7.4V, 1500mAh battery. Die motorbestuurder reguleer dit na 5V om die Arduino van krag te voorsien en lewer 7,4V aan die motors.
Die sagteware is van nuuts af geskryf met behulp van die biblioteke 'Arduino-KalmanFilter-master' en 'Arduino-MPU6050-master' van gitHub.
Benodighede:
- 3D -gedrukte onderdele
- Arduino UNO
- MPU6050 6-as sensor
- D. C motorbestuurder
- N20 DC motore (x2)
- 9V battery
Stap 1: Robotbou
Druk en monteer
Die hele konstruksie moet pers pas, maar ek het superlijm gebruik om die komponente vas te maak om te verseker dat die robot heeltemal styf is tydens die balansering.
Ek het die onderdele in Fusion 360 ontwerp en elke onderdeel geoptimaliseer om te druk sonder steun om strenger toleransies en 'n skoner oppervlakafwerking moontlik te maak.
Die instellings wat op Ender 3 -drukker gebruik is, was: 0,16 mm laaghoogtes @ 40% invul vir alle dele.
Stap 2: 3D -afdrukrobot
Onderstel (x1)
Linkerwiel (x2)
Motorhuis links (x2)
Arduino -tas (x1)
Stap 3: PID -beheeralgoritme
Ek het 'n PID-beheeralgoritme van nuuts af geskryf met behulp van die 'Arduino-KalmanFilter-master' en 'Arduino-MPU6050-master' biblioteke van gitHub.
Die uitgangspunt van die algoritme is soos volg:
- Lees rou data van MPU6050
- Gebruik Kalman -filter om data van beide die gyroscoop en die versnellingsmeter te ontleed om onakkuraathede in die gyroscooplesings te kanselleer as gevolg van die versnelling van die sensor. Dit gee 'n relatief gladde waarde vir die toonhoogte van die sensor in grade tot twee desimale plekke terug.
- Bereken die Error in die hoek, dit wil sê: die hoek tussen die sensor en die setpoint.
- Bereken proporsionele fout as (konstante proporsionaliteit x fout).
- Bereken die integrale fout as die som van (Konstant van integrasie x fout).
- Bereken afgeleide fout as konstant as [(differensiasie konstante) x (verandering in fout / verandering in tyd)]
- Som alle foute op om die snelheidsuitset wat na motors gestuur moet word, te gee.
- Bereken watter rigting motors moet draai op grond van die teken van die fouthoek.
- Die lus sal onbepaald loop en voortbou op die uitset namate die insette wissel. Dit is 'n terugvoerlus, wat die uitsetwaardes gebruik as die nuwe insetwaardes vir die volgende iterasie.
Die laaste stap is om die parameters van die PID -lus Kp, Ki & Kd af te stem.
- 'N Goeie beginpunt is om Kp stadig te verhoog totdat die robot om die balanspunt ossilleer en kan val.
- Begin dan Kd teen ongeveer 1% van die waarde van Kp en verhoog stadig totdat die ossillasies verdwyn en die robot glad gly as dit gestoot word.
- Begin laastens met Ki ongeveer 20% van Kp en wissel totdat die robot die setpoint "oorskiet" om aktief te val en terug te keer na vertikaal.
Aanbeveel:
Selfbalanserende robot van Magicbit: 6 stappe
Selfbalanserende robot van Magicbit: Hierdie tutoriaal wys hoe u 'n selfbalanserende robot kan maak met behulp van Magicbit dev -bord. Ons gebruik magicbit as die ontwikkelingsbord in hierdie projek wat op ESP32 gebaseer is. Daarom kan enige ESP32 -ontwikkelingsbord in hierdie projek gebruik word
HeadBot-'n selfbalanserende robot vir STEM-leer en uitreik: 7 stappe (met foto's)
HeadBot-'n selfbalanserende robot vir STEM-leer en uitreik: Headbot-'n selfbalanserende robot van twee voet lank-is die geesteskind van die South Eugene Robotics Team (SERT, FRC 2521), 'n mededingende robotskoolspan in die EERSTE Robotics Competition, van Eugene, Oregon. Hierdie gewilde uitreikrobot maak
Hoe om 'n op afstand beheerde 3D-gedrukte selfbalanserende robot te maak: 9 stappe (met foto's)
Hoe om 'n op afstand beheerde 3D-gedrukte selfbalanserende robot te skep: Dit is 'n evolusie van die vorige weergawe van B-robot. 100% OOP BRON / Arduino -robot. Die KODE, 3D -onderdele en elektronika is oop, so verander dit gerus of skep 'n groot weergawe van die robot. As u twyfel, idees het of hulp nodig het, maak
Die skep van 'n op afstand beheerde Arduino-selfbalanserende robot: B-robot EVO: 8 stappe
Die skep van 'n op afstand beheerde Arduino-selfbalanserende robot: B-robot EVO: ------------------------------------ -------------- UPDATE: daar is 'n nuwe en verbeterde weergawe van hierdie robot hier: die B-robot EVO, met nuwe funksies! ------------ -------------------------------------- Hoe werk dit? B-ROBOT EVO is op afstand beheer
Selfbalanserende robot: 6 stappe (met foto's)
Selfbalanserende robot: In hierdie instruksies sal ons u wys hoe u die selfbalanserende robot wat ons as 'n skoolprojek gemaak het, kan bou. Dit is gebaseer op 'n paar ander robotte, soos die nBot en 'n ander Instructable. Die robot kan beheer word vanaf 'n Android -slimfoon