Choď na obsah Choď na menu
 

hmc5883l

http://diydrones.com/profiles/blogs/advanced-hard-and-soft-iron-magnetometer-calibration-for-dummies

 

Arduino: jednoduchý kompas s HMC5883L + knižnice

 

úvod

Jeden z najpopulárnejších I2C kompatibilný magnetometer je Honeywell HMC5883L . Tieto senzory "solid-state konštrukcia s veľmi nízkou citlivosťou priečnej osi je určený na meranie ako smer a 
veľkosť magnetického poľa Zeme, z jemného Gauss 8 Gauss. 
V tomto tutoriálu sa pokúsim: 
 
  1. Predstaviť, ako funguje magnetometer
  2. Vysvetlite, ako získať hlavičku z dát v magnetometra
  3. Poskytujú malú knižnicu  som napísal pre Arduino IDE

Ako sa magnetometer funguje?

Elektronický magnetometer ako  HMC5883L  je založený na anizotropná magnetoresistence javu. Zvládnutie fyziku, že descibe tento jav nie je ľahká úloha, pretože to je obrovský obor, ktorého hĺbky nemôžeme dúfať, že začnú sondovať v týchto niekoľkých slovách. 
V podstate sa magnetické pole v interakcii s cestou prúd, ktorý tečie cez železného materiálu, podľa zákona Lorentz  a preto je odolnosť materiálu Zdá sa, že sa zmení na pozorovateľa. Môžete si predstaviť, ako v prípade, že lišta železného materiálu (napr InSb ) rastie dlhšie, zvyšovať jeho elektrický odpor. Preto meraním zmeny odporu môžeme odhadnúť magnetické pole! Rovnice, ktorá ovláda fenomén je na obrázku nižšie. Pre ďalšie vyšetrovanie tejto záležitosti, najmä v elektronike magnetometer je založený na, mohli si prečítať tento .
 
 


 

Z hrubých dát na sever! 

 
 
Superpočítaču modely zemského magnetického poľa od nasa.gov


V kompas, magnetické pole merať je zemská jedno . Je tangenciálny k povrchu planéty, a to tečie od severu k juhu. HMC5883L  má tri rôzne os pre výpočet nadpisy, ako si nemusí vedieť naklonenia vášho zariadenia (napr naše Kvadrokoptéra), keď budete potrebovať dáta! Každopádne pre tento príklad budeme predpokladať, že senzor je naplocho na stole, takže nemusíme sa starať o jeho naklonenia. Z tohto dôvodu budeme používať iba X a Y os dáta.
 
Budeme predpokladať Hz = 0


Teda uhol medzi osou Y a magnetického severu bude, v závislosti na Quandrant: 

smer (y> 0) = 90 - [arctan (x / y)] * 180 / π 
smer (y <0) = 270 - [ arctan (x / y)] * 180 / π 
Smer (y = 0, x <0) = 180,0 
Smer (y = 0, x> 0) = 0,0 

v prvom rade musíme meradlo nespracované údaje podľa stupnice my vybral. 
Platné hodnoty sú Gaussovej: 0,88, 1,3, 1,9, 2,5, 4,0, 4,7, 5,6, 8,1. Samozrejme pre geo-kompasu len musíme 1,3 Ga, ktorá nás vedie k 0,92 [mg / LSB] rezolúcie a ziskom 1090 [LSB / Gauss]. Kód som poskytnúť tento príspevok je založený na najdeného kódu tu , ale v čase, keď tento príspevok je napísané, bude pôvodný kód nebude fungovať. Tam sú niektoré veľké chyby ako plávajúce číslo bodu oproti ktorý nebude umožňujú meniť mierka snímača, a niektoré divné chyby pri chybe manipulácie (v podstate ten kód nekontroluje chyby vôbec, ako si môžete ľahko dokázať, vykonávajúci to: to bude vždy zobrazovať chybu nastavenia mierky a nastavenie režimu merania Viac napodiv táto druhá chyba zobrazovať rovnakú správu, pretože chyba premenná nie je vynulovaný po jeho použití) .. Samozrejme aj moja knižnica  bude mať nejaké chyby taky, a to nie je úplný vôbec, ale je to dobrý začiatok zoznámiť so snímačom sám. 

Tu je kód s množstvom komentárov: 

Na obrázku nižšie môžete vidieť, ako sa okruh meria s iPhone 4 je celkom blízko k jednému čítame z Arduino. Existuje veľa rozpätie zlepšenie. Po prvé, mali by sme kompenzovať možný náklon zariadení s využitím údajov akcelerometra z ADXL345, napríklad pomocou informácie o mojom predchádzajúcom zamestnaní ! Navyše, môj doštička na krájanie má hliníkovú základnú rovinu, na svojom dne, čo môže samozrejme urobiť viac pre štruktúru vnímať magnetické pole a / alebo by ju drift a vytvoriť offset.