HMC5883L keine durchgängigen Werte

Gast #4859700
Lesenswert?
• ▲
▼
Hallo Zusammen,
ich versuche gerade den HMC5883L beim Auswerten einer Drehbewegung zu 
nutzen. Ansteuerung und auslesen klappt soweit.
Um den Winkel zu berechnen, habe ich diese Formel gefunden:
winkel = atan2((Magnetic_data_Y,Magnetic_data_X) *180/PI +180;

Das gibt mir dann auch schön 0-360° aus.
Nur, das die 0-360° keine volle Umdrehung ist (ca. 4/5). In der 
kompletten Umdrehung gibt es noch einmal den Bereich 360<->342<->360.
Darauhin habe ich die Rohdaten der einzelnen Achsen angeschaut:

X:
0 <-> -435 <-> 0 <-> 40 <-> 0

Y:
0 <-> -417 <-> 0 <-> 52 <-> 0

z:
-517 <-> -546

Z ändert sich, obwohl der Sensor nur horizental gedreht wird. Ist das 
das Problem? Wie kann man das mit reinrechnen?

Kennt jemand das Phänomen?

Dank im Voraus.
Gast #4859844
Lesenswert?
• ▲
▼
Die Rohdaten von HMC mussen erst korrigiert werden mit den "offset" von 
jede Achse. Hierzu muss du einfach die min und max Werte von  jede Achse 
vermessen bei eine komplette Umdrehung. Der offset X ist dan 
x.max/2+x.min/2. Das für jede Achse. Diese offset wird dan verrechnet :
Winkel= Atan2(x_raw-x_offset,y_raw-y_offset)+180.
Google auch nach "Hard iron kalibration".
Gast #4860479
Lesenswert?
• ▲
▼
So, ich habe das mal versucht und es funktioniert auch!
Jetzt habe ich eine 0-360° Ausgabe.

Jetzt habe ich aber noch ein weiteres Problem, das mir jetzt erst 
auffällt:
Bisher bin ich nur von einer reinen horizontalen Bewegung ausgegangen. 
Ich habe aber noch eine Drehung/Neigung nach vorne und nach hinten. Ca. 
+- 10°. Das hat ja wieder Auswirkungen auf mein Ergebnis.
Gibt es da eine Möglichkeit die Änderung der „Neigung“ in der 
Horizontalen  rauszurechnen?
Gast #4861105
Lesenswert?
• ▲
▼
Ja, das geht. Aber dan brauchst du zusatzlich noch information ueber die 
Neigung von HMC ! Rein allein von Magnetsensor geht das nicht. Meistens 
verwendet men ein 3 Achsen ACC sensor um die Neigung gegenueber die 
Senkrechte zu vermessen. Google nach "6 DOF IMU", kompass inclination.
Gast #4861781
Lesenswert?
• ▲
▼
Ah ja, ich verstehe! Das hilft mir weiter.
Ich benutze ja so ein Sensorboard mit HMC5883L, ADXL345 und L3G4200D 
drauf.
Die Hauptarbeit erledigt bisher der Gyro, was auch gut funktioniert. Nur 
sehr langsame Drehbewegungen registriert der Gyro nicht. Der Kompass 
schon.
Ok, nochmal Danke, jetzt denke/hoffe ich, dass es wird...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren