Sadržaj:
- Korak 1: Zašto koristiti inercijalnu mjernu jedinicu?
- Korak 2: Kako koristiti BNO055 za 2D lokalizaciju?
- Korak 3: Hardverska tačka Vue -a
- Korak 4: Kako to funkcionira?
- Korak 5: Arhitektura i softver
- Korak 6: Šta sam naučio?
Video: Način korištenja inercijske mjerne jedinice?: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:04
Kontekst:
Za zabavu gradim robota kojeg želim autonomno kretati unutar kuće.
To je dug posao i radim ga korak po korak.
Već sam objavio 2 uputstva na tu temu:
- jedan o izradi kodera za kotače
- jedno o wifi konekciji
Mog robota pokreću 2 istosmjerna motora uz pomoć domaćeg enkodera.
Trenutno poboljšavam kontrolu kretanja i proveo sam neko vrijeme sa žiroskopom, akcelerometrom i IMU -om. Bilo bi mi drago podijeliti ovo iskustvo.
Želite znati više o lokalizaciji? Evo članka o tome kako kombinirati umjetnu inteligenciju i ultrazvuk za lokalizaciju robota
Korak 1: Zašto koristiti inercijalnu mjernu jedinicu?
Zašto sam onda koristio IMU?
Prvi razlog je bio taj što je koder kotača dovoljno precizan da kontrolira ravno kretanje, čak ni nakon podešavanja nisam mogao postići preciznost za rotaciju manju od +- 5 stupnjeva, što nije dovoljno.
Pa sam isprobao 2 različita senzora. Prvo koristim magnetometar (LSM303D). Princip je bio jednostavan: prije rotacije odredite sjevernu orijentaciju, izračunajte cilj i prilagodite potez dok se cilj ne dosegne. Bilo je malo bolje nego kod kodera, ali sa previše disperzije. Nakon toga sam pokušao koristiti žiroskop (L3GD20). Princip je bio samo integriranje brzine rotacije koju daje senzor za izračunavanje rotacije. I radilo je dobro. Mogao sam kontrolirati rotaciju na +- 1 stepen.
Ipak, bio sam znatiželjan da isprobam neki IMU. Odabrao sam komponentu BNO055. Proveo sam neko vrijeme da razumijem i testiram ovaj IMU. Na kraju sam odlučio izabrati ovaj senzor iz sljedećih razloga
- Mogu kontrolirati rotaciju, kao i sa L3GD20
- Mogu otkriti laganu rotaciju kada se krećem ravno
- Moram dobiti sjevernu orijentaciju za lokalizaciju robota, a kalibracija kompasa BNO055 je vrlo jednostavna
Korak 2: Kako koristiti BNO055 za 2D lokalizaciju?
BNO055 IMU je Bosch 9 -osni inteligentni senzor koji može pružiti apsolutnu orijentaciju.
Tehnički list pruža potpunu dokumentaciju. To je visokotehnološka komponenta, prilično je složen proizvod i proveo sam nekoliko sati da naučim kako funkcionira i isprobam različite načine njegove upotrebe.
Mislim da bi moglo biti korisno podijeliti ovo iskustvo.
Prvo sam koristio biblioteku Adafruit koja pruža dobar alat za kalibraciju i otkrivanje senzora.
Na kraju i nakon puno testova odlučio sam
- biblioteku Adafruit koristite samo za spremanje kalibracije
- koristite 3 od svih mogućih načina rada BNO055 (NDOF, IMU, Compss)
- posveti Arduino Nano za izračunavanje lokalizacije na osnovu BNO055 mjerenja
Korak 3: Hardverska tačka Vue -a
BNO055 je I2C komponenta. Zato mu je potrebno napajanje, SDA i SCL za komunikaciju.
Samo pazite na Vdd napon u skladu s proizvodom koji ste kupili. Bosch čip radi u rasponu: 2,4 V do 3,6 V i možete pronaći komponente od 3,3 V i 5 V.
Nema poteškoća pri povezivanju Nano i BNO055.
- BNO055 pokreće Nano
- SDA i SCL su povezani sa 2 x 2k pull-up otpornicima.
- 3 LED spojena na Nano za dijagnostiku (s otpornicima)
- 2 konektora koji se koriste za definiranje načina rada nakon pokretanja
- 1 konektor prema BNO (Gnd, Vdd, Sda, Scl, Int)
- 1 konektor prema Robotu/Mega (+9V, Gnd, sda, Scl, Pin11, Pin12)
Malo lemljenja i to je to!
Korak 4: Kako to funkcionira?
S komunikacijske točke vue:
- Nano je magistar I2C sabirnice
- Robot/Mega i BNO055 su I2C robovi
- Nano trajno čita BNO055 registre
- Robot/Mega podiže numerički signal kako bi zatražio riječ od Nano
Od tačke proračuna vue: Nano u kombinaciji sa BNO055 isporučuje
- Zaglavlje kompasa (koristi se za lokalizaciju)
- Relativni naslov (koristi se za kontrolu rotacija)
- Apsolutni smjer i položaj (koristi se za kontrolu poteza)
Sa funkcionalne tačke gledišta: Nano:
- upravlja kalibracijom BNO055
- upravlja parametrima i naredbama BNO055
Podsistem Nano & BNO055:
- izračunajte za svaki robotski kotač apsolutni smjer i lokalizaciju (s faktorom razmjera)
- izračunati relativni smjer tokom rotacije robota
Korak 5: Arhitektura i softver
Glavni softver radi na Arduino Nano -u
- Arhitektura se temelji na I2C komunikaciji.
- Odlučio sam se za posvećivanje Nanoa zbog činjenice da je Atmega koja pokreće robota već bila prilično učitana i da je zbog ove arhitekture najlakše za ponovnu upotrebu na drugom mjestu.
- Nano čita registre BNO055, izračunava i pohranjuje zaglavlje i lokalizaciju u svoje registre.
- Arduino Atmega koji pokreće kod robota, šalje podatke kodera kotača u Nano i čita naslove i lokalizaciju unutar Nano registara.
Kod podsistema (Nano) dostupan je ovdje na GitHubu
Alat za kalibraciju Adafruit ako je ovdje na GitHubu (kalibracija će biti pohranjena na eeproom -u)
Korak 6: Šta sam naučio?
Vezano za I2C
Prvo sam pokušao imati 2 master (Arduino) i 1 slave (senzor) na istoj sabirnici, ali na kraju je moguće i najjednostavnije postaviti samo Nano kao glavnog i koristiti GPIO vezu između 2 Arduina da "zatraži token".
Vezano za BNO055 za 2D orijentaciju
Mogu se koncentrirati na 3 različita načina rada: NDOF (kombinovani žiroskop, akcelerometar i kompas) kada je robot u mirovanju, IMU (kombinovani žiroskop, akcelerometar) kada se robot kreće i kompas u fazi lokalizacije. Prebacivanje između ovih načina rada je jednostavno i brzo.
Da bih smanjio veličinu koda i zadržao mogućnost korištenja prekida BNO055 za otkrivanje sudara, radije ne bih koristio biblioteku Adafruit i to činio sam.
Preporučuje se:
CCTV kamera sa NodeMCU + modulom kamere starog prijenosnog računala (sa i bez korištenja Blynka): 5 koraka
CCTV kamera sa NodeMCU + modulom kamere starog prijenosnog računara (sa i bez korištenja Blynka): Zdravo momci! U ovom uputstvu ću vam pokazati kako sam koristio modul kamere za stari laptop i nodeMCU da napravim nešto slično CCTV -u
Jednostavan način korištenja Makeyja Makeyja s tehničkom palubom: 5 koraka
Jednostavan način korištenja Makeyja Makeyja s tehničkom palubom: Zdravo. Nedavno sam na ovom takmičenju vidio tehnički špil makey makey programa koji je bio zaista kul, ali mi se činio naporan pa sam napravio jednostavan način za igranje igara sa tehničkim špilom. Ako vam se sviđa moja instrukcija, glasajte za nju na takmičenju makey makey
Dot Jump igra (bez korištenja Arduina): 6 koraka
Dot Jump igra (bez korištenja Arduina): PregledZdravo! Ja sam Shivansh, student IIIT-Hyderabad. Ovdje sam sa svojim prvim uputstvom koje je igra inspirisana igrom Dinosaur Jump Google Chrome. Igra je jednostavna: Preskočite dolazeće prepreke kako biste osvojili bod. Ako ti
Nadogradnja radijskog sata - postavljanje Bluetooth jedinice: 6 koraka
Nadogradnja radijskog sata-Uklapanje Bluetooth jedinice: Dva su dijela ove izmjene, jedan je postojeći Radio sa satom, a drugi je "Integrirana Bluetooth handsfree MP3 dekoder ploča ZTV-M01BT Shell & Daljinski upravljač " kojem će trebati dodatno audio pojačalo. Sat
Spašavanje disketne jedinice: 3 koraka
Spašavanje diskete: Pišem ovo jer sam htio početi petljati po koračnim motorima i znao sam da imam jednu u nekorištenoj disketi. Pročitao sam nedavno pročitani članak o spašavanju dijelova mišahttp: //hackaday.com/2008/05/16/how-to-scavenge-a-mouse-for-parts/I th