Indholdsfortegnelse:
Video: Selvbalancerende robot - PID -kontrolalgoritme: 3 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:25
Dette projekt blev udtænkt, fordi jeg var interesseret i at lære mere om kontrolalgoritmer og hvordan man effektivt implementerer funktionelle PID -sløjfer. Projektet er stadig i udviklingsfasen, da der endnu ikke skal tilføjes et Bluetooth -modul, som giver mulighed for kontrol over robotten fra en Bluetooth -aktiveret smartphone.
De anvendte N20 DC -motorer var relativt billige og har derfor et betydeligt spil i dem. Dette fører til et lille ryk, da motorerne overvinder 'slakken', da det påfører drejningsmoment på hjulene. Derfor er det næsten umuligt at opnå perfekt jævn bevægelse. Koden, jeg har skrevet, er rimelig enkel, men demonstrerer effektivt PID -algoritmens muligheder.
Projektoversigt:
Robotens chassis er 3D-printet ved hjælp af en Ender 3-printer og er designet til at trykke sammen.
Robotten styres af en Arduino Uno, der tager sensordata fra MPU6050 og styrer DC -motorerne gennem en ekstern motordriver. Det kører på et 7,4V, 1500mAh batteri. Motorføreren regulerer dette til 5V for at drive Arduino og leverer 7,4V til motorerne.
Softwaren blev skrevet fra bunden ved hjælp af bibliotekerne 'Arduino-KalmanFilter-master' og 'Arduino-MPU6050-master' fra gitHub.
Tilbehør:
- 3D -trykte dele
- Arduino UNO
- MPU6050 6-akset sensor
- D. C motor driver
- N20 DC motorer (x2)
- 9V batteri
Trin 1: Robotbygning
Print og samling
Hele konstruktionen skal være pressefit, men jeg har brugt superlim til at sikre komponenterne for at sikre, at robotten er helt stiv, når den balancerer.
Jeg har designet delene i Fusion 360 og har optimeret hver del til at udskrive uden understøtninger for at muliggøre strammere tolerancer og en renere overfladefinish.
Indstillinger, der blev brugt på Ender 3 -printeren var: 0,16 mm laghøjder @ 40% fyldning for alle dele.
Trin 2: 3D Print Robot
Chassis (x1)
Venstre hjul (x2)
Venstre motorhus (x2)
Arduino etui (x1)
Trin 3: PID -kontrolalgoritme
Jeg har skrevet en PID-kontrolalgoritme fra bunden ved hjælp af bibliotekerne 'Arduino-KalmanFilter-master' og 'Arduino-MPU6050-master' fra gitHub.
Forudsætningen for algoritmen er som følger:
- Læs rådata fra MPU6050
- Brug Kalman -filter til at analysere data fra både gyroskop og accelerometer for at annullere unøjagtigheder i gyroskopaflæsninger på grund af acceleration af sensoren. Dette returnerer en relativt udjævnet værdi for sensorens tonehøjde i grader til to decimaler.
- Beregn Error i vinklen, dvs.: Vinklen mellem sensoren og setpunktet.
- Beregn proportionalfejl som (konstant af proportionalitet x fejl).
- Beregn integralfejl som driftssummen for (konstant af integration x fejl).
- Beregn afledt fejl som konstant som [(differentieringskonstant) x (ændring i fejl / ændring i tid)]
- Sum alle fejl for at give den hastighedsoutput, der skal sendes til motorer.
- Beregn hvilken retning motorerne skal drejes baseret på tegn på fejlvinklen.
- Sløjfen kører på ubestemt tid og bygger på output, da input varierer. Det er en feedback loop, der bruger output værdierne som de nye input værdier for den næste iteration.
Det sidste trin er at Tune PID loop Kp, Ki & Kd parametre.
- Et godt udgangspunkt er langsomt at øge Kp, indtil robotten oscillerer omkring balancepunktet og kan fange et fald.
- Start derefter Kd med omkring 1% af værdien af Kp og øg langsomt, indtil svingningerne forsvinder, og robotten glider jævnt, når den skubbes.
- Start til sidst med Ki omkring 20% af Kp og varier, indtil robotten "overskyder" setpunktet for aktivt at fange et fald og vende tilbage til lodret.
Anbefalede:
Selvbalancerende robot fra Magicbit: 6 trin
Self Balancing Robot From Magicbit: Denne vejledning viser, hvordan man laver en selvbalancerende robot ved hjælp af Magicbit dev board. Vi bruger magicbit som udviklingstavle i dette projekt, der er baseret på ESP32. Derfor kan enhver ESP32 udviklingsplade bruges i dette projekt
To-hjulet selvbalancerende robot: 7 trin
To-hjulet selvbalancerende robot: Denne instruerbare vil gå igennem design- og byggeprocessen for en selvbalancerende robot. Som en bemærkning vil jeg bare sige, at selvbalancerende robotter ikke er et nyt koncept, og at de er blevet bygget og dokumenteret af andre. Jeg vil gerne bruge denne mulighed
HeadBot-en selvbalancerende robot til STEM-læring og opsøgende: 7 trin (med billeder)
HeadBot-en selvbalancerende robot til STEM-læring og opsøgende: Headbot-en to-fods høj, selvbalancerende robot-er hjernebarn af South Eugene Robotics Team (SERT, FRC 2521), et konkurrencedygtigt high school-robotteam i FØRSTE Robotics Competition, fra Eugene, Oregon. Denne populære opsøgende robot gør re
Sådan opretter du en fjernstyret 3D-printet selvbalancerende robot: 9 trin (med billeder)
Sådan opretter du en fjernstyret 3D-printet selvbalancerende robot: Dette er en udvikling af den tidligere version af B-robot. 100% ÅBEN KILDE / Arduino robot. KODEN, 3D -dele og elektronik er åbne, så du er velkommen til at ændre den eller oprette en enorm version af robotten. Hvis du er i tvivl, ideer eller har brug for hjælp, skal du
Oprettelse af en fjernstyret Arduino selvbalancerende robot: B-robot EVO: 8 trin
Oprettelse af en fjernstyret Arduino selvbalancerende robot: B-robot EVO: ------------------------------------ -------------- UPDATE: der er en ny og forbedret version af denne robot her: B-robotten EVO, med nye funktioner! ------------ -------------------------------------- Hvordan fungerer det? B-ROBOT EVO er eksternt styring