HMC5883L X,Y,Z orientierung und erwartete Ausgabe

Gast #5121918
Lesenswert?

Hi Leute,

ich habe ein Problem mit meinem HMC5883L Kompass.
Der Chip sitzt auf einem GY87 10DOF Board und ich moechte einen Kompass 
mit TILT Kompensation fuer meinen Quadro erstellen. Der verarbeitende uC 
ist ein STM32F334.

Das Board ist flach montiert, daher sind die X und Y Achse horizontal 
und die Z Achse vertical zur Erdoberflaeche.

Ich befinde mich derzeit nah am Aequator. Daher sind die zu erwartenden 
Gauss Messungen des Erdmagnetfeldes irgendwo zwischen 0.2-0.3 Gauss. Den 
HMC5883L habe ich auf die Full Scale Range of 1.3Ga gestellt und 
Selftest durchgefuehrt. Anders als im Datenblatt habe ich keine 1.1Ga 
gemessen, aber die Messungen sind konstant und Akzeptabel.

Jetzt zum Problem:
Wenn ich nun das Erdmagnetfeld messen moechte, dann klappt das soweit 
ersteinmal. Ich messe ca. 0.25Ga (peak), jedoch passen die Werte nicht 
wirklich zu den Achsen.

Die X-Achse scheint zu stimmen:
N: 422 (raw value) E: 0 (raw value) S: -354 (raw value) W: 0 (raw value)
Y-Achse:
N: 330 (raw value) E: 300 (raw value) S: 333 (raw value) W: 330 (raw 
value)
Z-Achse:
N: -240 (raw value) E: -600 (raw value) S: -212 (raw value) W: 157 (raw 
value)

Damit laesst sich so nichts anfangen.

Wenn ich das board um 90grad anwinkel, so dass X und Z horizontal sind 
und Y vertikal, dann sind die Werte okay:
N: 430 (raw value) E: 0 (raw value) S: -333 (raw value) W: 0 (raw value)
Y-Achse:
N: 0 (raw value) E: -333 (raw value) S: 0 (raw value) W: 330 (raw value)
Z-Achse:
N: -593 (raw value) E: -576 (raw value) S: -590 (raw value) W: -600 (raw 
value)

Nun moechte ich das Board allerdings in der ersten Konstallation 
verwenden, da die Gyros und Acc Sensoren so kalibriert wurden.

Ich hatte eigentlich erwartet, dass die Z-Achse sich in der ersten 
Konstallation wie die Y-Achse in der zweiten verhaelt. Das ist aber 
nicht der fall. Warum? Habe ich hier einen Denkfehler?
Derzeit komme ich hier mit Kraftvektorberechnung fuer einen TILTED 
Kompass nicht weiter und solange der Sensor mir nicht die richtigen 
Werte ausspuckt bringt alles andere auch nichts.

Jemand eine Idee?
Lasst mich wissen falls ihr irgendwelche Infos braucht.
Habe Scope und so nen Gedoens da.
Gast #5121956
Lesenswert?

Hi guys,

so, es scheint jetzt zu klappen. Die Achsen scheinen eine manuelle 
Kalibrierung zu benoetigen. Wenn ich einen entsprechenden Offset drauf 
packe, dann sieht die ganze Sache auch schon ganz anders aus.
Ich wusste zwar, dass ein Kompass kalibriert werden soll, aber das sich 
das so sehr auswirkt haette ich nicht gedacht.

An dieser Stelle Danke an Donvido fuer das Paper.

Allerdings Frage ich mich echt, warum die Z-Achse im Gegensatz zu der Y 
und X Achse so daneben liegt. Werkseitig kalibriert scheint dort nichts 
zu sein.
Gast #5122027
Lesenswert?

Werkseitige Kalibrierung macht auch nur bedingt Sinn, da man ja ab Werk 
nicht weiß wo und wie der Chip verbaut wird. Du musst bei der 
Kalibrierung ja sowohl statische, als auch dynamische Effekte auf deiner 
Platine und der Umgebung berücksichtigen.
Gast #5122035
Lesenswert?

Durchaus richtig, leider kann auch kein Offset im IC selbst gespeichert 
werden und der uC muss die Kompensation manuell machen. Aber es 
funktioniert jetzt wenigstens. Einmal das Board in alle Richtungen 
drehen und der Offset berechnet sich selbst. Funktioniert wunderbar.
Danke nochmal an alle :-)

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