Satura rādītājs:
- Piegādes
- 1. solis: būvniecība
- 2. solis: elektroinstalācija
- 3. solis: kontroles teorija
- 4. darbība: MPU 6050 izmantošana
- 5. darbība: kodēšana
- 6. darbība: PID regulēšanas procedūra
- 7. solis: secinājums
Video: Divu riteņu pašbalansējošais robots: 7 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:52
Šī pamācība iet cauri pašbalansējoša robota projektēšanas un būvēšanas procesam. Kā piezīmi es tikai gribu teikt, ka pašbalansējošie roboti nav jauna koncepcija un tos ir izveidojuši un dokumentējuši citi. Es vēlos izmantot šo iespēju, lai dalītos ar jums savā šī robota interpretācijā.
Kas ir pašbalansējošs robots?
Pašbalansējošs robots ir sistēma, kas izmanto inerciālos mērījumu datus, kas iegūti no borta sensora, lai nepārtraukti pielāgotu savu stāvokli, lai saglabātu vertikāli.
Kā tas darbojas?
Vienkārša analoģija, kas jāņem vērā, ir apgriezts svārsts. Kur masas centrs atrodas virs pagrieziena punkta. Tomēr mūsu gadījumā mēs ierobežojam svārstu līdz 1 brīvības pakāpei, jo mums ir viena rotācijas ass, mūsu gadījumā - divu riteņu rotācijas ass. Tā kā jebkāda veida traucējumi izraisīs robota krišanu, mums ir nepieciešama metode, kā robotu aktīvi noturēt līdzsvarā. Šeit sāk darboties mūsu slēgtā cikla algoritms (PID kontrolieris), zinot, kādā virzienā mūsu robots krīt, mēs varam pielāgot savu motoru griešanās virzienu, lai sistēma būtu līdzsvarota.
Kā darbojas slēgtā cikla algoritms?
Robota līdzsvara uzturēšanas pamatprincips ir tāds, ka, ja robots krīt uz priekšu, tas to kompensēs, pārvietojot robota dibenu uz priekšu, lai noķertu sevi un tādējādi saglabātu vertikāli. Tāpat, ja robots krīt atpakaļ, tas to kompensēs, pārvietojot robota dibenu atpakaļ, lai noķertu sevi.
Tātad, mums šeit ir jādara divas lietas, pirmkārt, mums ir jāaprēķina robota slīpuma leņķis (rullis), un tāpēc mums ir jākontrolē motoru griešanās virziens.
Kā mēs izmērīsim slīpuma leņķi?
Lai izmērītu slīpuma leņķi, mēs izmantosim inerciālu mērvienību. Šajos moduļos ir akselerometrs un žiroskops.
- Akselerometrs ir elektromagnētiska ierīce, kas mēra pareizu paātrinājumu, tas ir ķermeņa paātrinājums momentānā atpūtas rāmī.
- Žiroskops ir elektromehāniska ierīce, kas mēra leņķisko ātrumu un tiek izmantota, lai noteiktu ierīces orientāciju.
Tomēr šādu sensoru izmantošanas problēma ir šāda:
- Akselerometrs ir ļoti trokšņains, bet laika gaitā nemainīgs, leņķis mainās ar pēkšņām horizontālām kustībām
- No otras puses, žiroskopa vērtība laika gaitā mainīsies, taču sākotnēji tā ir diezgan precīza
Šajā pamācībā es netaisos ieviest filtru, tā vietā nelietojot borta digitālo kustību apstrādi (DMP). Citi ir izmantojuši papildu filtru, lai iegūtu vienmērīgu signālu, jūs varat izvēlēties jebkuru metodi, kas jums patīk. jo robots līdzsvarojas ar jebkuru ieviešanu.
Piegādes
Daļas:
- Arduino Pro Mini 3.3V 8 ar 8 Mhz ATMEGA328
- FT232RL 3.3V 5.5V FTDI USB uz TTL seriālā adaptera modulis
- GY-521 modulis ar MPU-6050
- Pāris N20 mikro pārnesumu motora 6V - 300 apgr./min
- L298N motora vadītājs
- LM2596S līdzstrāvas līdzstrāvas pārveidotājs
- Akumulators (uzlādējams 9.7V litija jonu akumulators)
- Akumulatora siksna
- Divi PCB shēmu plates prototipi
- Vīriešu un sieviešu galviņu tapas, džemperu vadi
Rīki:
- Lodāmurs un lodēt
- Neilona sešstūra starplikas izslēgšana
- Precīzs skrūvgriežu komplekts
- 3D printeris
1. solis: būvniecība
Tā kā man bija pieejams 3D printeris, es nolēmu izdrukāt šasiju 3D un izmantot pārtraukumus, lai visu savienotu kopā.
Robots sastāv no 4 slāņiem
- Apakšējais slānis savieno motorus, un tam ir stiprinājuma punkti L298N motora draivera modulim
- Nākamajā slānī atrodas prototipa dēlis ar Arduino pro mini un pie tā pielodēti galvenes
- Trešais slānis piestiprina IMU
- Augšējais slānis, ko es saucu par “bufera slāni”, iztukšo akumulatoru, buka pārveidotāju un naudas slēdzi
Mans galvenais dizaina princips bija saglabāt visu modulāru. Iemesls tam bija, ja kaut kas noiet greizi ar kādu no komponentiem, kuru es varētu viegli nomainīt, vai ja man ir nepieciešams komponents citam projektam, es varu to viegli paņemt, neuztraucoties par to, ka nevarēšu vēlreiz izmantot sistēmu.
2. solis: elektroinstalācija
Es lodēju dažas sieviešu galvenes pintes uz perf-board, lai tās atbilstu Arduino pro mini galvenes tapām. Pēc tam es lodēju vīrieša galvenes tapas, lai ļautu piekļūt I/O. Pārējās sastāvdaļas tika montētas uz 3D drukātā rāmja un savienotas, izmantojot džemperu vadus.
3. solis: kontroles teorija
Tagad mēs pārietam pie projekta būtības. Lai robots būtu līdzsvarā, mums jāģenerē atbilstošs vadības signāls, lai dzinēji darbotos pareizajā virzienā un ar pareizu ātrumu, lai robots būtu līdzsvarots un stabils. Lai to izdarītu, mēs izmantosim populāru vadības cilpas algoritmu, kas pazīstams kā PID kontrolieris. Kā norāda akronīms, šim kontrolierim ir trīs termini, tie ir proporcionālie, integrālie un atvasinātie termini. Katram no tiem ir pievienoti koeficienti, kas nosaka to ietekmi uz sistēmu. Bieži laikietilpīgākais kontroliera ieviešanas posms ir ieguvumu noregulēšana katrai unikālajai sistēmai, lai iegūtu optimālāko atbildi.
- Proporcionālais termins tieši reizina kļūdu, lai iegūtu rezultātu, tāpēc jo lielāka kļūda, jo lielāka atbilde
- Integrētais termins ģenerē atbildi, pamatojoties uz kļūdas uzkrāšanos, lai samazinātu līdzsvara stāvokļa kļūdu. Jo ilgāk sistēma ir nelīdzsvarota, jo ātrāk dzinēji reaģēs
- Atvasinātais termins ir atvasinājums no kļūdas, ko izmanto, lai prognozētu turpmāko reakciju, un, to darot, tas samazina svārstības līdzsvara stāvokļa pārsniegšanas dēļ.
Šī algoritma pamatprincips ir nepārtraukti aprēķināt slīpuma leņķi, kas ir atšķirība starp vēlamo stāvokli un pašreizējo stāvokli, to sauc par kļūdu. Pēc tam tā izmanto šīs kļūdu vērtības un aprēķina proporcionālo, integrālo un atvasināto atbilžu summu, lai iegūtu izvadi, kas ir vadības signāli, kas tiek nosūtīti uz motoriem. Tā rezultātā, ja kļūda ir liela, uz motoriem nosūtītais vadības signāls rotēs motorus lielā ātrumā, lai sasniegtu līdzsvarotu stāvokli. Tāpat, ja kļūda ir maza, vadības signāls rotēs motorus ar mazu ātrumu, lai robots būtu līdzsvarā.
4. darbība: MPU 6050 izmantošana
MPU6050 bibliotēka
github.com/jrowberg/i2cdevlib/tree/master/…
Ne visi sensori ir precīzas viens otra kopijas. Tā rezultātā, pārbaudot divus MPU 6050, akselerometra un žiroskopa vērtības var būt atšķirīgas, ja tās tiek novietotas uz vienas virsmas. Lai pārvarētu šo nemainīgo leņķa nobīdi, mums jāsvin katrs izmantotais sensors. Palaižot šo skriptu:
www.i2cdevlib.com/forums/topic/96-arduino-…
rakstījis Luiss Rodenas, mēs saņemsim kompensācijas. Nobīdes kļūdas var novērst, nosakot nobīdes vērtības iestatīšanas () rutīnā.
Digitālā kustības procesora izmantošana
MPU6050 ir DMP (digitālais kustības procesors).
Kas ir DMP? Jūs varat iedomāties DMP kā iebūvētu mikrokontrolleru, kas apstrādā sarežģīto kustību no 3 asu žiroskopa un 3 asu akselerometra uz mpu6050, izmantojot savus kustības saplūšanas algoritmus. Izkrauj apstrādi, ko citādi veiktu Arduino
Kā to izmantot? Lai saprastu, kā izmantot DMP, izlasiet parauga skici MPU6050_DMP6, kas pievienota MPU6050 bibliotēkai (Arduino IDE: Fails-> Piemērs-> MPU6050-> MPU6050_DMP6). Šī ir arī laba iespēja pārbaudīt, vai sensors darbojas un vai vadi ir pareizi
5. darbība: kodēšana
Arduino pro mini programmēšanai es izmantoju Arduino IDE un FTDI saskarni.
Izmantojot skices piemēru (MPU6050_DMP6), kas pievienots MPU6050 bibliotēkai, kā savu pamata kodu, es pievienoju PID () un MotorDriver () funkcijas.
Pievienojiet bibliotēku
- MPU6050: Lai izmantotu MPU6050 sensoru, mums būs jālejupielādē I2C izstrādātāju bibliotēka no Džefa Rovberga un jāpievieno tā mapei Arduino “bibliotēkas”, kas atrodama jūsu datora programmas failos.
- Vads: mums ir nepieciešama arī Wire bibliotēka, lai mēs varētu sazināties ar I2C ierīcēm.
Pseido kods
Iekļaut bibliotēkas:
- Vads.h
- MPU6050
- I2Cdev.h
Inicializējiet mainīgos, konstantes un objektus
Uzstādīt ()
- Iestatiet tapas režīmu motoru vadīšanai
- Iestatiet statusa gaismas diodes tapas režīmu
- Inicializējiet MPU6050 un iestatiet nobīdes vērtības
PID ()
Aprēķiniet PID vērtību
MotorDriver (PID atbilde)
Izmantojiet PID vērtību, lai kontrolētu motoru ātrumu un virzienu
Cilpa ()
- Iegūstiet datus no DMP
- Izsauciet PID () par MotorDriver () funkcijām
6. darbība: PID regulēšanas procedūra
Šī ir visgarlaicīgākā projekta daļa un prasa nelielu pacietību, ja vien jums nav ļoti paveicies. Tālāk ir norādītas darbības.
- Iestatiet I un D terminu uz 0
- Turot robotu, noregulējiet P, lai robots tikai sāk svārstīties par līdzsvara stāvokli
- Ja iestatīts P, palieliniet I, lai robots ātrāk paātrinātos, kad tas nav līdzsvarā. Ja P un I ir pareizi noregulēti, robotam vismaz dažas sekundes jāspēj līdzsvarot sevi ar nelielām svārstībām
- Visbeidzot, palielinot D, samaziniet svārstības
Ja pirmais mēģinājums nedod apmierinošus rezultātus, atkārtojiet darbības ar citu P. vērtību. Ņemiet vērā arī to, ka pēc tam varat precizēt PID vērtības, lai vēl vairāk palielinātu veiktspēju. Šeit norādītās vērtības ir atkarīgas no aparatūras, nebrīnieties, ja iegūstat ļoti lielas vai ļoti mazas PID vērtības.
7. solis: secinājums
Izmantotie mikro pārnesumu motori lēnām reaģēja uz lieliem traucējumiem, un, ņemot vērā, ka sistēma bija pārāk viegla, nebija pietiekami daudz inerces, lai iegūtu vēlamo svārsta efektu, tādēļ, ja robots noliecas uz priekšu, tas vienkārši noliecas leņķī un skrien uz priekšu. Visbeidzot, 3D drukātie riteņi bija slikta izvēle, jo tie turpina slīdēt.
Ieteikumi uzlabošanai:
- Ātrāki motori ar lielāku griezes momentu, t.i., līdzstrāvas motoriem ir lielāks spriegums, jo lielāks griezes moments
- iegūstiet smagāku akumulatoru vai vienkārši pārvietojiet masu nedaudz augstāk
- Lai iegūtu lielāku saķeri, nomainiet 3D drukātos riteņus pret gumijas riteņiem
Ieteicams:
CHAMPION 4 Omni riteņu futbola robots!: 7 soļi (ar attēliem)
CHAMPION 4Omni Wheel Soccer Robot! tā ir piedalījusies 3 konkursos, sadarbojoties ar manu
Mecanum Omni riteņu robots ar GRBL pakāpju motoriem Arduino vairogs: 4 soļi
Mecanum Omni riteņu robots ar GRBL pakāpju motoriem Arduino vairogs: Mecanum robots - projekts, kuru es gribēju veidot kopš tā laika, kad to ieraudzīju Dejana gread mechatronics emuārā: howtomechatronics.com Dejan patiešām paveica labu darbu, aptverot visus aparatūras, 3D drukāšanas aspektus , elektronika, kods un Android lietotne (MIT
Proyecto Laboratorio De Mecatrónica (divu riteņu līdzsvara robots): 6 soļi
Proyecto Laboratorio De Mecatrónica (divu riteņu līdzsvara robots): En este proyecto se mostrara, el funcionamiento y el como hacer para elaborar un " Divu riteņu līdzsvara robots " paso a paso y con explicación y concejos. Este es un sistēma que consiste en que el robot no se debe caer, se debe de mantener en el
2 riteņu pašbalansējošais robots: 4 soļi
2 riteņu pašbalansējošais robots: Manuprāt, jūs neesat īsts veidotājs, ja vien neuzbūvējat savu divriteņu pašregulēšanas robotu. :-) Tātad, šeit tas ir … un, pats galvenais, tas darbojas !!! Šis projekts izskatās ļoti vienkāršs. Tā vietā tas prasa labas zināšanas
Līdzsvarojošais robots / 3 riteņu robots / STEM robots: 8 soļi
Līdzsvarojošais robots / trīs riteņu robots / STEM robots: mēs esam izveidojuši kombinētu balansēšanas un trīsriteņu robotu, kas paredzēts lietošanai skolās un pēc skolas izglītības programmās. Robota pamatā ir Arduino Uno, pielāgots vairogs (visas konstrukcijas detaļas ir iekļautas), litija jonu akumulators (viss atbilst