Sadržaj:
Video: Samobalansirajući robot - PID kontrolni algoritam: 3 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:32
Ovaj je projekt zamišljen jer me zanimalo saznati više o upravljačkim algoritmima i kako učinkovito implementirati funkcionalne PID petlje. Projekt je još uvijek u fazi razvoja jer se Bluetooth modul tek treba dodati što će omogućiti kontrolu nad robotom s pametnog telefona s omogućenim Bluetoothom.
Korišteni istosmjerni motori N20 bili su relativno jeftini i stoga imaju znatnu količinu igre. To dovodi do male količine trzanja jer motori prevladavaju "popuštanje" jer primjenjuje okretni moment na kotače. Stoga je gotovo nemoguće postići savršeno glatko kretanje. Kod koji sam napisao razumno je jednostavan, ali učinkovito pokazuje sposobnosti PID algoritma.
Sažetak projekta:
Podvozje robota 3D je tiskano pomoću pisača Ender 3 i dizajnirano je za međusobno uklapanje.
Robotom upravlja Arduino Uno koji uzima senzorske podatke iz MPU6050 i kontrolira istosmjerne motore putem vanjskog upravljačkog programa motora. Radi na 7,4V, 1500mAh bateriji. Vozač motora to regulira na 5V za napajanje Arduina i napaja 7.4V motore.
Softver je napisan od nule uz pomoć biblioteka 'Arduino-KalmanFilter-master' i 'Arduino-MPU6050-master' iz gitHub-a.
Pribor:
- 3D ispisani dijelovi
- Arduino UNO
- MPU6050 6-osni osjetnik
- DC vozač motora
- N20 DC motori (x2)
- 9V baterija
Korak 1: Izrada robota
Ispis i montaža
Cijela konstrukcija trebala bi biti uklopljena pritiskom, ali koristio sam super ljepilo za pričvršćivanje komponenti kako bi robot bio potpuno čvrst pri balansiranju.
Dizajnirao sam dijelove u Fusion 360 i optimizirao svaki dio za ispis bez nosača kako bi se omogućila stroža odstupanja i čistija površina.
Postavke korištene na pisaču Ender 3 bile su: 0,16 mm visine slojeva @ 40% ispune za sve dijelove.
Korak 2: Robot za 3D ispis
Šasija (x1)
Lijevi kotač (x2)
Lijevo kućište motora (x2)
Arduino kućište (x1)
Korak 3: Algoritam PID kontrole
Napisao sam PID kontrolni algoritam od nule koristeći biblioteke 'Arduino-KalmanFilter-master' i 'Arduino-MPU6050-master' iz gitHub-a.
Pretpostavka Algoritma je sljedeća:
- Očitajte neobrađene podatke s MPU6050
- Upotrijebite Kalmanov filter za analizu podataka i sa žiroskopa i sa akcelerometra kako biste poništili netočnosti u očitanjima žiroskopa zbog ubrzanja senzora. Time se vraća relativno zaglađena vrijednost koraka senzora u stupnjevima na dvije decimale.
- Izračunajte grešku u kutu, tj.: kut između senzora i zadane vrijednosti.
- Izračunajte proporcionalnu pogrešku kao (Konstanta proporcionalnosti x pogreška).
- Izračunajte integralnu pogrešku kao tekući zbroj (konstanta integracije x pogreška).
- Izračunaj pogrešku izvedenice kao konstantu kao [(Diferencijalna konstanta) x (Promjena pogreške / Promjena vremena)]
- Zbrojite sve pogreške kako biste dobili izlaznu brzinu koja se šalje motorima.
- Izračunajte smjer okretanja motora na temelju predznaka kuta pogreške.
- Petlja će raditi neograničeno dugo i nadograđivati se na izlazu kako ulaz varira. To je povratna sprega, koja koristi izlazne vrijednosti kao nove ulazne vrijednosti za sljedeću iteraciju.
Posljednji korak je podešavanje parametara Kp, Ki & Kd PID petlje.
- Dobro polazište je polako povećavati Kp sve dok robot ne oscilira oko točke ravnoteže i ne uhvati pad.
- Zatim pokrenite Kd na oko 1% vrijednosti Kp i polako povećavajte dok oscilacije ne nestanu i robot glatko klizi kad se pritisne.
- Konačno, počnite s Ki oko 20% Kp i mijenjajte se sve dok robot "ne prekorači" zadanu vrijednost kako bi aktivno uhvatio pad i vratio se u okomicu.
Preporučeni:
Samobalansirajući robot iz Magicbita: 6 koraka
Samobalansirajući robot iz Magicbita: Ovaj vodič prikazuje kako napraviti samo balansirajućeg robota pomoću Magicbit dev ploče. Koristimo magicbit kao razvojnu ploču u ovom projektu koji se temelji na ESP32. Stoga se u ovom projektu može koristiti bilo koja razvojna ploča ESP32
Samobalansirajući robot na dva kotača: 7 koraka
Samobalansirajući robot s dva kotača: Ovaj instruktor će proći kroz proces projektiranja i izgradnje samobalansirajućeg robota. Kao napomenu, samo želim reći da samo uravnotežujući roboti nisu novi koncept i da su ih drugi izgradili i dokumentirali. Želim iskoristiti ovu priliku
Kordični algoritam pomoću VHDL -a: 4 koraka
Kordikalni algoritam pomoću VHDL -a: ## Ovo je najpopularnija i najpopularnija veza u Googleu za VHDL implementaciju CORDIC ALGORITHM -a za generiranje sinusnog i kosinusnog vala ## Trenutno postoje mnogi hardverski učinkoviti algoritmi, ali oni nisu dobro poznati zbog dominacija softwarea
HeadBot-samobalansirajući robot za STEM učenje i Outreach: 7 koraka (sa slikama)
HeadBot-samobalansirajući robot za učenje i informiranje o STEM-u: Headbot-dva metra visok, samobalansirajući robot-zamisao je tima South Eugene Robotics Team (SERT, FRC 2521), konkurentnog srednjoškolskog tima za robotiku u PRVOM Robotics Competition, iz Eugenea, Oregon. Ovaj popularni terenski robot čini
Samobalansirajući robot: 6 koraka (sa slikama)
Samobalansirajući robot: U ovom Instructable-u pokazat ćemo vam kako izgraditi samobalansirajućeg robota koji smo napravili kao školski projekt. Temelji se na nekim drugim robotima, kao što su nBot i drugi Instructable. Robotom se može upravljati s Android pametnog telefona vi