INHOUDSOPGAWE:
- Stap 1: Waarom 'n traagmeeteenheid gebruik?
- Stap 2: Hoe om BNO055 te gebruik vir 2D -lokalisering?
- Stap 3: Hardware Point of Vue
- Stap 4: Hoe werk dit?
- Stap 5: Die argitektuur en sagteware
- Stap 6: Wat het ek geleer?
Video: N Manier om 'n traagheidseenheid te gebruik?: 6 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:23
Die konteks:
Ek bou vir die plesier 'n robot wat ek outonoom in 'n huis wil skuif.
Dit is 'n lang werk en ek doen dit stap vir stap.
Ek het reeds 2 instruksies oor die onderwerp gepubliseer:
- een oor die maak van 'n wielkodeerder
- een oor wifi -verbinding
My robot word met behulp van my tuisgemaakte wielkodeerder na 2 GS -motors aangedryf.
Ek verbeter tans die bewegende beheer en het 'n geruime tyd deurgebring met 'n gyroscoop, versnellingsmeter en IMU. Ek deel graag hierdie ervaring.
Wil u meer weet oor lokalisering? Hier is 'n artikel oor hoe om kunsmatige intelligensie en ultraklank te kombineer om die robot te lokaliseer
Stap 1: Waarom 'n traagmeeteenheid gebruik?
Waarom het ek 'n IMU gebruik?
Die eerste rede was dat as die wielkodeerder presies genoeg is om die reguit beweging te beheer, ek selfs na afloop nie 'n presisie kon kry vir rotasie van minder as +- 5 degres nie, en dit is nie genoeg nie.
Ek het dus 2 verskillende sensors probeer. Eerstens gebruik ek 'n magnetometer (LSM303D). Die beginsel was eenvoudig: voordat die rotasie die noordelike rigting bereik, bereken die teiken en pas die beweging aan totdat die teiken bereik is. Dit was 'n bietjie beter as met die encoder, maar met te veel verspreiding. Daarna het ek probeer om 'n gyroscoop (L3GD20) te gebruik. Die beginsel was net om die rotasiesnelheid van die sensor te integreer om die rotasie te bereken. En dit het goed gewerk. Ek kon rotasie beheer by +- 1 grade.
Tog was ek nuuskierig om IMU te probeer. Ek kies 'n BNO055 -komponent. Ek het tyd bestee om hierdie IMU te verstaan en te toets. Aan die einde het ek besluit om hierdie sensor te kies om die volgende redes
- Ek kan sowel die rotasie as die L3GD20 beheer
- Ek kan 'n effense draai vind as ek reguit beweeg
- Ek moet noord -oriëntasie kry vir die lokalisering van die robot, en die kompas -kalibrasie van die BNO055 is baie eenvoudig
Stap 2: Hoe om BNO055 te gebruik vir 2D -lokalisering?
BNO055 IMU is 'n 9 -as intelligente sensor van Bosch wat absolute oriëntasie kan bied.
Die datablad bevat 'n volledige dokumentasie. Dit is 'n hoë -tegnologie komponent, is dit 'n taamlik ingewikkelde produk, en ek het 'n paar uur bestee om te leer hoe dit werk en verskillende maniere om dit te gebruik, probeer.
Ek dink dit kan nuttig wees om hierdie ervaring te deel.
Eerstens het ek die Adafruit -biblioteek gebruik wat 'n goeie hulpmiddel is om die sensor te kalibreer en te ontdek.
Aan die einde en na baie toetse het ek besluit
- Gebruik slegs die Adafruit -biblioteek om kalibrasie te stoor
- gebruik 3 van al die moontlike modi van BNO055 (NDOF, IMU, Compss)
- wy 'n Arduino Nano aan om lokalisering te bereken op grond van BNO055 -metings
Stap 3: Hardware Point of Vue
BNO055 is 'n I2C -komponent. Dit benodig dus kragtoevoer, SDA en SCL om te kommunikeer.
Pas net op die Vdd -spanning volgens die produk wat u gekoop het. Die Bosch -chip werk in die reeks: 2,4V tot 3,6V, en u kan 'n komponent van 3,3V en 5V vind.
Daar is geen probleme om die Nano en die BNO055 aan te sluit nie.
- Die BNO055 word aangedryf deur die Nano
- SDA en SCL is verbind met 2 x 2k optrekweerstands.
- 3 LED's gekoppel aan die Nano vir diagnose (met weerstande)
- 2 verbindings wat gebruik word om die modus na opstart te definieer
- 1 aansluiting na die BNO (Gnd, Vdd, Sda, Scl, Int)
- 1 aansluiting na die Robot/Mega (+9V, Gnd, sda, Scl, Pin11, Pin12)
'N Bietjie soldeer en dit is dit!
Stap 4: Hoe werk dit?
Van kommunikasie oogpunt:
- Die Nano is die I2C -busmeester
- Die Robot/Mega en die BNO055 is I2C -slawe
- Die Nano het die BNO055 -registers permanent gelees
- Die Robot/Mega gee 'n numeriese sein om die woord van die Nano te vra
Vanuit berekening: die Nano in kombinasie met die BNO055 lewer
- Die kompasopskrif (gebruik vir lokalisering)
- 'N Relatiewe opskrif (gebruik om rotasies te beheer)
- Die absolute koers en posisie (gebruik om bewegings te beheer)
Vanuit funksionele oogpunt: The Nano:
- bestuur die BNO055 -kalibrasie
- bestuur die BNO055 parameters en opdragte
Die substelsel Nano & BNO055:
- bereken vir elke robotwiele die absolute koers en lokalisering (met 'n skaalfaktor)
- bereken die relatiewe opskrif tydens rotasie van die robot
Stap 5: Die argitektuur en sagteware
Die belangrikste sagteware werk op 'n Arduino Nano
- Argitektuur is gebaseer op I2C -kommunikasie.
- Ek het gekies om 'n Nano toe te wy, omdat die Atmega wat die robot bestuur, eerder al gelaai was en hierdie argitektuur dit makliker maak om elders te hergebruik.
- Die Nano lees die BNO055 -registers, bereken en stoor opskrif en lokalisering in sy eie registers.
- Die Arduino Atmega wat die robotkode bestuur, stuur wiel -encoders -inligting na die Nano en lees die opskrifte en lokalisering binne die Nano -registers.
Daar is 'n subitem (Nano) kode hier op GitHub beskikbaar
Die Adafruit -kalibrasiehulpmiddel as dit hier op GitHub is (kalibrasie word op eeproom gestoor)
Stap 6: Wat het ek geleer?
Met betrekking tot I2C
Eerstens het ek probeer om 2 meesters (Arduino) en 1 slaaf (sensor) op dieselfde bus te hê, maar aan die einde is dit moontlik en maklik om slegs die Nano as meester in te stel en die GPIO -verbinding tussen die 2 Arduinos te gebruik om 'die teken aan te vra'.
Met betrekking tot BNO055 vir 2D -oriëntasie
Ek kan konsentreer op 3 verskillende hardloopmetodes: NDOF (kombineer gyroscoop, versnellingsmeter en Compas) as die robot ledig is, IMU (kombineer gyroscoop, versnellingsmeter) wanneer die robot beweeg en Kompas tydens die lokaliseringsfase. Dit is maklik en vinnig om tussen hierdie modusse te wissel.
Om die kode te verminder en die moontlikheid te behou dat u BNO055 interrupt gebruik om botsings op te spoor, gebruik ek verkieslik nie die Adafruit -biblioteek nie en doen dit alleen.
Aanbeveel:
Maklike manier om Makey Makey te gebruik met 'n tegniese dek: 5 stappe
Maklike manier om Makey Makey te gebruik met 'n tegniese dek: Hallo. Ek het onlangs 'n make -up -make -upprogram in hierdie kompetisie gesien, wat baie gaaf was, maar moeilik was, so ek het 'n maklike manier gemaak om speletjies met 'n tegnologie -speletjie te speel. As u van my instruksies hou, stem dan daarvoor in die makey makey -wedstryd
Hoe om Wemos ESP-Wroom-02 D1 Mini WiFi-module ESP8266 + 18650 te gebruik deur Blynk te gebruik: 10 stappe
Hoe om Wemos ESP-Wroom-02 D1 Mini WiFi-module ESP8266 + 18650 te gebruik deur Blynk te gebruik: Spesifikasie: Versoenbaar met nodemcu 18650 laaistelselintegrasie aansluiting kan gebruik word vir slaapmodus · 1 voeg by
Hoe om Mac Terminal te gebruik en hoe om sleutelfunksies te gebruik: 4 stappe
Hoe om Mac Terminal te gebruik en hoe om belangrike funksies te gebruik: Ons sal u wys hoe u die MAC Terminal kan oopmaak. Ons sal u ook 'n paar funksies in die Terminal wys, soos ifconfig, veranderende gidse, toegang tot lêers en arp. Met Ifconfig kan u u IP -adres en u MAC -advertensie nagaan
HC - 06 (slawemodule) Die verandering van 'NAAM' sonder gebruik 'Monitor Serial Arduino' wat 'maklik werk': foutlose manier!: 3 stappe
HC - 06 (slawemodule) Verander "NAAM" sonder gebruik "Monitor Serial Arduino" … wat "Maklik werk": Foutlose manier!: Na " Lang tyd " probeer om Naam te verander na HC - 06 (slaafmodule), met behulp van " seriële monitor van die Arduino, sonder " Sukses ", ek het 'n ander maklike manier gevind en ek deel dit nou! Geniet vriende
N Regtig eenvoudige/maklike/nie ingewikkelde manier om mense/mense/diere/robotte te laat lyk asof hulle 'n baie koel/helder hittevisie het (kleur van u keuse) deur GIMP te gebruik: 4 stappe
N Regtig eenvoudige/maklike/nie ingewikkelde manier om mense/mense/diere/robotte te laat lyk asof hulle 'n koel/helder hittevisie het (kleur van u keuse) deur GIMP te gebruik: Lees … die … titel