Talaan ng mga Nilalaman:
- Hakbang 1: Bakit Gumagamit ng isang Yunit ng Pagsukat ng Inertial?
- Hakbang 2: Paano Gumamit ng BNO055 para sa Lokalisasyong 2D?
- Hakbang 3: Hardware Point ng Vue
- Hakbang 4: Paano Ito Gumagana?
- Hakbang 5: Ang Arkitektura at Software
- Hakbang 6: Ano ang Natutuhan Ko?
Video: Isang Paraan upang Makagamit ng isang Yunit ng Pagsukat ng Inertial?: 6 Mga Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:10
Ang konteksto:
Binubuo ko para sa kasiyahan ang isang robot na nais kong ilipat nang autonomiya sa loob ng isang bahay.
Ito ay isang mahabang trabaho at gumagawa ako ng hakbang-hakbang.
Nag-publish na ako ng 2 mga itinuturo sa paksang iyon:
- isa tungkol sa paggawa ng isang encoder ng gulong
- isa tungkol sa koneksyon sa wifi
Ang aking robot ay hinihimok ng sa 2 DC motors sa tulong ng aking home-wheel gulong encoder.
Kasalukuyan kong pinapabuti ang gumagalaw na kontrol at gumugol ng ilang oras sa gyroscope, accelerometer at IMU. Nais kong ibahagi ang karanasang ito.
Nais mong malaman ang tungkol sa lokalisasyon? Narito ang isang artikulo tungkol sa kung paano pagsamahin ang artipisyal na intelihensiya at mga ultrasound upang i-localize ang robot
Hakbang 1: Bakit Gumagamit ng isang Yunit ng Pagsukat ng Inertial?
Kaya bakit ako gumamit ng isang IMU?
Ang unang dahilan ay kung ang gulong encoder ay tumpak na sapat upang makontrol ang tuwid na paglipat, kahit na pagkatapos ng pag-tune ay hindi ako nakakuha ng isang katumpakan para sa pag-ikot mas mababa sa + - 5 degres at iyon ay hindi sapat.
Kaya sinubukan ko ang 2 magkakaibang mga sensor. Una gumamit ako ng isang magnetometer (LSM303D). Ang prinsipyo ay simple: bago paikutin ang hilagang oryentasyon, kalkulahin ang target at ayusin ang paglipat hanggang maabot ang target. Ito ay isang maliit na mas mahusay kaysa sa encoder ngunit may masyadong pagpapakalat. Pagkatapos nito sinubukan kong gumamit ng isang gyroscope (L3GD20). Ang prinsipyo ay upang maisama lamang ang bilis ng pag-ikot na ibinigay ng sensor upang makalkula ang pag-ikot. At gumana ito ng maayos. Nakontrol ko ang pag-ikot sa + - 1 degre.
Gayunpaman ako ay nagtataka upang subukan ang ilang IMU. Pumili ako ng isang sangkap ng BNO055. Gumugol ako ng ilang oras upang maunawaan at subukan ang IMU na ito. Sa huli nagpasya akong piliin ang sensor na ito para sa mga sumusunod na kadahilanan
- Maaari kong makontrol ang pag-ikot pati na rin sa L3GD20
- Mahahalata ko ang bahagyang pag-ikot kapag dumidiretso
- Kailangan kong makakuha ng orientation ng hilaga para sa localization ng robot at ang pagkakalibrate ng kompas ng BNO055 ay napaka-simple
Hakbang 2: Paano Gumamit ng BNO055 para sa Lokalisasyong 2D?
Ang BNO055 IMU ay isang Bosch 9 axis na matalinong sensor na maaaring magbigay ng ganap na oryentasyon.
Nagbibigay ang datasheet ng isang kumpletong dokumentasyon. Ito ay isang high tech na sangkap ito ay isang kumplikadong produkto at ginugol ko ng ilang oras upang malaman kung paano ito gumagana at subukan ang iba't ibang mga paraan ng paggamit nito.
Sa palagay ko maaaring maging kapaki-pakinabang upang ibahagi ang karanasang ito.
Una ginamit ko ang Adafruit library na nagbibigay ng isang mahusay na tool upang i-calibrate at tuklasin ang sensor.
Sa pagtatapos at pagkatapos ng maraming pagsubok ay nagpasya akong
- gumamit ng Adafruit library para sa pag-save lamang ng pagkakalibrate
- gumamit ng 3 sa lahat ng mga posibleng mode ng BNO055 (NDOF, IMU, Compss)
- italaga ang isang Arduino Nano upang makalkula ang lokalisasyon batay sa BNO055 mesurments
Hakbang 3: Hardware Point ng Vue
Ang BNO055 ay isang bahagi ng I2C. Kaya kailangan nito ng supply ng kuryente, SDA at SCL upang makipag-usap.
Mag-ingat lamang sa Vdd boltahe alinsunod sa produktong iyong binili. Gumagana ang chip ng Bosch sa saklaw: 2.4V hanggang 3.6V at mahahanap mo ang bahagi ng 3.3v at 5v.
Walang mga paghihirap para sa pagkonekta sa Nano at sa BNO055.
- Ang BNO055 ay pinalakas ng Nano
- Ang SDA & SCL ay konektado sa 2 x 2k pull-up resistors.
- 3 LED na konektado sa Nano para sa diagnosis (na may resistors)
- 2 konektor ang ginamit upang tukuyin ang mode pagkatapos ng boot
- 1 konektor patungo sa BNO (Gnd, Vdd, Sda, Scl, Int)
- 1 konektor patungo sa Robot / Mega (+ 9V, Gnd, sda, Scl, Pin11, Pin12)
Kaunting paghihinang at iyon na!
Hakbang 4: Paano Ito Gumagana?
Mula sa punto ng komunikasyon ng vue:
- Ang Nano ay ang master ng bus ng I2C
- Ang Robot / Mega at ang BNO055 ay mga alipin ng I2C
- Permanenteng binasa ng Nano ang mga rehistro ng BNO055
- Ang Robot / Mega ay tumataas ng isang numerong signal upang humiling ng salita mula sa Nano
Mula sa punto ng pagkalkula ng vue: Ang Nano na sinamahan ng BNO055 ay naghahatid
- Ang heading ng compass (ginamit para sa localization)
- Isang kamag-anak na heading (ginagamit upang makontrol ang mga pag-ikot)
- Ang ganap na heading at posisyon (ginamit upang makontrol ang mga paggalaw)
Mula sa functional point ng vue: Ang Nano:
- namamahala sa pagkakalibrate ng BNO055
- namamahala sa mga parameter at utos ng BNO055
Ang subsystem Nano at BNO055:
- kalkulahin para sa bawat gulong ng robot ang ganap na heading at lokalisasyon (na may sukat na sukat)
- kalkulahin ang kamag-anak na heading habang umiikot ng robot
Hakbang 5: Ang Arkitektura at Software
Ang pangunahing software ay tumatakbo sa isang Arduino Nano
- Ang arkitektura ay batay sa komunikasyon ng I2C.
- Pinili kong italaga ang isang Nano dahil sa ang katunayan na ang Atmega na nagpapatakbo ng robot ay na-load na at ang arkitekturang ito ay ginagawang pinakamadaling gamitin muli sa ibang lugar.
- Binabasa ng Nano ang mga rehistro ng BNO055, compute at store heading at localization sa sarili nitong mga rehistro.
- Ang Arduino Atmega na nagpapatakbo ng robot code, nagpapadala ng impormasyon ng mga gulong na naka-encode sa Nano at binasa ang mga heading at lokalisasyon sa loob ng mga rehistro ng Nano.
May magagamit na subsytem (Nano) code dito sa GitHub
Ang tool ng pagkakalibrate ng Adafruit kung dito sa GitHub (ang pagkakalibrate ay itatabi sa eeproom)
Hakbang 6: Ano ang Natutuhan Ko?
Tungkol sa I2C
Una sinubukan kong magkaroon ng 2 masters (Arduino) at 1 alipin (sensor) sa parehong bus ngunit sa huli posible at pinakamadaling itakda lamang ang Nano bilang master at gamitin ang koneksyon ng GPIO sa pagitan ng 2 Arduinos upang "humiling ng token".
Tungkol sa BNO055 para sa orientasyong 2D
Maaari akong tumutok sa 3 magkakaibang mga mode na tumatakbo: NDOF (pagsamahin ang gyroscope, accelerometer at Compas) kapag ang robot ay walang ginagawa, IMU (pagsamahin ang gyroscope, accelerometer) kapag ang robot ay gumagalaw at Compass sa panahon ng lokalisasyon. Ang paglipat sa pagitan ng mga mode na ito ay madali at mabilis.
Upang mabawasan ang laki ng code at panatilihin ang posibilidad na gamitin ang BNO055 makagambala upang makita ang salpukan, mas gusto kong hindi gamitin ang Adafruit library at gawin ito sa aking sarili.
Inirerekumendang:
ActoKids: isang Bagong Paraan upang Makahanap ng Mga Aktibidad: 11 Mga Hakbang
ActoKids: isang Bagong Paraan upang Makahanap ng Mga Aktibidad: Mahalagang panatilihin ang mga bata ng lahat ng edad at kakayahan na aktibo at makisali sa kanilang mga pamayanan. Ang pakikilahok sa mga aktibidad ay tumutulong sa mga bata na manatiling malusog, bumuo ng pagkakaibigan, bumuo ng mga kasanayan, at palakasin ang pagkamalikhain. Gayunpaman, ang paghahanap ng impormasyon tungkol sa isang
Isang Bagong Paraan upang Makontrol ang Arduino isang RC Car: 7 Hakbang (na may Mga Larawan)
Isang Bagong Daan sa Pagkontrol ng Arduino ng isang RC Car: Nagawa ko na ang ilang trabaho sa mga kontroladong kotse ng Arduino, ngunit ang mga pinagtrabahuhan ko ay palaging mabagal at mag-pamamaraan. Magaling ito kapag natututo ng arduino, ngunit may nais ako ng kaunti pa … masaya. Ipasok ang kotse ng RC. Ang mga kotse ng RC ay literal na idinisenyo upang maging isang
Madaling Paraan upang Gumawa ng isang Water Jug Gamit ang Fusion 360: 5 Mga Hakbang (na may Mga Larawan)
Madaling Paraan upang Gumawa ng isang Water Jug Gamit ang Fusion 360: Ito ay isang perpektong proyekto ang lahat ng mga nagsisimula na gumagamit ng Fusion 360. Napakadaling gawin. Isaalang-alang ito ng isang sample na proyekto at lumikha ng iyong sariling mga disenyo ng pitsel. Nagdagdag din ako ng isang video na muling ginawa sa Fusion 360. Sa palagay ko hindi mo kailangang malaman kung paano
12 Mga Paraan upang Hawakin ang Iyong Mga Coin-cell: 13 Mga Hakbang (na may Mga Larawan)
12 Mga Paraan upang Hawakin ang Iyong Mga Coin-cell: Isang koleksyon ng iba't ibang mga paraan upang mag-imbak ng mga baterya ng coin-cell (CR2032). Ang bawat hakbang ay naglalarawan ng iba't ibang pamamaraan sa mga larawan at mayroong isang link sa karagdagang dokumentasyon kung saan naaangkop
Ilang mga Paraan upang Itago ang Data sa isang Computer: 9 Mga Hakbang
Ilang mga Paraan upang Itago ang Data sa isang Computer: Kung interesado ka sa pag-coding o pag-script ng batch, tingnan ang aking pinakabagong Ible dito. Maraming tao ang hindi makakagawa ng higit pa sa isang computer kaysa mag-type ng isang dokumento ng Word o gumawa ng isang " larawan ", na tinatawag na, sa Paint. Syempre karamihan sa mga taong nagbabasa ng instruc na ito