Sadržaj:
- Korak 1: Zašto koristiti inercijsku mjernu jedinicu?
- Korak 2: Kako koristiti BNO055 za 2D lokalizaciju?
- Korak 3: Hardverska točka Vue
- Korak 4: Kako to funkcionira?
- Korak 5: Arhitektura i softver
- Korak 6: Što sam naučio?
Video: Način korištenja inercijske mjerne jedinice?: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:32
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
- jedan o wifi vezi
Mog robota pokreću dva 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 li znati više o lokalizaciji? Evo članka o tome kako kombinirati umjetnu inteligenciju i ultrazvuk za lokalizaciju robota
Korak 1: Zašto koristiti inercijsku mjernu jedinicu?
Zašto sam onda koristio IMU?
Prvi razlog bio je taj što ako je koder kotača dovoljno precizan da kontrolira ravno kretanje, čak i nakon ugađanja nisam mogao postići preciznost za rotaciju manju od +- 5 stupnjeva, a to nije dovoljno.
Pa sam isprobao 2 različita senzora. Prvo koristim magnetometar (LSM303D). Princip je bio jednostavan: prije rotacije postavite sjevernu orijentaciju, izračunajte cilj i prilagodite potez dok se cilj ne dosegne. Bilo je malo bolje nego s enkoderom, ali s previše disperzije. Nakon toga sam pokušao upotrijebiti žiroskop (L3GD20). Princip je bio samo integriranje brzine rotacije koju daje senzor za izračunavanje rotacije. I radilo je dobro. Uspio sam kontrolirati rotaciju pri +- 1 stupnju.
Ipak, bio sam znatiželjan isprobati neki IMU. Biram komponentu BNO055. Proveo sam neko vrijeme kako bih razumio i testirao ovaj IMU. Na kraju sam odlučio odabrati ovaj senzor iz sljedećih razloga
- Mogu kontrolirati rotaciju, kao i s 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 Boschev 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 kako bih naučio kako radi i isprobao različite načine njegove uporabe.
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
- koristiti 3 od svih mogućih načina rada BNO055 (NDOF, IMU, Compss)
- posvetiti Arduino Nano za izračunavanje lokalizacije na temelju BNO055 poruka
Korak 3: Hardverska točka Vue
BNO055 je komponenta I2C. Za komunikaciju mu je potrebno napajanje, SDA i SCL.
Samo pazite na Vdd napon prema proizvodu koji ste kupili. Bosch čip radi u rasponu: 2,4 V do 3,6 V, a 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 spojeni su 2 x 2k pull-up otpornicima.
- 3 LED spojena na Nano za dijagnostiku (s otpornicima)
- 2 konektora za definiranje načina rada nakon pokretanja
- 1 konektor prema BNO (Gnd, Vdd, Sda, Scl, Int)
- 1 priključak 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 sabirnica
- Robot/Mega i BNO055 su I2C robovi
- Nano trajno čita registre BNO055
- Robot/Mega podiže numerički signal kako bi zatražio riječ od Nano
Od točke proračuna vue: Nano u kombinaciji s 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)
S funkcionalne točke gledišta: Nano:
- upravlja kalibracijom BNO055
- upravlja parametrima i naredbama BNO055
Podsistem Nano & BNO055:
- izračunati za svaki kotač robota apsolutni smjer i lokalizaciju (s faktorom razmjera)
- izračunati relativni smjer tijekom rotacije robota
Korak 5: Arhitektura i softver
Glavni softver radi na Arduino Nano -u
- Arhitektura se temelji na I2C komunikaciji.
- Odlučio sam se posvetiti Nanou zbog činjenice da je Atmega koja pokreće robota već bila prilično učitana i da je zbog ove arhitekture najjednostavnije ponovno korištenje na drugom mjestu.
- Nano čita registre BNO055, izračunava i pohranjuje zaglavlje i lokalizaciju u vlastite 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 eeproomu)
Korak 6: Što 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 za "traženje tokena".
Vezano za BNO055 za 2D orijentaciju
Mogu se koncentrirati na 3 različita načina rada: NDOF (kombinirati žiroskop, akcelerometar i kompas) dok je robot u mirovanju, IMU (kombinirani žiroskop, akcelerometar) dok se robot kreće i kompas tijekom faze lokalizacije. Prebacivanje između ovih načina rada je jednostavno i brzo.
Kako bih smanjio veličinu koda i zadržao mogućnost korištenja prekida BNO055 za otkrivanje sudara, radije ne koristim biblioteku Adafruit i to činim sam.
Preporučeni:
Kako napraviti stroj za utege za bebe pomoću Arduino Nano, HX-711 mjerne ćelije i OLED 128X64 -- Kalibracija HX-711: 5 koraka
Kako napraviti stroj za utege za bebe pomoću Arduino Nano, HX-711 mjerne ćelije i OLED 128X64 || Kalibracija HX-711: Pozdrav Instructables, Prije nekoliko dana postao sam otac slatke bebe?. Kad sam bio u bolnici otkrio sam da je tjelesna težina toliko važna za praćenje djetetovog rasta. Pa imam ideju? da od sebe napravim stroj za utege za bebu.u ovom Instructableu ja
Jednostavan način korištenja Makeyja Makeyja s tehničkom palubom: 5 koraka
Jednostavan način korištenja Makeyja Makeyja s tehničkom palubom: Bok. Nedavno sam na ovom natjecanju vidio tehnički špil makey makey programa koji je bio jako cool, ali činilo se teškim pa sam napravio jednostavan način za igranje igara s tehničkim palubom. Ako vam se sviđa moja instrukcija, glasajte za nju na natjecanju makey makey
Nadogradnja radijskog sata - postavljanje Bluetooth jedinice: 6 koraka
Nadogradnja radijskog sata-Ugradnja 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
USB priključak memorijske jedinice XBox 360: 4 koraka
USB konektor memorijske jedinice XBox 360: U ovom vodiču bit će vam rečeno kako dodati USB konektor u memorijsku jedinicu (MU) vašeg XBox 360. Trebali biste imati određeno iskustvo u lemljenju, a potreban vam je komad žice, USB konektor po vašem izboru, regulator niskog napona od 3,3 V
Spašavanje disketne jedinice: 3 koraka
Spašavanje disketne jedinice: Pišem ovo jer sam htio početi petljati po koračnim motorima i znao sam da imam jednu u svom neiskorištenom disketnom pogonu. 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