Forum: Mikrocontroller und Digitale Elektronik HMC5883L X,Y,Z orientierung und erwartete Ausgabe


von Dom (Gast)


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.

von Hp M. (nachtmix)


Lesenswert?

Dom schrieb:
> Ich befinde mich derzeit nah am Aequator.

Dennoch solltest du berücksichtigen, dass die Inklination beträchtlich 
sein kann:
https://de.wikipedia.org/wiki/Datei:World_Magnetic_Inclination_2010.pdf

von donvido (Gast)


Lesenswert?

Hast du das schon durchgearbeitet?

http://www.nxp.com/docs/en/application-note/AN4246.pdf

von Dom (Gast)


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.

von donvido (Gast)


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.

von Dom (Gast)


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 :-)

von Fritz (Gast)


Lesenswert?

Hast du berücksichtigt, dass die Register nicht in x-y-z angeordnet 
sind, sondern in x-z-y?

von Dom (Gast)


Lesenswert?

Hi Fritz,

ja, darauf bin ich Anfangs auch reingefallen.Ist allerdings schon 
korrigiert.

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.