Forum: Mikrocontroller und Digitale Elektronik 3-Achsen Magnetometer als Kompass


von Rolf (Gast)


Lesenswert?

Hallo Forum,

ich möchte gern einen neuen und recht günstigen 3-Achsen Magnetsensor 
einsetzten. Leider bin ich etwas über die Angaben im Datenblatt 
verwundert. Ich nehme stark an, dass der Einsatzzweck das Erdmagnetfeld 
sein soll, leider widerspricht sich das mit dem Offset (Zero Gauss 
Level? = +-1 Gauss).

Wollte mal fragen ob jemand schon Erfahrungen mit dem LIS3MDL 
(http://www.farnell.com/datasheets/1841031.pdf) als Kompassmodul hat.

Kann ich hier mit +-15° magnetisch Norden bestimmen? Muss ich den Offset 
nur einmal herausrechnen?

Hab leider noch nie mit nem Magnetometer IC gearbeitet und möchte auf 
Nummer sicher gehen.

Danke

Rolf

von vorticon (Gast)


Lesenswert?

Klar, solche Sensoren sind als Kompass gedacht. Das Erdmagnetfeld 
betraegt bei uns etwa 0.5 Gauss, der Messbereich von einigen Gauss macht 
also Sinn. Den von dir genannten kenne ich nicht, aber ich habe vor 
kurzem mit einem LSM303 herumgespielt, der prinzipiell vergleichbar sein 
sollte...
Was den Offset angeht, bei meinem LSM303 ist der sehr, sehr gering, 
moeglicherweise ist er schon intern abgeglichen oder mit irgendeinem 
Kompensationsmechanismus versehen... Ich glaube allerdings, dass er eine 
ausgepraegte Anisotropie hat (unterschiedliche Empfindlichkeit in den 
drei Achsen).
Fuer grobe Messungen sollte das alles egal sein, allerdings solltest du 
aufpassen, dir keine Stoerfelder durch Eisenteile oder ungeschickt 
herumfliegende Hochstromleitungen einzuhandeln. Am besten wirklich alles 
aus Plastik. Fuer Kompassanwendungen macht es natuerlich auch Sinn, ein 
Erdmagnetfeldmodell zu verwenden oder zumindest die Richtung des 
Erdmagnetfeldes in deiner Gegend zu hinterlegen. In unseren Breiten ist 
die Vertikalkomponente des Erdmagnetfeldes uebrigens doppelt so stark 
wie die horizontale, daher macht es auch Sinn, mit einem 
Beschleunigungssensor zusaetzlich die Erdbeschleunigung auszuwerten, da 
die Projektion des Feldvektors auf die x/y Ebene dir die Richtung 
verfaelscht, sobald du das Teil nicht exakt horizontal haelst.

von Georg (Gast)


Angehängte Dateien:

Lesenswert?

Rolf schrieb:
> Kann ich hier mit +-15° magnetisch Norden bestimmen?

Klar, das ist der Zweck des Sensors. Im Prinzip musst du aus den 3 
Werten den Raumvektor bestimmen, wenn du aber das Ding so einbaust, dass 
1 Achse immer senkrecht steht, dann kannst du diese Achse für die 
Nordrichtung weglassen und aus den beiden anderen Achsen als X und Y den 
Winkel des resultierenden Vektors bestimmen. Das ist einfacher und du 
brauchst keinen Beschleunigungsmesser für die Lage im Raum, so kann man 
das als Kompass nehmen, wenn man den immer waagrecht in der Hand hält. 
Es gibt im Netz eine Menge Unerlagen wie man damit umgeht, mit Formeln 
und/oder Programm.

Tip: das Erdmagnetfeld ist bei uns schon stark gekippt und taucht mit 
etwa 40 Grad in den Boden, daher ergeben sich falsche Werte wenn man den 
Kompass kippt.

Tip2: eine fertigen China-Kompass gibts für weniger als 10 Euro , das 
schaffst du im Selbstbau nicht. Siehe Bild.

Georg

von Rolf (Gast)


Lesenswert?

Danke für die Info...

Hm, das mit dem Beschleunigungssensor ist interessant. Da werde ich wohl 
erstmal mit einem Demo Board von Adafruit experimentieren 
(http://www.adafruit.com/product/1120), bevor es auf die eigentliche 
Platine kommt.
Es soll natürlich letztendlich kein reiner Kompass werden... aber ein 
wenig Genauigkeit darf ruhig sein. Die Lage kann ich ein wenig 
beeinflussen... aber wenn dann baue ichs gleich ordentliche...

Viele Grüße

Rolf

von Georg (Gast)


Lesenswert?

Rolf schrieb:
> aber wenn dann baue ichs gleich ordentliche...

Hardwaremässig ok, bei der Software solltest du vielleicht erst mal 2D 
rein magnetisch zum Funktionieren bringen, also den Fall eines flach 
liegenden Sensors. Die Verrechnung von 3 Lage-Dimensionen vom 
Beschleunigungssensor mit 3 magnetischen Werten ist etwas nichttrivial.

Ausserdem, wie ist das Ganze montiert und was zeigst du letztendlich an? 
Bei einem flachliegenden Kompass ist das einfach, aber was soll er 
anzeigen, wenn er 90 Grad nach links geneigt ist? Da hast du noch viel 
zu lesen vor dir.

Georg

von vorticon (Gast)


Lesenswert?

es gibt ja kombinierte Magnetfeld/Beschleunigungssensoren, genau aus dem 
Grund, weil beides zusammen praktisch ist. Eine sehr einfache Loesung 
waere dann, den Magnetfeldvektor auf die Ebene zu projizieren, die zum 
Beschleunigungsvektor senkrecht steht, das ist einfache Geometrie und 
man erhaelt die gleiche Ansicht wie beim klassischen Kompass, nur dass 
die Fehleranfaelligkeit gegenueber einer Neigung des Sensors aus der 
Horizontalebene wegfaellt.
Wie schon gesagt gibt es dann die "High End" Loesung, die die genaue 
Form des Erdmagnetfeldes miteinbezieht, hierzu eignet sich bspw. das 
"world magnetic model", die Koeffizienten und Gleichungen zur Berechnung 
sind frei verfuegbar. Ohne ein solches Modell muss man (wie bei jedem 
herkoemmlichen Kompass auch) mit einer "Missweisung" rechnen, die 
durchaus relevant sein kann. Auch die Low end Loesung kann man machen 
(nur 2 Achsen auswerten), eben mit dem Nachteil, dass man immer schoen 
gerade halten muss, ansonsten verfaelscht die vertikale Feldkomponente 
die Bestimmung der Nordrichtung gewaltig (auch altbekanntes Problem bei 
herkoemmlichen Kompassen).

von Rolf (Gast)


Lesenswert?

Hallo,

die Mathematik ist ja schon da und die muss ich sicher nicht neu 
herleiten... evtl gibts schon Kodeschnipsel... Ich werde doch ne eigene 
Platine machen, mit einem Kombinierten IC von STM:

LIS303D

Die Software hat dann Zeit... mit +- 15 Grad sind meine Ansprüche auch 
nicht besonders hoch...

Letztendlich möchte ich mir einen 6ten Sinn bauen... Hab das letztens in 
ner Doku gesehen. Ein paar Vibrationsmotoren und ein Lipo akku + Kompass 
und man bekommt unterschwällig (wie ein Vogel) immer die Nordrichtung 
mitgeteilt... Hat wohl nach 4 Wochen die Orientierungsfähigkeit eines 
Probanten stark verbessert...


Werd es auch frei veröffentlichen, wer interesse daran haben sollte...

Gruß

Rolf

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.