Orodha ya maudhui:

Magurudumu mawili ya Kujisawazisha Roboti: Hatua 7
Magurudumu mawili ya Kujisawazisha Roboti: Hatua 7

Video: Magurudumu mawili ya Kujisawazisha Roboti: Hatua 7

Video: Magurudumu mawili ya Kujisawazisha Roboti: Hatua 7
Video: MWANAFUNZI MLEMAVU APATIWA MSAADA WA BAISKELI YA MAGURUDUMU MAWILI OFISI YA MKUU WA WILAYA MAFIA 2024, Novemba
Anonim
Roboti mbili ya Kujisawazisha
Roboti mbili ya Kujisawazisha

Hii inaweza kufundishwa kupitia mchakato wa kubuni na kujenga kwa roboti ya kujisawazisha. Kama noti, ninataka tu kusema kwamba roboti za kujilinganisha sio dhana mpya na zimejengwa na kuhifadhiwa na wengine. Ninataka kutumia fursa hii kushiriki na wewe tafsiri yangu ya roboti hii.

Je! Roboti ya kusawazisha ni nini?

Roboti ya kujisawazisha ni mfumo ambao hutumia data ya kipimo cha inertial, iliyokusanywa kutoka kwa sensor ya ndani, ili kuendelea kurekebisha msimamo wake ili iwe sawa.

Inafanyaje kazi?

Mfano rahisi wa kuzingatia ni pendulum iliyogeuzwa. Ambapo katikati ya misa iko juu ya sehemu ya msingi. Walakini, kwa upande wetu, tunazuia pendulum kwa kiwango cha 1 cha uhuru kwa kuwa na mhimili mmoja wa mzunguko, kwa upande wetu mhimili wa mzunguko wa magurudumu mawili. Kwa kuwa aina yoyote ya usumbufu itasababisha roboti kuanguka, tunahitaji njia ya kuweka robot sawa. Hapa ndipo algorithm yetu ya kitanzi kilichofungwa (mtawala wa PID) inapoanza kucheza, tukijua ni mwelekeo gani robot yetu inaanguka tunaweza kurekebisha mwelekeo wa kuzunguka kwa motors zetu ili kuweka mfumo usawa.

Je! Algorithm ya kitanzi kilichofungwa inafanyaje kazi?

Kanuni ya msingi ya kuweka usawa wa roboti ni kwamba, ikiwa roboti inaangukia mbele italipa fidia kwa kusogeza chini ya roboti mbele ili kujinasa na kwa hivyo kuweka wima. Vivyo hivyo, ikiwa roboti inaanguka nyuma italipa fidia kwa kusonga chini ya robot nyuma ili kujinasa.

Kwa hivyo, tunahitaji kufanya mambo mawili hapa, kwanza, tunahitaji kuhesabu angle ya mwelekeo (Roll) ambayo roboti inakabiliwa na kama matokeo, tunahitaji kudhibiti mwelekeo wa kuzunguka kwa motors.

Je! Tutapimaje pembe ya mwelekeo?

Kupima pembe ya mwelekeo tutatumia Kitengo cha Upimaji wa Inertial. Moduli hizi zinajumuisha accelerometer na gyroscope.

  • Accelerometer ni kifaa cha umeme kinachopima kuongeza kasi inayofaa, hii ndio kuongeza kasi kwa mwili katika fremu ya kupumzika mara moja.
  • Gyroscope ni kifaa cha elektroniki kinachopima kasi ya angular na hutumiwa kuamua mwelekeo wa kifaa.

Walakini, shida ya kutumia sensorer kama hizo ni kwamba:

  • Accelerometer ni kelele sana lakini ni thabiti kwa muda, pembe inatofautiana na harakati za usawa ghafla
  • Thamani ya gyroscope, kwa upande mwingine, itapita kwa muda, lakini mwanzoni, ni sahihi

Kwa hili linaweza kufundishwa, sitatumia kichujio badala yake nitatumia Usindikaji wa Mwendo wa Dijiti (DMP). Wengine wametumia kichujio cha ziada kupata ishara laini, unaweza kuchagua njia yoyote unayopenda. kama mizani ya roboti na utekelezaji wowote.

Vifaa

Sehemu:

  1. Arduino Pro Mini 3.3V 8 na 8 Mhz ATMEGA328
  2. FT232RL 3.3V 5.5V FTDI USB kwa moduli ya adapta ya serial ya TTL
  3. Moduli ya GY-521 na MPU-6050
  4. Jozi ya N20 motor ndogo ya gia 6V - 300rpm
  5. Dereva wa gari L298N
  6. LM2596S DC kwa DC kubadilisha fedha
  7. Betri (Chaji ya betri inayoweza kuchajiwa tena ya 9.7V Li-ion)
  8. Kamba ya betri
  9. Bodi mbili za mzunguko wa PCB zinazojitokeza
  10. Pini za kichwa cha kiume na kike waya za kuruka

Zana:

  1. Chuma cha kutengeneza na solder
  2. Msuguano wa spacer ya nylon
  3. Usawazishaji wa bisibisi
  4. Printa ya 3D

Hatua ya 1: Ujenzi

Kwa kuwa nilikuwa na idhini ya kupata kichapishaji cha 3D niliamua kuchapisha chasisi ya 3D na kutumia kusimama kuunganisha kila kitu pamoja.

Roboti ina tabaka 4

  1. Safu ya chini huunganisha motors na ina alama za kuweka kwa moduli ya dereva wa L298N
  2. Safu inayofuata ina bodi ya mfano na mini Arduino pro na vichwa vilivyouzwa
  3. Safu ya tatu imeweka IMU
  4. Safu ya juu, ambayo naita "safu ya bumper" hufunga betri, kibadilishaji cha dume, na ubadilishaji wa pesa

Kanuni yangu kuu ya muundo ilikuwa kuweka kila kitu kawaida. Sababu ya hii ilikuwa ikiwa kuna kitu kilienda vibaya na moja ya vifaa ningeweza kuibadilisha kwa urahisi au ikiwa ningehitaji sehemu ya mradi mwingine ninaweza kuichukua bila wasiwasi juu ya kutoweza kutumia mfumo tena.

Hatua ya 2: Wiring

Wiring
Wiring

Niliuza rangi za vichwa vya kike kwenye ubao wa manukato ili kufanana na pini za kichwa cha Arduino pro mini. Kufuatia hii, niliuza pini za kichwa cha kiume bodi ili kuruhusu ufikiaji wa I / O. Vipengele vingine vilikuwa vimewekwa kwenye fremu iliyochapishwa ya 3D na kuunganishwa kwa kutumia waya za kuruka.

Hatua ya 3: Nadharia ya Kudhibiti

Sasa tunaendelea na msingi wa mradi huo. Ili kuweka robot sawa, tunahitaji kutoa ishara inayofaa ya kudhibiti kuendesha motors kwa mwelekeo sahihi na kwa kasi sahihi kuweka roboti iwe sawa na imara. Ili kufanya hivyo tutatumia algorithm maarufu ya kitanzi inayojulikana kama mtawala wa PID. Kama kifupi kinachoonyesha kuna masharti matatu kwa mdhibiti huyu, haya ni maneno sawa, muhimu, na yanayotokana. Kila moja ambayo inaambatana na coefficients ambayo huamua ushawishi wao kwenye mfumo. Mara nyingi sehemu inayotumia wakati mwingi ya utekelezaji wa mdhibiti ni upangaji wa faida kwa kila mfumo wa kipekee kupata jibu bora zaidi.

  • Neno sawia huzidisha kosa moja kwa moja kutoa pato, kwa hivyo kosa ni kubwa majibu yanakuwa makubwa
  • Neno muhimu hutengeneza majibu kulingana na mkusanyiko wa kosa ili kupunguza kosa la hali thabiti. Kwa muda mrefu mfumo hauna usawa kasi ya motors itajibu
  • Neno linalotokana na neno hili ndilo linalotokana na kosa ambalo hutumiwa kutabiri majibu ya siku zijazo na kwa kufanya hivyo hupunguza kutoweka kwa sababu ya kupitiliza hali thabiti.

Kanuni ya msingi ya algorithm hii ni kuendelea kuhesabu pembe ya mwelekeo ambayo ni tofauti kati ya nafasi inayotakiwa na nafasi ya sasa, hii inajulikana kama kosa. Halafu hutumia maadili haya ya makosa na kuhesabu jumla ya majibu sawia, muhimu, na yanayotokana kupata pato, ambayo ni ishara za kudhibiti ambazo zinatumwa kwa motors. Kama matokeo, ikiwa kosa ni kubwa ishara ya kudhibiti iliyotumwa kwa motors itazunguka motors kwa kasi kubwa ili kufikia hali ya usawa. Vivyo hivyo, ikiwa hitilafu ni ndogo ishara ya kudhibiti itazunguka motors kasi ndogo kuweka roboti usawa.

Hatua ya 4: Kutumia MPU 6050

Maktaba ya MPU6050

github.com/jrowberg/i2cdevlib/tree/master/…

Sio sensorer zote ni nakala halisi za kila mmoja. Kama matokeo, ukijaribu MPU 6050 mbili unaweza kupata maadili tofauti ya accelerometer na gyroscope wakati umewekwa sawa kwenye uso huo. Ili kushinda kukabiliana mara kwa mara kwa pembe tunahitaji kusherehekea kila sensa tunayotumia. Kuendesha hati hii:

www.i2cdevlib.com/forums/topic/96-arduino-…

iliyoandikwa na Luis Rodenas, tutapata malipo. Makosa ya kukabiliana yanaweza kuondolewa kwa kufafanua maadili ya kukabiliana na utaratibu () wa kawaida.

Kutumia Prosesa ya Mwendo wa Dijiti

MPU6050 ina DMP (Digital Motion Processor).

DMP ni nini? Unaweza kufikiria DMP kama microcontroller ya ndani ambayo inashughulikia mwendo tata kutoka kwa gyroscope ya 3-axis na 3-axis accelerometer kwenye bodi ya mpu6050, kwa kutumia algorithms zake za fusion mwendo. Kupakua usindikaji ambao ungefanywa na Arduino

Jinsi ya kuitumia? Ili kujua jinsi ya kutumia DMP pitia mfano mchoro MPU6050_DMP6 ambayo inakuja na maktaba ya MPU6050 (katika Arduino IDE: Faili-> Mfano-> MPU6050-> MPU6050_DMP6). Hii pia ni fursa nzuri ya kuangalia sensor yako inafanya kazi na wiring ni sahihi

Hatua ya 5: Usimbuaji

Nilitumia Arduino IDE na kiolesura cha FTDI kupanga Arduino pro mini.

Kutumia mchoro wa mfano (MPU6050_DMP6) ambao unakuja na maktaba ya MPU6050 kama nambari yangu ya msingi niliongeza kazi za PID () na MotorDriver ().

Ongeza maktaba

  • MPU6050: Kutumia sensa ya MPU6050 tutahitaji kupakua maktaba ya msanidi programu ya I2C kutoka Jeff Rowberg na kuiongeza kwenye folda ya "maktaba" ya Arduino iliyopatikana kwenye faili za programu kwenye kompyuta yako.
  • Waya: Tunahitaji pia maktaba ya waya kuturuhusu kuwasiliana na vifaa vya I2C.

Msimbo wa bandia

Jumuisha Maktaba:

  • Waya.h
  • MPU6050
  • I2Cdev.h

Anzisha vigeuzi, vizuizi, na vitu

Sanidi ()

  • Weka mode ya pini kwa kudhibiti motors
  • Weka hali ya pini kwa hali ya LED
  • Anzisha MPU6050 na uweke maadili ya kukabiliana

PID ()

Hesabu thamani ya PID

MotorDriver (majibu ya PID)

Tumia thamani ya PID kudhibiti kasi na mwelekeo wa motors

Kitanzi ()

  • Pata data kutoka kwa DMP
  • Piga PID () kazi za MotorDriver ()

Hatua ya 6: Utaratibu wa Kuweka PID

Hii ndio sehemu ya kuchosha zaidi ya mradi na inahitaji uvumilivu kidogo isipokuwa upate bahati sana. Hapa kuna hatua:

  1. Weka muda wa I na D kuwa 0
  2. Kushikilia roboti, rekebisha P ili roboti ianze tu kusonga juu ya nafasi ya usawa
  3. Na seti ya P, ongeza mimi ili roboti iharakishe haraka ikiondoka kwenye usawa. Na P na mimi tumewekwa vizuri, roboti inapaswa kuwa na uwezo wa kujisawazisha kwa angalau sekunde chache, na kusisimua kidogo
  4. Mwishowe, ongeza D punguza oscillation

Ikiwa jaribio la kwanza halitoi matokeo ya kuridhisha, rudia hatua kwa thamani tofauti ya P. Pia fahamu kuwa unaweza kurekebisha maadili ya PID baadaye, ili kuongeza utendaji. Maadili hapa yanategemea vifaa, usishangae ikiwa unapata maadili makubwa sana au ndogo sana ya PID.

Hatua ya 7: Mlolongo

Magari ya gia ndogo yaliyotumika yalikuwa polepole kuguswa na usumbufu mkubwa na ikipewa mfumo ulikuwa mwepesi sana hakukuwa na inertia ya kutosha kupata athari inayotaka ya pendulum, kwa hivyo ikiwa roboti itaegemea mbele ingeegemea tu kwa pembe na mbio mbele. Mwishowe, magurudumu yaliyochapishwa ya 3D yalikuwa chaguo mbaya kwani yanaendelea kuteleza.

Mapendekezo ya kuboresha:

  • Motors haraka na torque ya juu, i.e.kwa motors DC ni juu kiwango cha voltage wakati wa juu
  • pata betri nzito au songa tu misa juu zaidi
  • Badilisha magurudumu yaliyochapishwa ya 3D na yale ya mpira ili kupata mvuto zaidi

Ilipendekeza: