Forum: Mikrocontroller und Digitale Elektronik Magnetometer LSM303


von Norbert S. (norberts)


Angehängte Dateien:

Lesenswert?

Hi,

ich habe hier ein LSM303DLH und will damit später ein System in der 
Ausrichtung stabilisieren (wie ein Quadrocopter oder Heli).
Ich nehme erstmal an, daß das System waagerecht bleibt, wenn das alles 
etwas abweicht wenn man es kippt nehme ich das hin (weil die 3-D 
Auswertung ziemlich eklig ist).
Ausgabefrequenz und Filter habe ich im LSM303 auf mittlere Werte 
eingestellt.
Momentan messe ich alle 20ms X und Y 20x und mittele das.
Dann wird mit Atan der Winkel bestimmt. Die Wiederholgenauigkeit ist 
damit sehr gut nach dem ersten Workaround für Problem 1.

1. Problem: Da ist ein großer Offset auf den Werten, der fast in der 
Größe des Hubs ist. Also z.B. X nach Norden ausgerichtet um 0, X nach 
Süden um -350.
Das umgehe ich mit einer Kalibrierung. Um die Hochachse drehen, dabei 
min und max speichern, die Mitte davon ist der Offset.
Klappt ganz gut aber ist etwas umständlich.
Ich kann so einen Offset im Datenblatt nicht finden.

2. Problem:
Die absolute Ausrichtung N-S (in X-Richtung des Sensors) kommt gut hin 
und ist bis auf sehr wenige ° auch symmetrisch. In O-W passt es aber 
überhaupt nicht. Wenn N 0° ist, dann ist West nicht bei -90° sondern bei 
etwa -70° und Ost ist bei etwa +70°.
Ich kann auch hier keinen Hinweis im Datenblatt finden, daß das Ding so 
unlinear sein kann. Das müsste ja die X-Achse sein denn wenn der Wert 0 
wird ergibt das die +/-90°.

Mit 2. kann ich leben denn solange das statisch ist, reicht das zur 
Stabilisierung. Soll gedreht werden ist es dann egal ob aus einem 
Sollwert "Drehe um 3°/s nach rechts" 2°/s oder 4°/s werden. Das kann der 
Gyro ausserdem sowieso viel besser. Aber langfristig (mehr als ein paar 
Sekunden) wird mit dem Gyro sehr kompliziert und nie perfekt.

Kann mir einer diese Effekte erklären?

Das ganze ist übrigens in Bascom, Code ist angehängt auch wenn es mit 
den obigen Problemen nix zu tun hat.
Ich lese da auch den Gyro L3G4200D aus, das Ding ist unglaublich 
empfindlich, echt klasse.
Vielleicht kann ja jemand was mit dem Code anfangen, die Komm. mit den 
Sensoren hat mich viel Mühe gekostet, war auch mein "Erstes Mal" mit 
I2C.
(Das *.rtf ist für die Nicht-Bascom-User!)

Gruß,
Norbert
von Matthias (Gast)


Lesenswert?

Norbert S. schrieb:
> Ich nehme erstmal an, daß das System waagerecht bleibt, wenn das alles
> etwas abweicht wenn man es kippt nehme ich das hin (weil die 3-D
> Auswertung ziemlich eklig ist).

Da wirst du aber nicht drumrum kommen, da die Magnetfeldlinien z.B. in 
Deutschland ungefähr 65° gegen die Horizontale geneigt sind.

Um die Grundfunktion der Magnetfeldsensoren zu prüfen, kann man einfach 
die Rohdaten von X- und Y-Kanal verwenden. Zeichne die Daten einfach 
auf, während du den Sensor langsam um die Z-Achse drehst. Anhand eines 
xy-Diagramms, in das die Punkte eingezeichnet sind, läßt sich dann mehr 
sagen.

Gruß
Matthias
von Norbert S. (norberts)


Lesenswert?

Hi,

das merke ich beim Testen auch gerade.
Ok, das System wird durch Gyros waagerecht gehalten und kleines Kippen 
kann ich mit den Beschleunigungssensoren gut erkennen. Kippt das Ding, 
dürfte die Erdanziehung mehr wirken als die Beschleunigung. Dann eben 
umschalten auf den Gyro.
Das wird noch spannend...

Gruß,
Norbert
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.