Kazalo:
Video: Samoizravnalni robot - PID nadzorni algoritem: 3 koraki
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:02
Ta projekt je bil zasnovan, ker me je zanimalo več o kontrolnih algoritmih in o tem, kako učinkovito implementirati funkcionalne zanke PID. Projekt je še v fazi razvoja, saj bo še dodan modul Bluetooth, ki bo omogočal nadzor nad robotom s pametnega telefona, ki podpira Bluetooth.
Uporabljeni enosmerni motorji N20 so bili razmeroma poceni in imajo zato veliko prostora. To vodi do majhnega sunka, saj motorji premagajo "ohlapnost", saj navor nanese na kolesa. Zato je nemogoče doseči popolnoma gladko gibanje. Koda, ki sem jo napisal, je dokaj preprosta, vendar učinkovito dokazuje zmogljivosti algoritma PID.
Povzetek projekta:
Ohišje robota je 3D-tiskano s tiskalnikom Ender 3 in je zasnovano tako, da se stisne skupaj.
Robota upravlja Arduino Uno, ki vzame podatke senzorjev iz MPU6050 in krmili enosmerne motorje preko zunanjega gonilnika motorja. Poganja ga baterija 7,4 V, 1500 mAh. Voznik motorja to regulira na 5V za napajanje Arduina in napaja motorje 7.4V.
Programska oprema je bila napisana iz nič s pomočjo knjižnic 'Arduino-KalmanFilter-master' in 'Arduino-MPU6050-master' iz gitHub-a.
Zaloge:
- 3D natisnjeni deli
- Arduino UNO
- 6-osni senzor MPU6050
- DC voznik motorja
- N20 DC motorji (x2)
- 9V baterija
1. korak: Robot Build
Tiskanje in sestavljanje
Celotna konstrukcija bi morala biti pritrjena, vendar sem uporabil superlepilo za pritrditev komponent, da bi zagotovil, da je robot pri uravnoteženju popolnoma tog.
Deli sem oblikoval v Fusion 360 in vsak del optimiziral za tiskanje brez podpor, kar omogoča strožje tolerance in čistejšo površino.
Nastavitve, uporabljene na tiskalniku Ender 3, so bile: 0,16 mm višine plasti pri 40% polnitvi za vse dele.
Korak: Robot za 3D tiskanje
Podvozje (x1)
Levo kolo (x2)
Levo ohišje motorja (x2)
Arduino etui (x1)
3. korak: Algoritem nadzora PID
Algoritem nadzora PID sem napisal iz nič z uporabo knjižnic 'Arduino-KalmanFilter-master' in 'Arduino-MPU6050-master' iz gitHub-a.
Predpostavka algoritma je naslednja:
- Preberite neobdelane podatke iz MPU6050
- S Kalmanovim filtrom analizirajte podatke iz žiroskopa in merilnika pospeška, da prekličete napake v odčitkih žiroskopa zaradi pospeška senzorja. To vrne sorazmerno zglajeno vrednost nagiba senzorja v stopinjah na dve decimalni mesti.
- Izračunajte napako v kotu, tj.: kot med senzorjem in nastavljeno vrednostjo.
- Izračunajte proporcionalno napako kot (konstanta sorazmernosti x napaka).
- Izračunajte integralno napako kot tekočo vsoto (konstanta integracije x napaka).
- Izračunaj napako pri izpeljavi kot konstanto kot [(razlika konstante) x (sprememba napake / sprememba časa)]
- Seštejte vse napake, da dobite izhodno hitrost, ki jo želite poslati motorjem.
- Izračunajte, v katero smer zavrtite motorje na podlagi znaka kota napake.
- Zanka bo delovala v nedogled in se bo spreminjala glede na vhod. To je povratna zanka, ki uporablja izhodne vrednosti kot nove vhodne vrednosti za naslednjo iteracijo.
Zadnji korak je nastavitev parametrov Kp, Ki & Kd zanke PID.
- Dobro izhodišče je, da počasi povečujete Kp, dokler robot ne zaniha okoli ravnotežne točke in lahko ujame padec.
- Nato zaženite Kd pri približno 1% vrednosti Kp in počasi naraščajte, dokler nihanja ne izginejo in robot pri pritisku gladko drsi.
- Končno začnite s Ki okoli 20% Kp in se spreminjajte, dokler robot "ne preseže" nastavljene vrednosti, da aktivno ujame padec in se vrne v navpično smer.
Priporočena:
Samoizravnalni robot iz Magicbita: 6 korakov
Self -Balancing Robot iz Magicbita: Ta vadnica prikazuje, kako narediti samo uravnoteženega robota z uporabo Magicbit dev deske. Kot razvojno ploščo v tem projektu, ki temelji na ESP32, uporabljamo magicbit. Zato je v tem projektu mogoče uporabiti katero koli razvojno ploščo ESP32
Kordični algoritem z uporabo VHDL: 4 koraki
Kordični algoritem z uporabo VHDL: ## To je najbolj priljubljena in priljubljena povezava v Googlu za VHDL implementacijo CORDIC ALGORITMA za ustvarjanje sinusnega in kosinusnega vala ## Trenutno obstaja veliko strojno učinkovitih algoritmov, vendar ti niso znani zaradi prevlada softwarja
HeadBot-samoizravnalni robot za učenje in doseganje STEM: 7 korakov (s slikami)
HeadBot-samoizravnalni robot za učenje in ozaveščanje o STEM: Headbot-dva metra visok, samo uravnotežujoč se robot-je zamisel ekipe South Eugene Robotics Team (SERT, FRC 2521), konkurenčne srednješolske robotske ekipe v PRVEM Robotics Competition, Eugene, Oregon. Ta priljubljeni robot za ozaveščanje
Umetna inteligenca družabnih iger: minimalni algoritem: 8 korakov
Umetna inteligenca družabnih iger: algoritem minimaksa: Ste se kdaj vprašali, kako so narejeni računalniki, s katerimi igrate v šahu ali šahu? No, ne glejte dlje od tega navodila, saj vam bo pokazalo, kako narediti preprosto, a učinkovito umetno inteligenco (AI) z algoritmom minimaksa! Z uporabo th
Tic Tac Toe na Arduinu z AI (minimalni algoritem): 3 koraki
Tic Tac Toe na Arduinu z AI (minimalni algoritem): V tem navodilu vam bom pokazal, kako z uporabo Arduina sestaviti igro Tic Tac Toe z AI. Lahko igrate proti Arduinu ali pa gledate, kako igra Arduino proti sebi. Uporabljam algoritem, imenovan "minimaksni algoritem",