PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Pollin I2C Kompassmodul HDMM01



malthy
14.09.2011, 12:57
Hallo,

habe vor kurzem dieses recht günstige Kompassmodul bei Pollin entdeckt: http://www.pollin.de/shop/dt/NTM4OTgxOTk-/Bausaetze_Module/Module/Kompassmodul_HDMM01.html Ich habe es mir mal besorgt um etwas damit rumzuexperimentieren, in dem Rahmen habe ich die I2C Kommunikation mit dem Sensor in BASCOM impelmentiert. Vielleicht ist es für den ein oder anderen interessant, auf meiner Hompepage (http://www.mtahlers.de/index.php/elektronik/sensoren/mmc2120mg) findet man den Code und etwas Dokumenatiton - ich spare es mir mal, hier alles nochmal zu wiederholen...

Um einen Eindruck vom Endergebnis zu vermitteln, hier aber zumindest ein kleines Video von dem Kompass:


http://youtu.be/UuLwu6mB6lI

Gruß
Malte

Bammel
14.09.2011, 13:51
Hallo,

sehr interessant!
ich habe mir mal die website dazu durchgelesen. wenn ich das richtig verstanden habe wertest du beide achsen für die bestimmung zur nordrichtung aus!? wie verhält sich das ganze wenn das kompassmodul ca 20° nach vorne geneigt ist?

gruß, bammel

malthy
14.09.2011, 14:08
Hallo Bammel,

Du meinst, wenn der Sensor zur Erdoberfläche geneigt ist? Ja, das ist genau das Problem, es ist eben nur ein 2D-Sensor, er misst also in zwei Achsen das Erdmagnetfeld. Durch die Inklination, die in Mitteleuropa wohl so ca. bei 65° liegt, ist das Meßergebnis verfälscht, wenn der Sensor nicht parallel zur Erdoberfläche ausgerichtet ist.

Gruß
Malte

Bammel
14.09.2011, 14:30
Hey,

schade... ich hatte gehofft die verfälschung damit umgehen zu können. also muss wohl doch ein 3-achs kompass her. den habe ich zwar schon kann ihm allerdings keine korrekten werte entlocken.

oder meinst du das man mit dem kompass plus beschleunigungsmesser auch die verfälschung rausrechnen kann?

gruß, bammel

malthy
14.09.2011, 14:35
oder meinst du das man mit dem kompass plus beschleunigungsmesser auch die verfälschung rausrechnen kann?

Nee, praktisch wird das nicht gehen.


also muss wohl doch ein 3-achs kompass her. den habe ich zwar schon kann ihm allerdings keine korrekten werte entlocken

Was hast Du denn für einen 3D-Kompass? Mir hat diese Spielerei eigentlich Spass gemacht, könnte mir also auch vorstellen, mal einen 3-Achs Kompass zu verwenden. Hab mich bisher nicht umgesehen, was es da (erschwingliches) gibt...

Gruß
Malte

Bammel
14.09.2011, 14:48
Ich hab den HMC5843.

http://www.watterott.com/de/Kompass-Modul-HMC5843

kostet abe auch eine mark mehr. als der von dir verwendete.

vorschlag wäre einfach zwei von deinen zu verwenden und den zweiten um 90° zu drehen. dafür müsste man aber die adresse verändern können.

malthy
14.09.2011, 14:54
jo, der wäre mir jetzt zu teuer als reines Spielzeug :-). Das Verwenden eines zweiten Sensors am gleichen µC geht leider nicht so ohne weiteres, weil die I2C-Adresse fest ist. Man müsste tricksen und zwei I2C Interfaces am selben µC realisieren, eines in Hardware, eines in Software. Kann Bascom das vielleicht sowieso?

Bammel
14.09.2011, 15:02
Bascom verwendet standartmässig eh die software variante.
gibt es am chip keine pins für die adressierung?

aber ich glaub ich werd mir den kompass mal bei pollin bestellen.

wärte das eine alternative?
http://www.watterott.com/de/Triple-Axis-Magnetometer-Breakout-HMC5883L

malthy
14.09.2011, 15:06
Nein, leider lässt sich die Adresse des Sensors nicht von außen ändern. Was I2C und Bascom angeht: mir ist aus dem Stehgreif gerade nicht ganz klar, ob man Hardware und Software I2C parallel verwenden kann. Grundsätzlich benutze ich in Bascom immer die TWI-Hardware vom Controller für I2C.

BMS
14.09.2011, 16:05
Hallo,
sieht ganz interessant aus ;)
Die Ansteuerung scheint auch nicht allzu kompliziert zu sein.
Bisher habe ich das CMPS03-Modul verwendet, der HDMM01 scheint ja eine gute Alternative zu sein, v.a. wegen Auflösung, Abtastrate, Größe und nicht zuletzt Preis. Noch eine Frage: Schickst du die Rohwerte (x,y-Bytes) an den PC oder rechnet der Atmega das mit atan2 um und schickt den Winkel dann an den PC? Falls letzteres: geht atan2 stark auf die Performance? Wie lange dauert es etwa, bis der Winkel ausgerechnet wurde?
Ein zweidimensionaler Kompass hat natürlich immer das Problem, dass die Werte bei Neigung nicht mehr stimmen. Für Roboter, die sich auf einer Fläche bewegen, ist das aber ausreichend.
Grüße,
Bernhard

malthy
14.09.2011, 16:19
Hallo Bernhard,

ich übertrage die rohen Sensorwerte zum PC und rechne alles weitere da. Es sollte aber kein Problem sein, das auf dem µC zu rechnen - anhängig natürlich davon, was der sonst noch so zu tun hat. Ich kann nachher mal schnell nachgucken, wie lange der atn2 von Bascom dauert. Man schleppt halt einiges mehr an Overhead wegen der Trigonometrie mit -> Programm wird größer.

Gruß
Malte

hammerhai
15.09.2011, 12:53
Ein zweidimensionaler Kompass hat natürlich immer das Problem, dass die Werte bei Neigung nicht mehr stimmen. Für Roboter, die sich auf einer Fläche bewegen, ist das aber ausreichend.

Wenn der Roboter auch mal eine Steigung o.ä. fahren sollte würde sich doch auch eine kardanische Aufhängung des Moduls anbieten oder? Wie bei 'nem Schiffskompass.
Oder kann man dann auch gleich ein 3D-Modul kaufen?