Kazalo:
- 1. korak: Zakaj uporabiti inercialno merilno enoto?
- 2. korak: Kako uporabiti BNO055 za 2D lokalizacijo?
- 3. korak: Strojna točka Vue
- 4. korak: Kako deluje?
- 5. korak: Arhitektura in programska oprema
- 6. korak: Kaj sem se naučil?
Video: Način uporabe inercialne merilne enote?: 6 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:02
Kontekst:
Za zabavo gradim robota, ki ga želim avtonomno premikati v hiši.
Delo je dolgo in delam ga korak za korakom.
Na to temo sem že objavil 2 navodili:
- eno o izdelavi kodirnika koles
- eno o wifi povezavi
Mojega robota poganjata dva enosmerna motorja s pomočjo domačega dajalnika koles.
Trenutno izboljšujem premikanje in sem nekaj časa preživel z žiroskopom, merilnikom pospeška in IMU. Z veseljem bi delil to izkušnjo.
Želite izvedeti več o lokalizaciji? Tukaj je članek o tem, kako združiti umetno inteligenco in ultrazvok za lokalizacijo robota
1. korak: Zakaj uporabiti inercialno merilno enoto?
Zakaj sem torej uporabil IMU?
Prvi razlog je bil, da če je kodirnik kolesa dovolj natančen za nadzor naravnost, tudi po uglaševanju nisem mogel doseči natančnosti za vrtenje manj kot +5 stopinj in to ni dovolj.
Zato sem preizkusil 2 različna senzorja. Najprej uporabim magnetometer (LSM303D). Princip je bil preprost: pred vrtenjem se obrnite proti severu, izračunajte cilj in prilagodite premik, dokler cilj ni dosežen. Bilo je malo bolje kot s kodirnikom, vendar s preveč razpršenostjo. Nato sem poskusil uporabiti žiroskop (L3GD20). Načelo je bilo le vključiti hitrost vrtenja, ki jo daje senzor za izračun vrtenja. In dobro je delovalo. Rotacijo sem lahko nadzoroval pri +1 stopinjah.
Kljub temu sem bil radoveden, da preizkusim IMU. Izberem komponento BNO055. Nekaj časa sem porabil za razumevanje in preizkušanje tega IMU. Na koncu sem se odločil za izbiro tega senzorja iz naslednjih razlogov
- Vrtenje lahko nadziram tudi z L3GD20
- Pri premikanju naravnost lahko zaznam rahlo vrtenje
- Za lokalizacijo robota moram dobiti severno orientacijo in umerjanje kompasa BNO055 je zelo preprosto
2. korak: Kako uporabiti BNO055 za 2D lokalizacijo?
BNO055 IMU je Boschev 9 -osni inteligentni senzor, ki bi lahko zagotovil absolutno orientacijo.
Podatkovni list vsebuje popolno dokumentacijo. Gre za visokotehnološko komponento, za precej kompleksen izdelek in porabil sem nekaj ur, da sem se naučil, kako deluje, in preizkusil različne načine njegove uporabe.
Mislim, da bi bilo koristno deliti to izkušnjo.
Najprej sem uporabil knjižnico Adafruit, ki ponuja dobro orodje za umerjanje in odkrivanje senzorja.
Na koncu in po številnih testiranjih sem se odločil
- Knjižnico Adafruit uporabite samo za shranjevanje kalibracije
- uporabite 3 od vseh možnih načinov BNO055 (NDOF, IMU, Compss)
- nameni Arduino Nano za izračun lokalizacije na podlagi BNO055 izpiskov
3. korak: Strojna točka Vue
BNO055 je komponenta I2C. Za komunikacijo potrebuje napajanje, SDA in SCL.
Pazite le na napetost Vdd glede na izdelek, ki ste ga kupili. Boschev čip deluje v razponu: 2,4 V do 3,6 V in najdete komponente 3,3 V in 5 V.
Pri povezovanju Nano in BNO055 ni težav.
- BNO055 poganja Nano
- SDA in SCL sta povezana z 2 x 2k vlečnimi upori.
- 3 LED, priključena na Nano za diagnozo (z upori)
- 2 priključka za definiranje načina po zagonu
- 1 priključek proti BNO (Gnd, Vdd, Sda, Scl, Int)
- 1 priključek proti robotu/mega (+9V, Gnd, sda, scl, pin11, pin12)
Malo spajkanja in to je to!
4. korak: Kako deluje?
S komunikacijske točke vue:
- Nano je vodja vodila I2C
- Robot/Mega in BNO055 sta I2C sužnja
- Nano trajno bere registre BNO055
- Robot/Mega dvigne številčni signal, da zahteva besedo od Nano
Od točke izračuna vue: Nano v kombinaciji z BNO055 prinaša
- Naslov kompasa (uporablja se za lokalizacijo)
- Relativni naslov (uporablja se za nadzor vrtenja)
- Absolutni smer in položaj (uporablja se za nadzor potez)
S funkcionalnega vidika vue: Nano:
- upravlja kalibracijo BNO055
- upravlja parametre in ukaze BNO055
Podsistem Nano in BNO055:
- izračunajte za vsako robotsko kolo absolutno smer in lokacijo (s faktorjem lestvice)
- izračunajte relativni smer med vrtenjem robota
5. korak: Arhitektura in programska oprema
Glavna programska oprema deluje na Arduino Nano
- Arhitektura temelji na komunikaciji I2C.
- Za namestitev Nano sem se odločil zaradi dejstva, da je bila Atmega, ki poganja robota, že naložena in je zaradi te arhitekture najlažje ponovno uporabiti drugje.
- Nano bere registre BNO055, izračuna in shrani naslov in lokalizacijo v lastne registre.
- Arduino Atmega, ki poganja robotsko kodo, pošilja podatke o kodirnikih koles v Nano in bere naslove in lokacijo znotraj registrov Nano.
Koda podsistema (Nano) je na voljo tukaj na GitHubu
Orodje za umerjanje Adafruit, če je tukaj na GitHubu (kalibracija bo shranjena v eeproomu)
6. korak: Kaj sem se naučil?
Glede I2C
Najprej sem poskušal imeti 2 masterja (Arduino) in 1 slave (senzor) na istem vodilu, vendar je na koncu mogoče in najlažje nastaviti samo Nano kot glavnega in uporabiti povezavo GPIO med dvema Arduinoma za "zahtevo žetona".
Glede BNO055 za 2D orientacijo
Lahko se osredotočim na 3 različne načine delovanja: NDOF (kombinirani žiroskop, merilnik pospeška in kompas), ko robot miruje, IMU (kombinirani žiroskop, merilnik pospeška), ko se robot premika, in kompas v fazi lokalizacije. Preklapljanje med temi načini je enostavno in hitro.
Če želite zmanjšati velikost kode in ohraniti možnost, da uporabite prekinitev BNO055 za odkrivanje trka, raje ne uporabljam knjižnice Adafruit in to storim sam.
Priporočena:
Začetek uporabe brezžičnih senzorjev temperature in vibracij na dolge razdalje: 7 korakov
Kako začeti z brezžičnimi senzorji temperature in vibracij na dolge razdalje: Včasih so vibracije vzrok resnih težav v mnogih aplikacijah. Od gredi in ležajev strojev do zmogljivosti trdega diska vibracije povzročijo poškodbe stroja, zgodnjo zamenjavo, nizko zmogljivost in močno vplivajo na natančnost. Spremljanje
Enostaven način uporabe Makeyja Makeyja s tehnično ploščo: 5 korakov
Enostaven način uporabe Makeyja Makeyja s tehnično ploščo: Pozdravljeni. Pred kratkim sem na tem tekmovanju videl makey makey program za tehnično palubo, ki je bil res kul, vendar se mi je zdel težak, zato sem se na preprost način igral s tehničnim krovom. Če vam je moj pouk všeč, glasujte zanj na natečaju makey makey
VMix Surface Control 8 -kanalne in merilne luči: 7 korakov
VMix Surface Control 8 Channel & Tally Lights: Zgradite svoj vMix Controller 8 vhodno kamero / video posnetke, ki temeljijo na Arduino Pro Micro / Leonardo. In Tally Lights 8 Kamera z uporabo Arduino NANO / UNO. Značilnosti: 8 vhodnih gumbov za predogled 8 aktivnih gumbov 1 gumbi za prehod učinka 8 vhodna jakost glasnosti / fader 8
Nadgradnja radijske ure - namestitev enote Bluetooth: 6 korakov
Nadgradnja radijske ure-namestitev enote Bluetooth: Ta sprememba je sestavljena iz dveh delov, eden je obstoječi Radio z uro, drugi pa je "Integrirana Bluetooth brezžična dekodirna plošča MP3 ZTV-M01BT Shell & Daljinski upravljalnik " ki bo potreboval dodaten zvočni ojačevalnik
HC - 06 (pomožni modul) Spreminjanje "IMENA" brez uporabe "Nadzor serijskega Arduina" ki "deluje enostavno": Način brez napak!: 3 koraki
HC - 06 (pomožni modul) Spreminjanje "IMENA" brez uporabe "Nadzor serijskega Arduina" … ki "deluje enostavno": Način brez napak!: Po " Dolgo " poskusite spremeniti ime v HC - 06 (pomožni modul), z uporabo " serijski monitor Arduina, brez " Uspešno ", našel sem drug enostaven način in jih delim zdaj! Lepo se imejte prijatelji