Sisukord:
- Samm: miks kasutada inertsiaalset mõõteseadet?
- Samm: kuidas kasutada BNO055 2D lokaliseerimiseks?
- 3. samm: riistvara punkt Vue
- 4. samm: kuidas see toimib?
- Samm: arhitektuur ja tarkvara
- 6. samm: mida ma õppisin?
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:46
Kontekst:
Ma ehitan oma lõbuks robotit, mida tahan majas iseseisvalt liigutada.
See on pikk töö ja ma teen seda samm -sammult.
Ma avaldasin sellel teemal juba 2 juhendit:
- üks ratta kodeerija tegemisest
- üks wifi -ühenduse kohta
Minu robotit juhivad minu kodus valmistatud rattakodeerija abil kaks alalisvoolumootorit.
Parandan praegu liigutamise juhtimist ja olen mõnda aega veetnud güroskoobi, kiirendusmõõturi ja IMU -ga. Jagan hea meelega seda kogemust.
Kas soovite lokaliseerimise kohta rohkem teada saada? Siin on artikkel, kuidas kombineerida tehisintellekti ja ultraheli roboti lokaliseerimiseks
Samm: miks kasutada inertsiaalset mõõteseadet?
Miks ma siis IMU -d kasutasin?
Esimene põhjus oli see, et kui rataste kodeerija on sirgjoonelise liikumise juhtimiseks piisavalt täpne, ei suutnud ma isegi pärast tunnelimist saada täpsust pöörlemisel alla +- 5 kraadi ja sellest ei piisa.
Nii proovisin 2 erinevat andurit. Esiteks kasutan magnetomeetrit (LSM303D). Põhimõte oli lihtne: enne pöörlemist pöörake põhja suunas, arvutage sihtmärk ja reguleerige käiku, kuni sihtmärk on saavutatud. See oli natuke parem kui kodeerijaga, kuid liiga hajutatud. Pärast seda proovisin kasutada güroskoopi (L3GD20). Põhimõte oli lihtsalt anduri poolt ette nähtud pöörlemiskiiruse integreerimine pöörlemise arvutamiseks. Ja see töötas hästi. Pöörlemist suutsin reguleerida +- 1 kraadi juures.
Sellegipoolest oli mul uudishimulik proovida mõnda IMU -d. Valin komponendi BNO055. Kulutasin mõnda aega selle IMU mõistmiseks ja testimiseks. Lõpuks otsustasin selle anduri valida järgmistel põhjustel
- Pöörlemist saan juhtida sama hästi kui L3GD20
- Suudan otse liikudes tuvastada kerget pöörlemist
- Pean roboti lokaliseerimiseks põhja poole saama ja BNO055 kompassi kalibreerimine on väga lihtne
Samm: kuidas kasutada BNO055 2D lokaliseerimiseks?
BNO055 IMU on Boschi 9 -teljeline intelligentne andur, mis võib pakkuda absoluutset orientatsiooni.
Andmeleht sisaldab täielikku dokumentatsiooni. See on kõrgtehnoloogiline komponent, see on üsna keeruline toode ja veetsin mõned tunnid, et õppida selle toimimist ja proovida erinevaid kasutusviise.
Arvan, et sellest kogemusest oleks kasu.
Esiteks kasutasin Adafruit raamatukogu, mis pakub head tööriista anduri kalibreerimiseks ja avastamiseks.
Lõpuks ja pärast paljusid katseid otsustasin
- kasutage Adafruit raamatukogu ainult kalibreerimise säästmiseks
- kasutage 3 võimalikku BNO055 režiimi (NDOF, IMU, Compss)
- pühendage Arduino Nano lokaliseerimise arvutamiseks BNO055 mõõtmiste põhjal
3. samm: riistvara punkt Vue
BNO055 on I2C komponent. Seega vajab see suhtlemiseks toiteallikat, SDA -d ja SCL -i.
Lihtsalt hoolitsege Vdd pinge eest vastavalt ostetud tootele. Boschi kiip töötab vahemikus: 2,4 V kuni 3,6 V ning leiate 3,3 ja 5 v komponendi.
Nano ja BNO055 ühendamisel pole raskusi.
- BNO055 toiteallikaks on Nano
- SDA ja SCL on ühendatud 2 x 2k tõmbetakistiga.
- 3 LED -i, mis on diagnoosimiseks ühendatud Nano -ga (takistitega)
- 2 pistikut, mida kasutatakse režiimi määratlemiseks pärast käivitamist
- 1 pistik BNO poole (Gnd, Vdd, Sda, Scl, Int)
- 1 pistik roboti/mega poole (+9V, Gnd, sda, Scl, Pin11, Pin12)
Natuke jootmist ja ongi kõik!
4. samm: kuidas see toimib?
Suhtluspunktist:
- Nano on I2C bussimeister
- Robot/Mega ja BNO055 on I2C orjad
- Nano luges pidevalt BNO055 registreid
- Robot/Mega tõstab numbrilise signaali, et Nanolt sõna küsida
Arvutuspunktist: Nano koos BNO055 -ga annab tulemuse
- Kompassi pealkiri (kasutatakse lokaliseerimiseks)
- Suhteline rubriik (kasutatakse pöörete juhtimiseks)
- Absoluutne suund ja asukoht (kasutatakse käikude juhtimiseks)
Funktsionaalsest punktist: Nano:
- juhib BNO055 kalibreerimist
- haldab BNO055 parameetreid ja käske
Allsüsteem Nano & BNO055:
- arvutage iga robotratta absoluutne suund ja lokaliseerimine (skaalafaktoriga)
- arvutage suhteline suund roboti pöörlemise ajal
Samm: arhitektuur ja tarkvara
Peamine tarkvara töötab Arduino Nano peal
- Arhitektuur põhineb I2C kommunikatsioonil.
- Otsustasin pühendada Nano tänu sellele, et robotit käivitav Atmega oli üsna juba laaditud ja selle arhitektuuri abil on mujal hõlpsam taaskasutada.
- Nano loeb BNO055 registreid, arvutab ja salvestab pealkirja ja lokaliseerimise oma registritesse.
- Arduino Atmega, mis juhib robotikoodi, saadab ratastele kodeerijatele teavet Nano ja loeb Nano registrite pealkirju ja lokaliseerimist.
Seal on alamsüsteemi (Nano) kood saadaval siin GitHubis
Adafruit'i kalibreerimistööriist, kui see on siin GitHubis (kalibreerimine salvestatakse eeproomile)
6. samm: mida ma õppisin?
I2C kohta
Esiteks proovisin, et samas bussis oleks 2 meistrit (Arduino) ja 1 alam (andur), kuid lõpuks on võimalik ja kõige lihtsam seadistada ainult Nano masteriks ja kasutada 2 Arduino vahelist GPIO -ühendust, et "tokenit taotleda".
Seoses BNO055 -ga 2D -orientatsiooni jaoks
Saan keskenduda kolmele erinevale töörežiimile: NDOF (kombineeri güroskoop, kiirendusmõõtur ja kompas), kui robot on jõude, IMU (kombineeritud güroskoop, kiirendusmõõtur), kui robot liigub, ja kompass lokaliseerimise faasis. Nende režiimide vahel vahetamine on lihtne ja kiire.
Koodi suuruse vähendamiseks ja kokkupõrke tuvastamiseks BNO055 katkestamise võimaluse säilitamiseks eelistan ma Adafruit'i teeki mitte kasutada ja teha seda iseseisvalt.
Soovitan:
Traadita temperatuuri- ja vibratsioonisensorite kasutamise alustamine: 7 sammu
Traadita temperatuuri- ja vibratsioonisensorite kasutamisega alustamine: Mõnikord põhjustab vibratsioon paljudes rakendustes tõsiseid probleeme. Alates masina võllidest ja laagritest kuni kõvaketta jõudluseni põhjustab vibratsioon masina kahjustusi, varajast väljavahetamist, madalat jõudlust ja mõjutab oluliselt täpsust. Jälgimine
Raspberry Pi seadistamine ja selle kasutamise alustamine: 4 sammu
Kuidas seadistada Raspberry Pi ja hakata seda kasutama: Tuleviku lugejate jaoks oleme aastal 2020. Aasta, kui teil veab, et olete terve ja ei ole Covid-19 nakatunud, ootamatult , sai palju rohkem vaba aega kui oskasite arvata. Niisiis, kuidas ma saan end mitte liiga rumalalt hõivata? Oh jah
Ekraaniaja kasutamise meeldetuletus (töötab ainult Windowsis, iOS ei tööta): 5 sammu
Ekraaniaja kasutamise meeldetuletus (töötab ainult Windowsis, Ios ei tööta): SissejuhatusSee on kasulik masin, mis on valmistatud Arduino'st, see tuletab teile meelde puhata, tehes " biiii! &Quot; heli ja paneb arvuti pärast 30 -minutilist ekraaniaega kasutama lukustusekraani. Pärast 10 -minutilist puhkamist "
SkiiiD Editori kasutamise alustamine: 11 sammu
SkiiiD -redaktori kasutamise alustamine: skiiiD -i redigeerija, arendusnõukogu püsivara IDEskiiiD -redaktor põhineb skiiiD -l (püsivara arendusmootor). Nüüd ühildub see Arduino UNO, MEGA ja NANO -ga, millel on üle 70 komponendi. Operatsioonisüsteem SystemmacOS / Windows Kuidas installida Külastage veebisaiti https:
Arduino ja Etherneti kasutamise alustamine: 8 sammu
Arduino ja Etherneti kasutamise alustamine: teie Arduino saab juhtmega Etherneti ühenduse kaudu välismaailmaga hõlpsalt suhelda. Kuid enne kui alustame, eeldatakse, et teil on arvutivõrgustiku põhiteadmised, näiteks teadmised arvutuse ühendamise kohta