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.
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".
Danke für die Antwort! wenn ich es richtig verstehe, wäre das in meinem Fall: X_offset = 40/2+(-435)/2 y_offset = 52/2+(-417)/2
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?
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.
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...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.