Forum: Mikrocontroller und Digitale Elektronik Fragen zu Magnometer Umrechnung


von Josef (Gast)


Lesenswert?

Hallo,

ich lese einen Magnetometer aus.
Auflösung ist 16Bit.
Measurementrange = +-1200µT

Die Werte die ich auslese sehen in etwa so aus:
X -576
Y -1012
Z -410

daraus möchte ich das heading berechnen.
Ohne Tilt kompensation sollte es so aussehen:

float heading = atan2( Y,X);
heading = heading * 180.0 / M_PI;

Wie müssen die ausgelesenen Werte umgerechnet werden, bevor diese mit 
atan2 berechnet werden können?

Gruß

von Karl H. (kbuchegg)


Lesenswert?

Josef schrieb:

> Wie müssen die ausgelesenen Werte umgerechnet werden, bevor diese mit
> atan2 berechnet werden können?

Gar nicht.
atan2 normiert sich die selber auf einen Vektor der Einheitslänge.

von Timmo H. (masterfx)


Lesenswert?

Wenn ich das aus deinen Rohwerten richtig schließe hast du die 
"Hard-Iron" noch nicht kompensiert hast und/oder keinene Offsetkorrektur 
gemacht. Das solltest du natürlich machen bevor du anfängst irgendwelche 
Winkel zu berechnen.

Am einfachsten geht es so:
1. Min und Max einer jeden Achse erfassen (Magnetsensor in alle 
Richtungen drehen bis min und max einer jeden Achse sich nicht mehr 
ändert)
2. Offset_Achse = (mag_max_achse - mag_min_achse)/2+mag_min_achse

(je nach Sensor kann es auch bereits im Chip integriert sein)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.