Orodha ya maudhui:

Njia ya Kutumia Kitengo cha Upimaji wa Inertial? 6 Hatua
Njia ya Kutumia Kitengo cha Upimaji wa Inertial? 6 Hatua

Video: Njia ya Kutumia Kitengo cha Upimaji wa Inertial? 6 Hatua

Video: Njia ya Kutumia Kitengo cha Upimaji wa Inertial? 6 Hatua
Video: Зарядное устройство на 20 А с компьютерным блоком питания - от 220 В переменного тока до 2024, Novemba
Anonim
Njia ya Kutumia Kitengo cha Upimaji wa Inertial?
Njia ya Kutumia Kitengo cha Upimaji wa Inertial?

Muktadha:

Ninajijengea roboti ya kufurahisha ambayo ninataka kusonga kwa uhuru ndani ya nyumba.

Ni kazi ndefu na ninafanya hatua kwa hatua.

Tayari nilichapisha mafundisho 2 juu ya mada hiyo:

  • moja juu ya kutengeneza encoder ya gurudumu
  • moja kuhusu unganisho la wifi

Roboti yangu inaendeshwa na motors 2 DC kwa msaada wa encoder ya gurudumu nyumbani kwangu.

Hivi sasa ninaboresha udhibiti wa kusonga na nimetumia muda na gyroscope, accelerometer na IMU. Ningefurahi kushiriki uzoefu huu.

Unataka kujua zaidi juu ya ujanibishaji? Hapa kuna nakala juu ya jinsi ya kuchanganya akili na bandia za bandia ili kupanga roboti

Hatua ya 1: Kwanini utumie Kitengo cha Upimaji wa Inertial?

Kwa nini utumie Kitengo cha Upimaji wa Inertial?
Kwa nini utumie Kitengo cha Upimaji wa Inertial?

Kwa nini nilitumia IMU?

Sababu ya kwanza ilikuwa kwamba ikiwa encoder ya gurudumu ni sahihi ya kutosha kudhibiti mwendo wa moja kwa moja, hata baada ya kusanikisha sikuweza kupata usahihi wa kuzunguka chini ya digrii + - 5 na hiyo haitoshi.

Kwa hivyo nilijaribu sensorer 2 tofauti. Kwanza mimi hutumia sumaku ya umeme (LSM303D). Kanuni hiyo ilikuwa rahisi: kabla ya mzunguko kupata mwelekeo wa kaskazini, hesabu lengo na urekebishe hoja hadi lengo lifikiwe. Ilikuwa bora kidogo kuliko na encoder lakini kwa utawanyiko pia. Baada ya hapo nilijaribu kutumia gyroscope (L3GD20). Kanuni hiyo ilikuwa tu kuunganisha kasi ya mzunguko inayotolewa na sensor ili kuhesabu mzunguko. Na ilifanya kazi vizuri. Niliweza kudhibiti mzunguko saa + 1 digrii.

Walakini nilikuwa na hamu ya kujaribu IMU. Ninachagua sehemu ya BNO055. Nilitumia muda kuelewa na kujaribu IMU hii. Mwishowe niliamua kuchagua kihisi hiki kwa sababu za kufuata

  • Ninaweza kudhibiti mzunguko na vile vile na L3GD20
  • Ninaweza kugundua mzunguko kidogo wakati wa kusonga moja kwa moja
  • Ninahitaji kupata mwelekeo wa kaskazini kwa ujanibishaji wa roboti na hesabu ya dira ya BNO055 ni rahisi sana

Hatua ya 2: Jinsi ya Kutumia BNO055 kwa ujanibishaji wa 2D?

Jinsi ya Kutumia BNO055 kwa ujanibishaji wa 2D?
Jinsi ya Kutumia BNO055 kwa ujanibishaji wa 2D?

BNO055 IMU ni sensa ya akili ya mhimili wa Bosch 9 ambayo inaweza kutoa mwelekeo kamili.

Jedwali hutoa hati kamili. Ni sehemu ya teknolojia ya hali ya juu ni bidhaa ngumu sana na nilitumia masaa kadhaa kujifunza jinsi inavyofanya kazi na kujaribu njia tofauti za kuitumia.

Nadhani inaweza kuwa na faida kushiriki uzoefu huu.

Kwanza nilitumia maktaba ya Adafruit ambayo hutoa zana nzuri ya kupima na kugundua sensa.

Mwishowe na baada ya vipimo vingi niliamua

  • tumia maktaba ya Adafruit kuokoa calibration tu
  • tumia njia 3 kati ya zote zinazowezekana za BNO055 (NDOF, IMU, Compss)
  • jitolea Arduino Nano kuhesabu ujanibishaji kulingana na ujumbe wa BNO055

Hatua ya 3: Vifaa vya vifaa vya Vue

Kiwango cha vifaa vya mtazamo
Kiwango cha vifaa vya mtazamo
Kiwango cha vifaa vya mtazamo
Kiwango cha vifaa vya mtazamo
Kiwango cha vifaa vya mtazamo
Kiwango cha vifaa vya mtazamo

BNO055 ni sehemu ya I2C. Kwa hivyo inahitaji usambazaji wa umeme, SDA na SCL kuwasiliana.

Jihadharini tu na voltage ya Vdd kulingana na bidhaa uliyonunua. Chip ya Bosch inafanya kazi katika anuwai: 2.4V hadi 3.6V na unaweza kupata sehemu ya 3.3v na 5v.

Hakuna ugumu wa kuunganisha Nano na BNO055.

  • BNO055 inaendeshwa na Nano
  • SDA & SCL zimeunganishwa na 2x 2k vipinzani vya kuvuta.
  • 3 LED imeunganishwa na Nano kwa uchunguzi (na vipinga)
  • Viunganisho 2 vilivyotumiwa kufafanua hali baada ya boot
  • Kontakt 1 kuelekea BNO (Gnd, Vdd, Sda, Scl, Int)
  • Kontakt 1 kuelekea Robot / Mega (+ 9V, Gnd, sda, Scl, Pin11, Pin12)

Soldering kidogo na ndio hiyo!

Hatua ya 4: Inafanyaje Kazi?

Inafanyaje kazi ?
Inafanyaje kazi ?

Kutoka kwa mawasiliano ya mtazamo:

  • Nano ni bwana wa basi wa I2C
  • Robot / Mega na BNO055 ni watumwa wa I2C
  • Nano alisoma kabisa sajili za BNO055
  • Robot / Mega huinua ishara ya nambari kuomba neno kutoka kwa Nano

Kutoka kwa hesabu ya hesabu: Nano pamoja na BNO055 hutoa

  • Kichwa cha dira (kinatumika kwa ujanibishaji)
  • Kichwa cha jamaa (kinatumika kudhibiti mizunguko)
  • Kichwa kamili na msimamo (uliotumika kudhibiti harakati)

Kutoka kwa hatua ya utendaji: Nano:

  • inasimamia usawa wa BNO055
  • inasimamia vigezo na amri za BNO055

Mfumo mdogo wa Nano & BNO055:

  • hesabu kwa kila magurudumu ya roboti kichwa kamili na ujanibishaji (na sababu ya kiwango)
  • hesabu kichwa cha jamaa wakati wa kuzunguka kwa roboti

Hatua ya 5: Usanifu na Programu

Usanifu na Programu
Usanifu na Programu

Programu kuu inaendesha Arduino Nano

  • Usanifu unategemea mawasiliano ya I2C.
  • Nilichagua kujitolea Nano kwa sababu ya ukweli kwamba Atmega inayoendesha roboti ilikuwa tayari imeshapakiwa na usanifu huu hufanya iwe rahisi kutumia tena mahali pengine.
  • Nano inasoma rejista za BNO055, hesabu na kuhifadhi kichwa na ujanibishaji katika rejista zake.
  • Arduino Atmega ambayo inaendesha nambari ya roboti, hutuma habari za usimbuaji magurudumu kwa Nano na kusoma vichwa na ujanibishaji ndani ya sajili za Nano.

Nambari ya subsytem (Nano) inapatikana hapa kwenye GitHub

Chombo cha upimaji wa Adafruit ikiwa hapa kwenye GitHub (upimaji utahifadhiwa kwenye chumba cha kulala)

Hatua ya 6: Nimejifunza Nini?

Kuhusu I2C

Kwanza nilijaribu kuwa na mabwana 2 (Arduino) na 1 mtumwa (sensa) kwenye basi moja lakini mwishowe inawezekana na rahisi kuweka Nano tu kama bwana na kutumia unganisho la GPIO kati ya 2 Arduinos "kuomba ishara".

Kuhusu BNO055 kwa mwelekeo wa 2D

Ninaweza kuzingatia njia tatu tofauti za kukimbia: NDOF (unganisha gyroscope, accelerometer na Compas) wakati roboti iko wavivu, IMU (changanya gyroscope, accelerometer) wakati roboti inahamia na Dira wakati wa ujanibishaji. Kubadilisha kati ya njia hizi ni rahisi na haraka.

Ili kupunguza saizi ya msimbo na kuweka uwezekano tu tumia BNO055 kukatiza kugundua mgongano, napendelea kutotumia maktaba ya Adafruit na kuifanya peke yangu.

Ilipendekeza: