Përmbajtje:
- Furnizimet
- Hapi 1: Ndërtimi
- Hapi 2: Instalimet elektrike
- Hapi 3: Teoria e Kontrollit
- Hapi 4: Përdorimi i MPU 6050
- Hapi 5: Kodimi
- Hapi 6: Procedura e akordimit të PID -it
- Hapi 7: Konkluzioni
Video: Roboti i vet balancimit me dy rrota: 7 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:10
Ky udhëzues do të kalojë nëpër procesin e projektimit dhe ndërtimit për një robot vetë-balancues. Si shënim, unë thjesht dua të them se robotët vetë-balancues nuk janë një koncept i ri dhe ato janë ndërtuar dhe dokumentuar nga të tjerët. Dua ta shfrytëzoj këtë mundësi për të ndarë me ju interpretimin tim për këtë robot.
Çfarë është një robot vetë-balancues?
Një robot vetë-balancues është një sistem që përdor të dhëna matëse inerciale, të mbledhura nga një sensor në bord, për të rregulluar vazhdimisht pozicionin e tij për të mbajtur drejt.
Si punon?
Një analogji e thjeshtë për t'u marrë parasysh është një lavjerrës i përmbysur. Aty ku qendra e masës është mbi pikën e boshtit. Sidoqoftë, në rastin tonë, ne po kufizojmë lavjerrësin në 1 shkallë lirie duke pasur një bosht rrotullimi, në rastin tonë boshtin e rrotullimit të dy rrotave. Meqenëse çdo lloj shqetësimi do të shkaktojë rënien e robotit, ne kemi nevojë për një metodë për ta mbajtur robotin në mënyrë aktive të ekuilibruar. Këtu hyn në lojë algoritmi ynë me qark të mbyllur (kontrolluesi PID), duke ditur se në cilin drejtim po bie roboti ynë, ne mund të rregullojmë drejtimin e rrotullimit të motorëve tanë për ta mbajtur sistemin të balancuar.
Si funksionon algoritmi me qark të mbyllur?
Parimi bazë në mbajtjen e ekuilibruar të robotit është, nëse roboti bie përpara ai do të kompensojë duke lëvizur pjesën e poshtme të robotit përpara për të kapur veten dhe për këtë arsye të mbajë vertikale. Po kështu, nëse roboti po bie prapa do të kompensojë duke lëvizur pjesën e poshtme të robotit prapa për të kapur veten.
Pra, këtu duhet të bëjmë dy gjëra, së pari, duhet të llogarisim këndin e pjerrësisë (Roll) që po përjeton roboti dhe si rezultat, duhet të kontrollojmë drejtimin e rrotullimit të motorëve.
Si do ta masim këndin e pjerrësisë?
Për të matur këndin e pjerrësisë do të përdorim një Njësi Matëse Inerciale. Këto module përfshijnë një përshpejtues dhe xhiroskop.
- Përshpejtuesi është një pajisje elektromagnetike që mat nxitimin e duhur, ky është nxitimi i një trupi në një kornizë pushimi të menjëhershëm.
- Xhiroskopi është një pajisje elektromekanike që mat shpejtësinë këndore dhe përdoret për të përcaktuar orientimin e pajisjes.
Sidoqoftë, problemi me përdorimin e sensorëve të tillë është se:
- Përshpejtuesi është shumë i zhurmshëm, por është i qëndrueshëm me kalimin e kohës, këndi ndryshon me lëvizjet e papritura horizontale
- Vlera e xhiroskopit, nga ana tjetër, do të ndryshojë me kalimin e kohës, por fillimisht, është mjaft e saktë
Për këtë të udhëzueshme, unë nuk do të zbatoj një filtër në vend që të mos përdor përpunimin dixhital të lëvizjes në bord (DMP). Të tjerët kanë përdorur një filtër plotësues për të marrë një sinjal të qetë, ju mund të zgjidhni cilëndo metodë që ju pëlqen. ndërsa roboti balancon me secilin zbatim.
Furnizimet
Pjesët:
- Arduino Pro Mini 3.3V 8 me një ATMEGA328 8 Mhz
- Moduli i përshtatësit serik FT232RL 3.3V 5.5V FTDI USB në TTL
- Moduli GY-521 me MPU-6050
- Një palë motor N20 mikro ingranazhesh 6V - 300rpm
- Drejtuesi i motorit L298N
- Konvertuesi LM2596S DC në DC
- Bateria (Paketë baterie 9.7V Li-ion e rimbushshme)
- Rrip baterie
- Dy prototipe të bordeve të qarkut PCB
- Meshkujt dhe femrat me kokë lidhin telat e kërcyesit
Mjetet:
- Saldim dhe saldim
- Ngecje me ndarës najloni gjashtëkëndësh
- Set kaçavidash preciz
- Printer 3D
Hapi 1: Ndërtimi
Meqenëse kisha qasje në një printer 3D, vendosa të printoja 3D shasinë dhe të përdorja pengesat për të lidhur gjithçka së bashku.
Roboti përbëhet nga 4 shtresa
- Shtresa e poshtme lidh motorët dhe ka pika montimi për modulin e drejtuesit të motorit L298N
- Shtresa tjetër strehon prototipin e bordit me Arduino pro mini dhe tituj të ngjitur në të
- Shtresa e tretë monton IMU
- Shtresa e sipërme, të cilën unë e quaj "shtresa e parakolpit" përmban baterinë, konvertuesin dhe një çelës monetar
Parimi im kryesor i projektimit ishte të mbaja gjithçka modulare. Arsyeja për këtë ishte nëse diçka nuk shkonte mirë me një nga komponentët, unë mund ta zëvendësoja me lehtësi ose nëse kisha nevojë për një komponent për një projekt tjetër, unë lehtë mund ta marr atë pa u shqetësuar se nuk do të jem në gjendje ta përdor sistemin përsëri.
Hapi 2: Instalimet elektrike
Unë bashkova disa pinta me kokë femrash në një tabelë perfekte për t'u përputhur me kunjat e kokës Arduino pro mini. Pas kësaj, unë bashkova kokën e kokës mashkullore për të lejuar hyrjen në hyrje/dalje. Pjesa tjetër e përbërësve u montuan në kornizën e printuar 3D dhe u lidhën duke përdorur tela bluzë.
Hapi 3: Teoria e Kontrollit
Tani kalojmë në thelbin e projektit. Për ta mbajtur robotin të ekuilibruar, ne duhet të gjenerojmë një sinjal të përshtatshëm kontrolli për të drejtuar motorët në drejtimin e duhur dhe me shpejtësinë e duhur për ta mbajtur robotin të balancuar dhe të qëndrueshëm. Për ta bërë këtë ne do të përdorim një algoritëm të popullarizuar të lakut të kontrollit të njohur si kontrollues PID. Siç sugjeron akronimi, ekzistojnë tre terma për këtë kontrollues, këto janë termat proporcionalë, integralë dhe derivativë. Secila prej të cilave shoqërohet me koeficientë që përcaktojnë ndikimin e tyre në sistem. Shpesh pjesa më e gjatë e zbatimit të kontrolluesit është akordimi i përfitimeve për secilin sistem unik për të marrë përgjigjen më optimale.
- Termi proporcional shumëzon drejtpërdrejt gabimin për të dhënë një dalje, kështu që sa më i madh gabimi aq më i madh përgjigja
- Termi integral gjeneron një përgjigje të bazuar në një akumulim të gabimit për të zvogëluar gabimin e gjendjes së qëndrueshme. Sa më gjatë që sistemi të jetë i çekuilibruar aq shpejt motorët do të përgjigjen
- Termi derivativ është derivat i gabimit që përdoret për të parashikuar përgjigjen e ardhshme dhe duke e bërë këtë zvogëlon lëkundjen për shkak të tejkalimit të gjendjes së qëndrueshme.
Parimi themelor i këtij algoritmi është llogaritja e vazhdueshme e këndit të pjerrësisë i cili është ndryshimi midis pozicionit të dëshiruar dhe pozicionit aktual, ky njihet si gabim. Pastaj përdor këto vlera të gabimit dhe llogarit shumën e përgjigjeve proporcionale, integrale dhe derivative për të marrë një dalje, e cila është sinjalet e kontrollit që dërgohen tek motorët. Si rezultat, nëse gabimi është i madh, sinjali i kontrollit i dërguar motorëve do të rrotullojë motorët me shpejtësi të madhe për të arritur në një gjendje të balancuar. Po kështu, nëse gabimi është i vogël, sinjali i kontrollit do të rrotullojë motorët me shpejtësi të ulët për ta mbajtur robotin të balancuar.
Hapi 4: Përdorimi i MPU 6050
Biblioteka MPU6050
github.com/jrowberg/i2cdevlib/tree/master/…
Kalibrimi i kompensimeve Jo të gjithë sensorët janë kopje të sakta të njëri -tjetrit. Si rezultat, nëse testoni dy MPU 6050 mund të merrni vlera të ndryshme për përshpejtuesin dhe xhiroskopin kur vendoseni ende në të njëjtën sipërfaqe. Për të kapërcyer këtë kompensim të vazhdueshëm të këndit, ne duhet të festojmë çdo sensor që përdorim. Drejtimi i këtij skripti:
www.i2cdevlib.com/forums/topic/96-arduino-…
shkruar nga Luis Rodenas, ne do të marrim kompensime. Gabimet e kompensuara mund të eliminohen duke përcaktuar vlerat e kompensuara në rutinën e konfigurimit ().
Përdorimi i procesorit dixhital të lëvizjes
MPU6050 përmban një DMP (përpunues dixhital të lëvizjes).
Çfarë është një DMP? Ju mund të mendoni për DMP si një mikrokontrollues në bord që përpunon lëvizjen komplekse nga xhiroskopi me 3 aks dhe akselerometri me 3 boshte në bordin e mpu6050, duke përdorur algoritmet e veta të shkrirjes së lëvizjes. Shkarkimi i përpunimit që përndryshe do të bëhej nga Arduino
Si ta përdorni? Për të kuptuar se si të përdorni DMP kaloni nëpër shembullin e skicës MPU6050_DMP6 që vjen me bibliotekën MPU6050 (në Arduino IDE: Skedari-> Shembull-> MPU6050-> MPU6050_DMP6). Kjo është gjithashtu një mundësi e mirë për të kontrolluar që sensori juaj në të vërtetë punon dhe instalimet elektrike janë të sakta
Hapi 5: Kodimi
Kam përdorur Arduino IDE dhe një ndërfaqe FTDI për të programuar Arduino pro mini.
Duke përdorur skicën shembull (MPU6050_DMP6) që vjen me bibliotekën MPU6050 si kodin tim bazë, shtova funksionet PID () dhe MotorDriver ().
Shtoni bibliotekën
- MPU6050: Për të përdorur sensorin MPU6050 do të na duhet të shkarkojmë bibliotekën e zhvilluesve I2C nga Jeff Rowberg dhe ta shtojmë në dosjen "bibliotekat" Arduino të gjetur në skedarët e programit në kompjuterin tuaj.
- Wire: Ne gjithashtu kemi nevojë për bibliotekën Wire për të na lejuar të komunikojmë me pajisjet I2C.
Pseudo Kodi
Përfshi Bibliotekat:
- Tela.h
- MPU6050
- I2Cdev.h
Filloni variablat, konstantet dhe objektet
Konfigurimi ()
- Vendosni modalitetin pin për kontrollin e motorëve
- Vendosni modalitetin pin për LED të statusit
- Filloni MPU6050 dhe vendosni vlerat e kompensuara
PID ()
Llogaritni vlerën e PID -it
MotorDriver (përgjigja PID)
Përdorni vlerën PID për të kontrolluar shpejtësinë dhe drejtimin e motorëve
Lak ()
- Merrni të dhëna nga DMP
- Thirrni funksionet PID () një MotorDriver ()
Hapi 6: Procedura e akordimit të PID -it
Kjo është pjesa më e lodhshme e projektit dhe kërkon pak durim nëse nuk keni fat. Këtu janë hapat:
- Vendosni termin I dhe D në 0
- Duke mbajtur robotin, rregulloni P në mënyrë që roboti sapo të fillojë të lëkundet në lidhje me pozicionin e ekuilibrit
- Me grupin P, rriteni I në mënyrë që roboti të përshpejtohet më shpejt kur është jashtë bilancit. Me P dhe I janë akorduar siç duhet, roboti duhet të jetë në gjendje të balancojë veten për të paktën disa sekonda, me disa lëkundje
- Së fundi, rritja e D zvogëlon lëkundjen
Nëse përpjekja e parë nuk jep rezultate të kënaqshme, përsëritni hapat me një vlerë të ndryshme të P. Gjithashtu kini parasysh se mund të rregulloni mirë vlerat e PID më pas, për të rritur më tej performancën. Vlerat këtu varen nga hardueri, mos u habitni nëse merrni vlera PID shumë të mëdha ose shumë të vogla.
Hapi 7: Konkluzioni
Motorët e mikro -ingranazheve të përdorur ishin të ngadalshëm për të reaguar ndaj shqetësimeve të mëdha dhe duke qenë se sistemi ishte shumë i lehtë nuk kishte mjaft inerci për të marrë efektin e dëshiruar të lavjerrësit, kështu që nëse roboti përkulet përpara ai vetëm do të përkulet në një kënd dhe do të garojë përpara. Së fundi, rrotat e printuara 3D ishin një zgjedhje e keqe pasi vazhdojnë të rrëshqasin.
Sugjerime për përmirësim:
- Motorë më të shpejtë me çift rrotullues më të lartë, domethënë për motorët DC është vlerësimi i tensionit më i lartë çift rrotullues më i lartë
- merrni një bateri më të rëndë ose thjesht lëvizeni masën pak më lart
- Zëvendësoni rrotat e printuara 3D me gome për të pasur më shumë tërheqje
Recommended:
Roboti i vet balancimit - Algoritmi i kontrollit PID: 3 hapa
Roboti i Balancimit - Algoritmi i Kontrollit PID: Ky projekt u konceptua sepse isha i interesuar të mësoja më shumë rreth Algoritmeve të Kontrollit dhe si të zbatoja në mënyrë efektive sythe funksionale PID. Projekti është ende në fazën e zhvillimit pasi një modul Bluetooth ende nuk është shtuar i cili do të
Roboti i balancimit / Roboti me 3 rrota / Roboti STEM: 8 hapa
Roboti i Balancimit / Roboti me 3 Rrota / Robot STEM: Ne kemi ndërtuar një robot të balancuar të kombinuar dhe 3 rrota për përdorim arsimor në shkolla dhe programe arsimore pas shkollës. Roboti bazohet në një Arduino Uno, një mburojë me porosi (të gjitha detajet e ndërtimit të dhëna), një paketë baterie Li Jon (të gjitha të ndërtuara
Si të modifikoni rrota standarde të nxehta në rrota të nxehta R/C: D: 6 hapa (me fotografi)
Si të modifikoni rrota standarde të nxehta në R/C rrota të nxehta: D: Që kur isha fëmijë i vogël, i dua makinat me rrota të nxehta. Më dha frymëzim për modelimin e automjeteve fantazi. Këtë herë ata e tejkaluan veten me Star Wheels Hot War, C-3PO. Sidoqoftë, unë dua më shumë sesa thjesht të shtyj ose të udhëtoj në një pistë, vendosa, "L
Krijimi i një roboti të vetë-balancimit Arduino të kontrolluar nga distanca: B-robot EVO: 8 hapa
Krijimi i një roboti të vetë-balancimit Arduino të kontrolluar nga distanca: B-robot EVO: ------------------------------------ -------------- UPDATE: ekziston një version i ri dhe i përmirësuar i këtij roboti këtu: B-robot EVO, me karakteristika të reja! ------------ ------------------------------------------ Si funksionon? B-ROBOT EVO është një nga distanca kontroll
Arduino - Bilanci - Roboti i balancimit - Si të bëni?: 6 hapa (me fotografi)
Arduino - Bilanci - Roboti i balancimit | Si për të bërë?: Në këtë tutorial ne do të mësojmë se si të bëjmë Arduino balancues (balancues) robot që balancon vetveten. Së pari mund të shikoni videon mësimore më sipër