Domanda:
Valori strani dal magnetometro LSM303
zidik
2014-08-12 14:26:32 UTC
view on stackexchange narkive permalink

Ho problemi con i valori che ottengo dal magnetometro delle schede Pololu MinIMU-9. Sto usando Arduino-micro e la libreria arduino di Pololu. Il sensore sulla scheda è un accelerometro a 3 assi e un magnetometro LSM303. Il problema è che il valore più alto sembra sempre essere in asse verticale, non orizzontale, come mi aspetterei.

Ad esempio, ecco il dati che ho ottenuto quando ho posizionato il sensore piatto sul tavolo e ho fatto una rotazione di 360 in senso orario sul piano orizzontale: (i valori sono XYZ)

  -6 102-516-11 103-515-11 103-515 -21102-514-31 109-515-40 114-512-57 116-509-57 116-509-77 111-507-93 109-506-104 106-507-104 106-507-114 99-508 -126 88-504-131 74-507-142 52-507-142 52-507-151 31-506-150 4-509-147-27-513-147-27-513-133-60-513-119 -80-519-112-87-517-102-97-521-102-97-521-89 -101-522-77 -101-524-50-104-527-50-104-527-43-105 -529-14-98-5322-92-53523-92-53523-92-53536-81-53466-54-53476-32-53176-32-53176-21-53278-7-53185 10-52891 39-52491 39-52494 50-52491 63-52476 75-52576 75-52563 82-52647 93-52544 98-52244 98-52238 104-52126 110-52126 112-51821 116-51921 116-51918 116 - 51812 120 -51711 120 -51511 120 -5158 120 -5175 122 -515-5 123 -514  

Ruotando il sensore "sottosopra" e poi ruotandolo di nuovo sul piano orizzontale si ottengono risultati simili , solo l'asse Z ha un valore positivo di 500+.

Il magnetometro non dovrebbe puntare sempre nella direzione del campo magnetico, in direzione X o Y? Ho provato questo in diverse stanze ed edifici e ho ottenuto il stessi risultati La rotazione del sensore su altri assi produce gli stessi risultati: l'asse verticale ha il valore più grande (e costante).

Per riferimento, ecco il codice che ho usato per ottenere i valori.

  #include <Wire.h> # include <LSM303.h>LSM303 bussola; void setup () {Serial.begin (115200); Wire.begin (); compass.init (); compass.enableDefault ();} void loop () {compass.readMag (); Serial.print (compass.m.x);
Serial.print (""); Serial.print (compass.m.y); Serial.print (""); Serial.print (compass.m.z); Serial.print ("\ n"); ritardo (100);}  
Una risposta:
#1
+5
geometrikal
2014-08-13 04:50:41 UTC
view on stackexchange narkive permalink

Il campo magnetico terrestre non è parallelo al suolo. In alcune posizioni può essere rivolto più verso il basso che attraverso.

NOAA ha un calcolatore del campo magnetico in cui puoi inserire latitudine e longitudine. Ad esempio, mi trovo a circa 19deg S 147degE e il campo è

  North Comp East Comp Vertical magnitude32.434,4 nT 4.280,6 nT -36.035,1 nT 48.670,7 nT  

Quindi la forza verso il basso è maggiore delle altre due combinate per la mia posizione. Immagino che la calcolatrice mostrerà anche una componente in basso molto forte per la tua posizione.

Alcune altre cose da tenere a mente sono che il magnetometro LSM303DLHC può avere offset abbastanza grandi, fino all'equivalente di 2 terra campi magnetici, e quindi necessita di calibrazione. Anche le distorsioni del ferro duro e dolce possono influenzare le letture.

Modifica: vedere la mia risposta qui per i metodi per calibrare il sensore.

Allora, sembra proprio che sia così qui. Intensità orizzontale: 15.210,5 nT Componente verticale: 49.455,8 nT`


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...