Mein Ziel ist es ja den kleine Roboter mit einem GPS Empfänger auszustatten damit er GPS-Wegpunkte abfahren kann. Damit das möglich wird muss die Ausrichtung des Roboters zum Nordpol bekannt sein. Nur so können die verschiedenen Winkel wie auch der Kurswinkel berechnet werden. Daher möchte ich ein Magnetometer auf dem Roboter anbringen um immer exakt zu wissen in welche Himmelsrichtung die Vorderseite des Roboters aktuell zeigt. Bei meinen Robotern die einen Raspberry Pi verwenden setze ich immer das Raspberry Pi SenseHAT ein. Mit diesem extra SenseHAT habe ich es schon realisiert das meine Roboter Wegpunkte abfahren.

Hier bei diesem Projekt mit dem ESP8266 NodeMCU möchte ich ein günstiges Magnetometer verbauen. Ich habe mir bei Ali Express ein Magnetometer mit dem Chip HMC5883L gekauft. Für diesen Chipsatz gibt es viele Anleitungen und auch wieder eine sehr gute Bibliothek von Adafruit.

Hier ein Bild wie ich das Modul in meinem Roboter verbaut habe. Bei dieser Position ist meine Sorge, dass das Magnetometer eventuell von den eng angrenzenden Modulen wie dem Servo Kontroller oder Motortreiber gestört wird.

ESP8266 NodeMCU Magnetometer

ESP8266 NodeMCU Magnetometer

Magnetometer verkabeln

Die Verkabelung ist eigentlich wieder recht einfach. Da aber die I2C Geräte in dem kleinen Modell immer mehr werden habe ich mir selber einen I2C Hub gebaut. Das ist recht einfach und in dem folgenden Artikel beschrieben.

Beschreibung I2C Hub selber bauen:

Angeschlossen wir das Magnetometer zusammen mit den anderen Geräten am I2C Hub und wir ebenfalls mit 3,3V als Spannung versorg. Das ist wichtig, da alle Sensoren mit 3,3V arbeiten und kein I2C bidirektionaler Step Down-Converter verbaut ist.

ESP8266 NodeMCU I2C Bus Magnetometer I2C Bus
3,3V 3,3V
GND GND
SDA SDA
SCL SCL

Nach dem alles soweit verkabelt ist sollte der Sensor funktionieren. Da ich mir immer nicht sicher war ob auch wirklich alle I2C Geräte funktionieren habe ich im Internet nach einen I2C Scanner für den ESP8266 NodeMCU gesucht und auch ein entsprechendes Programm gefunden. Das Programm ist auf der sehr guten Seiten www.esp8266learning.com unter dem folgenden Link zu finden. http://www.esp8266learning.com/i2c-scanner.php

Im folgenden Abschnitt geht es dann darum die entsprechende Software auf dem ESP8266 NodeMCU aufzuspielen und zu schauen ob die Nordrichtung zuverlässig angezeigt wird.

Magnetometer Software

Ich bin ja immer davon ausgegangen, dass ich ein Magnetometer mit dem Chip HMC5883L bei Ali Express gekauft habe. So war dieser beworben. Leider funktionierten nur nie die Bibliotheken für den HMC5883L zusammen mit meinem Modul nicht. Ich habe stundenlang herum gesucht, bis ich die folgende Seite gefunden habe Dir mit endlich eine Lösung aufzeigte. Kurz gesagt sind bei den billigen Magnetometer Modulen aus China gar nicht der beworbene HMC5883L Chip verbaut sondern der wohl viel billigere MechaQMC5883 Chip.

Mit den Beispielprogramm von Dr. Hans Christian Hillmann (siehe Link oben) konnte ich die ersten Werte aus dem Magnetometer auslesen.

ESP8266 NodeMCU Magnetometer Test

ESP8266 NodeMCU Magnetometer Test

Das kleine Programm kann hier herunter geladen werden: Program QMC5883

Wie zu frieden ich mit den Ergebnissen war erfahrt ihr im folgenden Abschnitt.

Magnetometer Erfahrungen

Leider bin ich ziemlich frustriert. Leider war es mir nie möglich exakt auszulesen wo Norden zu finden ist. Ich habe das Programm von Dr. Hans Christian Hillmann um eine OLED Anzeige erweitert und um einen Versuch der Kalibrierung des Magnetometers. Aber leider habe ich immer nur Werte erhalten die um die 101 oder 105 Grad gependelt sind. Das ist für meine Idee, dass Roboter Auto GPS Koordinaten abfahren zu lassen völlig unbrauchbar.

Auch habe ich die Position des Modules verändert und dieses auserhalb vom Roboter Auto an einen kleinen Masten angebraucht. Aber auch hier konnte ich die Nordrichtung nicht bestimmen.

ESP8266 NodeMCU Magnetometer new position

ESP8266 NodeMCU Magnetometer new position

So habe ich aktuell aufgegeben das Magnetometer weiter zu verwenden. Hier ist die Lösung beim Raspberry Pi und die Möglichkeiten der Kalibrierung wesentlich besser aber die Hardware ist auch um ein vielfaches teurer.

Das Video zeigt sehr gut das Problem, dass die Nordrichtung nie richtig erkannt wurde.

Zusammenfassung

Es hat mir viel Spaß gemacht das Magnetometer in das kleinen Roboter Auto einzubauen und auch habe ich wieder viel gelernt. Schade ist einfach das ich aus China ein Magnetometer erhalten habe das gar nicht den angepriesenen Chipsatz verbaut hatte sondern einen deutlich günstigeren. Dank der Seite von Dr. Hans Christian Hillmann konnte ich dieses günstige Modul trotzdem zum Laufen bekommen. Leider habe ich es nie geschafft zuverlässig die Nordrichtung zu bestimmen und habe aktuell aufgegeben. Eine Lösung wäre anhand dem GPS Signal die Nordrichtung zu bestimmen. In diesem Fall müsste das Roboter Auto im freien erst einmal ein paar Meter ca. 5m geradeaus fahren und anschließend könnte man aus den empfangenden GPS Koordinaten die Ausrichtung des Roboter Autos bestimmen.


Artikel Übersicht ESP8266 NodeMCU Roboter Auto:

Roboter bauen mit dem ESP8266 Entwicklungsboard – Einleitung
Roboter bauen mit dem ESP8266 Entwicklungsboard – Stromversorgung
Roboter bauen mit dem ESP8266 Entwicklungsboard – Bauteile
Roboter bauen mit dem ESP8266 Entwicklungsboard – Chassis
Roboter bauen mit dem ESP8266 Entwicklungsboard – Verkabelung Teil 1
Roboter bauen mit dem ESP8266 Entwicklungsboard – Verkabelung Teil 2
Roboter bauen mit dem ESP8266 Entwicklungsboard – Arduino Entwicklungsumgebung einrichten
Roboter bauen mit dem ESP8266 Entwicklungsboard – Ultraschall Sensor und Motorensteuerung
Roboter bauen mit dem ESP8266 Entwicklungsboard – WIFI Fernsteuerung
Roboter bauen mit dem ESP8266 Entwicklungsboard – Servo Motor Steuerung
Roboter bauen mit dem ESP8266 Entwicklungsboard – OLED Display
Roboter bauen mit dem ESP8266 Entwicklungsboard – Magnetometer
Roboter bauen mit dem ESP8266 Entwicklungsboard – GPS Empfänger Einführung

Artikel Ausblick:

Roboter bauen mit dem ESP8266 Entwicklungsboard – Gyroskop
Roboter bauen mit dem ESP8266 Entwicklungsboard – GPS Wegpunkte
Roboter bauen mit dem ESP8266 Entwicklungsboard – Solarzelle
(Visited 607 times, 1 visits today)