Ich habe bei meinen Raspberry Pi Robotern immer USB GPS Empfänger verwendet. Hier bei diesem Projekt möchte ich ja eine günstige Lösung schaffen und setze daher auf Module die wir serieller Schnittstelle angeschlossen werden können und unter 10,-€ das Stück kosten. Eventuell kann ich von diesen Modulen nicht so viel erwarten wie von einem 65,-€ Modul aber um das Prinzip der Navigation nach GPS Koordinaten umzusetzen sollte es vollkommen ausreichen. Ein ganz günstiges Module habe ich mir für diesen Beitrag nicht gekauft. Ich habe mit stattdessen ein u-blox GPS Modul GY-NEO6MV2 mit der Typbezeichnung NEO-6M gekauft das mit dem ESP8266 NodeMCU ohne Probleme über die serielle Schnittstelle zusammen arbeiten sollte.
Mein Testaufbau den ich für die ersten Versuche verwende bevor das Modul in den kleinen Roboter eingebaut wird sieht wie folgt aus.
Als erstes muss jetzt das Modul am ESP8266 NodeMCU angeschlossen werden. Wie das geht erfahrt ihr im folgenden Abschnitt
GPS Modul verkabeln
Das GPS Modul wird am ESP8266 NodeMCU mit vier Kabeln einmal an GND, 3,3V und den beiden Pins GPIO-XX und GPIO-XX angeschlossen. So kann eine serielle Schnittstelle über Software umgesetzt werden da die beiden typischerweise verwendeten Pins D1 und D0 bereits für die Kommunikation via I2C belegt sind.
ESP8266 NodeMCU | u-blox NEO 6M |
3,3V | VCC |
GND | GND |
GPIO-14 / D5 (RX) | TX |
GPIO-12 / D6 (TX) | RX |
Wer sich mit der Pin-Belegung des ESP8266 NodeMCU Entwicklungsboard nicht ganz sicher ist, dem hilft hoffentlich das folgende Bild weiter.
Nach dem der GPS Empfänger jetzt mit vier Female-to-Female Jumperkabel angeschlossen ist geht es daran ein erstes Testprogramm zu schreiben. Mehr dazu im nachfolgenden Abschnitt.
Software
Damit unser Programm die NMEA Daten über die serielle Schnittstelle empfängt und auch auswerten kann wird die „TinyGPS++“ Bibliothek benötigt und muss in der Arduino Entwicklungsumgebung installiert werden. Dazu bitte die Bibliothek über den folgenden Link herunter laden.
Download: TinyGPSPlus
Nach dem erfolgreichen Download muss die Bibliothek noch der Arduino IDE hinzugefügt werden. Dazu einfach über das folgende Menü Sketch>>Include library>>Add .ZIP library die *.ZIP Datein laden.
Das kleine Beispielprogramm geht davon aus, dass auch ein OLED Display am I2C Bus angeschlossen ist und wie im Artikel Roboter bauen mit dem ESP8266 Entwicklungsboard – OLED Display beschrieben die Bibliothek für das OLED Display vorhanden ist.
Sind soweit alle Voraussetzungen geschaffen, dann kann jetzt das nachfolgende Programm auf den ESP8266 NodeMCU übertragen werden.
Download: tinyGPS test program
Am besten jetzt den kleinen Roboter oder den Versuchsaufbau angeschlossen an eine Power-Bank in den Garten legen damit die kleine GPS Antenne eine freie Sicht zum Himmel hat.
Nach ca. 5 Minuten sollten dann die GPS Koordinaten auf dem OLED Display angezeigt werden. Die hinteren Stellen der GPS Information habe ich unleserlich gemacht.
Zusammenfassung
Der kleine und günstige GPS Empfänger funktioniert ohne Probleme zusammen mit dem ESP8266 NodeMCU über die serielle Software Schnittstelle. Jetzt ist es an der Zeit die NMEA Informationen auch für die Navigation zu verwenden. Allerdings ist hier noch das Problem offen, dass die Richtung zum Nordpol noch nicht bestimmt werden kann. Hierzu hatte ich im Beitrag Roboter bauen mit dem ESP8266 Entwicklungsboard – Magnetometer zu einem Magnetometer meine Erfahrungen bereits nieder geschrieben.
Artikel Übersicht ESP8266 NodeMCU Roboter Auto:
Roboter bauen mit dem ESP8266 Entwicklungsboard – EinleitungRoboter 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 – GyroskopRoboter bauen mit dem ESP8266 Entwicklungsboard – GPS Wegpunkte
Roboter bauen mit dem ESP8266 Entwicklungsboard – Solarzelle
Recent Comments