Questão:
Valores estranhos do magnetômetro LSM303
zidik
2014-08-12 14:26:32 UTC
view on stackexchange narkive permalink

Estou tendo problemas com os valores que obtenho do magnetômetro das placas Pololu MinIMU-9. Estou usando o Arduino-micro e a biblioteca arduino da Pololu. O sensor na placa é acelerador de 3 eixos e magnetômetro LSM303. O problema é - o valor mais alto sempre parece estar no eixo vertical, não horizontal, como seria de esperar.

Por exemplo, aqui está o dados que obtive quando coloquei o sensor na mesa e girei 360 no sentido horário no plano horizontal: (os valores são XYZ)

  -6 102 -516-11 103 -515-11 103 -515 -21 102 -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  

Girar o sensor "de cabeça para baixo" e, em seguida, girá-lo no plano horisontal novamente dá resultados semelhantes , apenas o eixo Z tem valor positivo de 500+.

O magnetômetro não deveria sempre apontar na direção do campo magnético - na direção X ou Y? Eu tentei isso em diferentes salas e edifícios e consegui mesmos resultados. Girar o sensor em outros eixos produz os mesmos resultados - o eixo vertical tem o maior (e constante) valor.

Para referência, aqui está o código que usei para obter os valores.

  #include <Wire.h> # include <LSM303.h>LSM303 compass; 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"); atraso (100);}  
Um responda:
geometrikal
2014-08-13 04:50:41 UTC
view on stackexchange narkive permalink

O campo magnético da Terra não é paralelo ao solo. Em alguns locais, pode estar apontando mais para baixo do que transversalmente.

NOAA tem uma calculadora de campo magnético onde você pode inserir sua latitude e longitude. Por exemplo, estou localizado a aproximadamente 19deg S 147degE e o campo é

  North Comp East Comp Vertical Comp magnitude total 32.434,4 nT 4.280,6 nT -36.035,1 nT 48.670,7 nT  

Portanto, a força para baixo é maior do que as outras duas combinadas para a minha localização. Suponho que a calculadora também mostrará um componente de baixo muito forte para a sua localização.

Outras coisas a serem observadas são que o magnetômetro LSM303DLHC pode ter deslocamentos bastante grandes, até o equivalente a 2 pontos terrestres campos magnéticos e, portanto, requer calibração. Também distorções de ferro duro e macio podem afetar as leituras.

Editar: por favor, veja minha resposta aqui para métodos de calibração do sensor.

Então, esse realmente parece ser o caso aqui.Intensidade horizontal: 15.210,5 nT Componente vertical: 49.455,8 nT`


Estas perguntas e respostas foram traduzidas automaticamente do idioma inglês.O conteúdo original está disponível em stackexchange, que agradecemos pela licença cc by-sa 3.0 sob a qual é distribuído.
Loading...