Përmbajtje:
- Hapi 1: Pse të përdorni një njësi matëse inerciale?
- Hapi 2: Si të përdorni BNO055 për lokalizimin 2D?
- Hapi 3: Pika e pajisjeve të Vue
- Hapi 4: Si funksionon?
- Hapi 5: Arkitektura dhe Softueri
- Hapi 6: Çfarë Mësova?
Video: Një mënyrë për të përdorur një njësi matëse inerciale?: 6 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:10
Konteksti:
Unë po ndërtoj për argëtim një robot që dua të lëviz në mënyrë autonome brenda një shtëpie.
Workshtë një punë e gjatë dhe po e bëj hap pas hapi.
Unë tashmë kam botuar 2 udhëzime për atë temë:
- një për krijimin e një kodifikuesi të rrotave
- një për lidhjen wifi
Roboti im drejtohet nga 2 motorë DC me ndihmën e kodifikuesit timon të bërë në shtëpi.
Aktualisht jam duke përmirësuar kontrollin e lëvizjes dhe kam kaluar ca kohë me xhiroskop, akselerometër dhe IMU. Unë do të kisha kënaqësinë të ndaj këtë përvojë.
Dëshironi të dini më shumë rreth lokalizimit? Këtu është një artikull se si të kombinoni inteligjencën artificiale dhe ultratinguj për të lokalizuar robotin
Hapi 1: Pse të përdorni një njësi matëse inerciale?
Pra, pse kam përdorur një IMU?
Arsyeja e parë ishte se nëse kodifikuesi i rrotave është mjaft i saktë për të kontrolluar lëvizjen e drejtë, edhe pas akordimit nuk kam qenë në gjendje të marr një saktësi për rrotullimin më pak se +- 5 degra dhe kjo nuk është e mjaftueshme.
Kështu që unë provova 2 sensorë të ndryshëm. Së pari unë përdor një magnetometër (LSM303D). Parimi ishte i thjeshtë: para rrotullimit merrni orientimin verior, llogaritni objektivin dhe rregulloni lëvizjen derisa të arrihet objektivi. Ishte pak më mirë sesa me koduesin, por me shumë shpërndarje. Pas kësaj unë u përpoqa të përdor një xhiroskop (L3GD20). Parimi ishte vetëm integrimi i shpejtësisë së rrotullimit të dhënë nga sensori për të llogaritur rrotullimin. Dhe funksionoi mirë. Unë kam qenë në gjendje të kontrolloj rrotullimin në +- 1 gradë.
Sidoqoftë, isha kurioz të provoja ndonjë IMU. Unë zgjedh një përbërës BNO055. Kam kaluar ca kohë për të kuptuar dhe testuar këtë IMU. Në fund vendosa të zgjedh këtë sensor për arsyet e mëposhtme
- Unë mund të kontrolloj rrotullimin, si dhe me L3GD20
- Unë mund të zbuloj rrotullim të lehtë kur lëviz drejt
- Më duhet të marr orientimin verior për lokalizimin e robotit dhe kalibrimi i busullës së BNO055 është shumë i thjeshtë
Hapi 2: Si të përdorni BNO055 për lokalizimin 2D?
BNO055 IMU është një sensor inteligjent Bosch 9 aks që mund të sigurojë orientim absolut.
Fleta e të dhënave siguron një dokumentacion të plotë. Componentshtë një komponent i teknologjisë së lartë është një produkt mjaft kompleks dhe kam kaluar disa orë për të mësuar se si funksionon dhe për të provuar mënyra të ndryshme të përdorimit të tij.
Unë mendoj se mund të jetë e dobishme për të ndarë këtë përvojë.
Së pari kam përdorur bibliotekën Adafruit që ofron një mjet të mirë për të kalibruar dhe zbuluar sensorin.
Në fund dhe pas shumë testeve vendosa që të
- përdorni bibliotekën Adafruit vetëm për kursimin e kalibrimit
- përdorni 3 nga të gjitha mënyrat e mundshme të BNO055 (NDOF, IMU, Compss)
- kushtoni një Arduino Nano për të llogaritur lokalizimin bazuar në masurat BNO055
Hapi 3: Pika e pajisjeve të Vue
BNO055 është një komponent I2C. Pra, ajo ka nevojë për furnizim me energji, SDA dhe SCL për të komunikuar.
Vetëm kujdesuni për tensionin Vdd sipas produktit që keni blerë. Çipi Bosch punon në intervalin: 2.4V deri 3.6V dhe mund të gjeni komponentin 3.3v dhe 5v.
Nuk ka vështirësi për lidhjen e Nano dhe BNO055.
- BNO055 mundësohet nga Nano
- SDA & SCL janë të lidhura me rezistenca tërheqëse 2 x 2k.
- 3 LED të lidhura me Nano për diagnozë (me rezistorë)
- 2 lidhës të përdorur për të përcaktuar modalitetin pas nisjes
- 1 lidhës drejt BNO (Gnd, Vdd, Sda, Scl, Int)
- 1 lidhës drejt Robotit/Mega (+9V, Gnd, sda, Scl, Pin11, Pin12)
Pak saldim dhe kaq!
Hapi 4: Si funksionon?
Nga pika e komunikimit vue:
- Nano është mjeshtri i autobusit I2C
- Roboti/Mega dhe BNO055 janë skllevër të I2C
- Nano lexon përgjithmonë regjistrat BNO055
- Roboti/Mega ngre një sinjal numerik për të kërkuar fjalën nga Nano
Nga pika e llogaritjes e vue: Nano e kombinuar me BNO055 jep
- Titulli i busullës (përdoret për lokalizim)
- Një titull relativ (përdoret për të kontrolluar rrotullimet)
- Titulli dhe pozicioni absolut (përdoret për të kontrolluar lëvizjet)
Nga pika funksionale e vue: Nano:
- menaxhon kalibrimin BNO055
- menaxhon parametrat dhe komandat BNO055
Nënsistemi Nano & BNO055:
- llogarit për secilin robot rrota titullin dhe lokalizimin absolut (me një faktor shkalle)
- llogarit titullin relativ gjatë rrotullimit të robotit
Hapi 5: Arkitektura dhe Softueri
Softueri kryesor po funksionon në një Arduino Nano
- Arkitektura bazohet në komunikimin I2C.
- Zgjodha t'i kushtoja një Nano për faktin se Atmega që drejton robotin ishte tashmë e ngarkuar dhe kjo arkitekturë e bën më të lehtë ripërdorimin diku tjetër.
- Nano lexon regjistrat BNO055, llogarit dhe ruan titullin dhe lokalizimin në regjistrat e vet.
- Arduino Atmega që drejton kodin e robotit, dërgon kodime të informacionit tek rrota tek Nano dhe lexon titujt dhe lokalizimin brenda regjistrave Nano.
Aty kodi i nënstemit (Nano) është i disponueshëm këtu në GitHub
Mjeti i kalibrimit Adafruit nëse këtu në GitHub (kalibrimi do të ruhet në dhomën e eufës)
Hapi 6: Çfarë Mësova?
Në lidhje me I2C
Së pari u përpoqa të kem 2 mjeshtra (Arduino) dhe 1 skllav (sensor) në të njëjtin autobus, por në fund është e mundur dhe më e lehtë të vendosni vetëm Nano si master dhe të përdorni lidhjen GPIO midis 2 Arduinos për të "kërkuar shenjën" Me
Lidhur me BNO055 për orientimin 2D
Mund të përqendrohem në 3 mënyra të ndryshme drejtimi: NDOF (kombinoni xhiroskopin, përshpejtuesin dhe kompasin) kur roboti është i papunë, IMU (kombinoni xhiroskopin, përshpejtuesin) kur roboti lëviz dhe Compass gjatë fazës së lokalizimit. Kalimi midis këtyre mënyrave është i lehtë dhe i shpejtë.
Për të zvogëluar madhësinë e kodit dhe për të mbajtur mundësinë që të përdorni ndërprerjen BNO055 për të zbuluar përplasjen, unë preferoj të mos përdor bibliotekën Adafruit dhe ta bëj vetë.
Recommended:
Mënyrë e thjeshtë për të përdorur Makey Makey me një kuvertë teknologjike: 5 hapa
Mënyrë e lehtë për të përdorur Makey Makey me një kuvertë teknologjike: Përshëndetje. Kohët e fundit pashë një program të krijimit të kuvertës së teknologjisë në këtë garë i cili ishte me të vërtetë i lezetshëm, por dukej i vështirë, kështu që bëra një mënyrë të lehtë për të luajtur lojëra me një kuvertë teknologjike. Nëse ju pëlqen udhëzimi im, ju lutemi votoni për të në konkursin e grimcave
Një mënyrë jashtëzakonisht e thjeshtë për të filluar me automatizimin e shtëpisë duke përdorur module DIY: 6 hapa
Një mënyrë jashtëzakonisht e thjeshtë për të filluar me automatizimin e shtëpisë duke përdorur module DIY: Unë u befasova këndshëm kur vendosa të përpiqem të shtoj disa sensorë DIY në asistentin e shtëpisë. Përdorimi i ESPHome është jashtëzakonisht i thjeshtë dhe në këtë postim, ne do të mësojmë se si të kontrollojmë një kunj GPIO dhe gjithashtu të marrim temperaturë & të dhëna për lagështinë nga një wireless wireless
ARUPI - një njësi regjistrimi e automatizuar me kosto të ulët/njësi regjistrimi autonome (ARU) për ekologët e panoramës: 8 hapa (me fotografi)
ARUPI - një njësi regjistrimi e automatizuar me kosto të ulët/njësi regjistrimi autonome (ARU) për ekologët Soundscape: Ky udhëzues është shkruar nga Anthony Turner. Projekti u zhvillua me shumë ndihmë nga Shed in School of Computing, University of Kent (z. Daniel Knox ishte një ndihmë e madhe!). Ai do t'ju tregojë se si të ndërtoni një Ud të Regjistrimit të Automatizuar
Një pajisje matëse e indeksit UV, duke përdorur sensorin VEML6075 dhe folësin e vogël miq: 5 hapa
Një pajisje matëse e indeksit ultraviolet duke përdorur, duke përdorur sensorin VEML6075 dhe folësin e mikut të vogël: Verat po vijnë! Dielli po shkëlqen! E cila është e mrekullueshme. Por ndërsa rrezatimi ultravjollcë (UV) po bëhet më intensiv, njerëzit si unë marrin njolla, ishuj të vegjël ngjyrë kafe që notojnë në një det me lëkurë të kuqe, të djegur nga dielli dhe kruajtje. Të jesh në gjendje të kesh informacion në kohë reale
Mënyrë e lehtë për të bërë një enë uji duke përdorur Fusion 360: 5 hapa (me fotografi)
Mënyrë e lehtë për të bërë një enë uji duke përdorur Fusion 360: Ky është një projekt i përsosur për të gjithë fillestarët që përdorin Fusion 360. supershtë super e lehtë për tu bërë. Konsideroni këtë një projekt shembull dhe krijoni modelet tuaja të enëve. Unë gjithashtu kam shtuar një video e cila është bërë përsëri në Fusion 360. Unë nuk mendoj se ju duhet të dini se si një j