Wie im anderen Thread bereits geschrieben möchte ich mir einen
elektronischen Kompass bauen, besser gesagt ich möchte einem
Mikroprozessor, welcher eine Strecke misst mitteilen, in welche Richtung
er sich bewegt. Der Mikroprozessor sollte am Schluss die Richtung
angeben können, in die ich mich bewegen muss um zum Ausgangspunkt zu
gelangen.
Bei meiner Suche nach einem passenden Chip habe ich einige gefunden
(hauptsächlich von Honeywell), allerdings weiß ich nicht, welche für
mich in Frage kommen.
Muss ich für mein Vorhaben ein Kompass-Modul mit einem
Beschleunigunssensor kombinieren um akzeptable Ergebnisse zu bekommen?
Das Ergebnis sollte auf 1°-2° genau stimmen, eine Auflösung von 1°
sollte man erreichen. Der Sensor sollte auch bei Neigung bis ca. 45°
noch richtige Messwerte ausgeben.
Wie wird die Strecke gemessen? Und aus welcher Entfernung soll wieder
zurück gefunden werden?
Besteht die Möglichkeit zum GPS-Empfang?
Mit einer Kombination aus Beschleunigungssensor, Wegmessung und Kompass
kannst du theoretisch Koppelnavigation betreiben und deine aktuelle
Position festellen. Praktisch hat man dabei kein leichtes Speil, weil
sich alle Fehler aufsummieren...
Wasser schrieb:> sollte man erreichen. Der Sensor sollte auch bei Neigung bis ca. 45°> noch richtige Messwerte ausgeben.
Schau mal nach CMP03, der benutzt 2 Phillips-Hallsensoren. Für einen
neigungsunempfindlichen Magnetfeldsensor brauchst du dann sogar noch
eine 3 Achse/Sensor, damit du Inklination und Deklination messen kannst.
Im Anhang ist das ganz gut erklärt (KMZ51/52)
Ich werde mich als nächstes mal mit dem pdf auseinandersetzen, die
Materie scheint mir schwieriger zu sein als ich dachte. GPS-Empfang ist
nicht möglich. Es ist auch nicht notwendig, zu wissen, wo auf der Erde
ich mich befinde, ich möchte nur, dass der µC mir anzeigt, dass ich mich
100m nach Süden bewegen soll, wenn ich mich vorher 100m nach Norden
bewegt habe. Die zurückgelegte Strecke beträgt ca. 1km und man sollte
den Ursprungspunkt auf ca. 50m genau treffen.
Meiner Meinung nach sollte das ohne Accelerometer nur mit einem 3-Achsen
Magnetfeldsenser möglich sein (hoffe ich), aber das steht hoffentlich in
dem pdf.
> Meiner Meinung nach sollte das ohne Accelerometer nur mit einem 3-Achsen> Magnetfeldsenser möglich sein
Nein, schwerer Denkfehler, denn der merkt überhaupt nicht, wie weit du
dich mit ihm zusammen bewegst.
>> Meiner Meinung nach sollte das ohne Accelerometer nur mit einem 3-Achsen>> Magnetfeldsenser möglich sein>Nein, schwerer Denkfehler, denn der merkt überhaupt nicht, wie weit du>dich mit ihm zusammen bewegst.
Ich habe mich falsch ausgedrückt. Es sollte nur mit einem 3-Achsen
Magnetsensor möglich sein zu bestimmen, in welche Richtung man sich
bewegt. Die Information, ob man sich überhaupt bewegt und wie weit oder
ob man in Ruhe ist, kommt natürlich nicht vom Magnetsensor.
Der Magnetsensor soll mir nur angeben, in welchem Winkel ich zum Nordpol
stehe, nur soll er das auch noch tun wenn er um 45° geneigt ist. Und das
sollte ohne Accelerometer gehen.
Wasser schrieb:> Der Magnetsensor soll mir nur angeben, in welchem Winkel ich zum Nordpol>> stehe, nur soll er das auch noch tun wenn er um 45° geneigt ist. Und das>> sollte ohne Accelerometer gehen.Beitrag melden | Bearbeiten | Löschen |
Lies dir das PDF durch. Dann wirst du feststellen das es ohne
Accelerometer nicht geht. Damit stellt man "virtuell eine plane
Bezugsebene her.
Ich bin endlich dazu gekommen das pdf zu lesen und hab jetzt auch
verstanden warum es ohne Beschleunigungssensor nicht geht.
Kennt jemand vielleicht ein fertiges neigungskompensiertes Kompassmodul,
welches über eine Schnittstelle auslesbar ist (also den Winkel direkt
ausgibt ohne das ich noch irgendwelche Berechnungen durchführen muss)?
Gefunden habe ich bis jetzt nur das CMPS03, aber das ist nicht
neigungskompensiert.
Schau dir doch mal den LSM303DLH von ST an.
Ist ein 3 Achsen Kompassmodul mit eingebautem 3 Achsen
Beschleunigungsmesser. Das ganz lässt sich über I2C ansprechen.
PeterK schrieb:> Schau dir doch mal den LSM303DLH von ST an.
Sorry, habe erst jetzt gesehen dass du den Winkelwert mit Kompensation
möchtest. Dies müsstest du beim ST selbst berechnen.
Honeywell hat sonst noch Kompas Module (evtl könnte der HMC6343 für dich
intressant sein) im Angebot welche dir den Winkelwert mit einberechneter
Kompensation über die Schnittstelle ausgeben.
Die gewünschte Genauigkeit könnte dir jedoch noch Probleme machen.
Einfluss der Batterie auf das Magnetfeld welcher je nach Ladezustand
variiert. Hier müsstest du aber mal ein paar Tests machen...
@PeterK:
Hast du mit dem LSM303DLH schon etwas gemacht bzw. ihn zum laufen
bekommen?
Ich habe ihn gerade zu Testzwecken,allerdings bekomme ich ihn nicht zum
laufen.Woran das liegt ist mir ein wenig schleierhaft,da er ja intern
nur aus dem HMC5843 und dem LIS331DLH besteht.Den HMC5843 besitze ich
ebenfalls separat und der funktioniert wie gewünscht.
MfG Maik
Das hilft aber immer noch nicht, das Problem zu lösen. Auch bei einem
neigungskompensierten Magnetsensor kommt hinten nur die Richtung dabei
raus, wie der Sensor im Raum orientiert ist. Dieser Wert ändert sich
aber nur, wenn man die ganze Anordnung dreht. Sie ändert sich nicht,
wenn man sich parallel im Raum bewegt, ohne den Sensor zu drehen. Somit
bekommt das Ding niemals mit, wie weit Du Dich bewegst. Stell Dir
einfach den klassischen Kompass mit seiner Magnetnadel vor. Nichts
anderes ist der elektronische Kompass mit Magnet- und Lagesensoren. Nur
daß die Ablesung ein elektrischer Wert ist.
Wenn Du allein mit Beschleunigungssensoren den Weg ermitteln möchtest
den Du gehst, dann musst Du die Beschleunigung sowohl Linear in 3
Dimensionen wie auch die Rotation über 3 Achsen aufintegrieren und
daraus die Geschwindigkeit und darüber die Strecke im Raum errechnen.
(Genaueres: http://de.wikipedia.org/wiki/Tr%C3%A4gheitsnavigation ). Das
wirst aber mit bezahlbaren Sensoren nicht genau genug hinbekommen.
Also bist Du darauf angewiesen, die Wegstrecke entweder anders zu
ermitteln (Schritte zählen, Kilometerzähler) und mit den Winkeldaten zu
verrechnen. ( http://de.wikipedia.org/wiki/Koppelnavigation ) oder ein
GPS-Gerät zu benutzen.
nein , das stimmt nicht ich kann die Y und Z Achse richtig lesen aber
die X Achse wird immer falsch gelesen , obwohl ich den selben
Lesevorgang für die drei Achse einsetze , ich würde mich auf ein
gelungenes code freuen
Danke