GPS Modul NEO-6M

Autoren: Prof. Dr.-Ing. Schneider
Einleitung
Das GPS-Modul NEO-6M zählt zu den weit verbreiteten Empfängern für satellitengestützte Positionsbestimmung in eingebetteten Systemen und experimentellen Anwendungen. Es basiert auf der Global Positioning System (GPS)-Technologie und nutzt Signale mehrerer Satelliten, um die geographische Position, die Geschwindigkeit sowie die exakte Zeit des Empfängers mit hoher Genauigkeit zu bestimmen. Der NEO-6M-Empfänger integriert einen hochempfindlichen GNSS-Chip, der den Empfang selbst unter ungünstigen Umgebungsbedingungen – etwa in urbanen Gebieten oder bei partieller Abschattung – ermöglicht. Durch seine kompakten Abmessungen, die geringe Leistungsaufnahme und die standardisierte serielle Schnittstelle eignet sich das Modul insbesondere für mobile, mikrocontrollerbasierte Systeme, etwa in der Robotik, der UAV-Navigation oder der Umweltmesstechnik.
Technologisch zeichnet sich der NEO-6M durch eine hohe Empfindlichkeit, schnelle Time-to-First-Fix (TTFF) und eine zuverlässige Verarbeitung von NMEA-Datensätzen aus. Ergänzend verfügt das Modul über integrierte Funktionen wie Assisted-GPS (A-GPS) zur Beschleunigung des Positionsermittlungsprozesses und eine Pufferbatterie zur Sicherung von Almanach- und Ephemeridendaten. Diese Eigenschaften machen das NEO-6M-Modul zu einer kostengünstigen, aber leistungsstarken Lösung für Forschungs-, Entwicklungs- und Bildungsprojekte, in denen präzise und reproduzierbare Positionsdaten erforderlich sind.
Technische Übersicht
| Eigenschaft | Daten |
|---|---|
| Hersteller | Goouu |
| NEO-6M-0-001 | |
| Spannungsversorgung |
VCC 3-5 V |
| Stromaufnahme |
30-50 mA |
| Temperaturbereich |
-40 bis +85 °C |
| Empfohlene Baudrate |
Default 9600 Baud (variabel 4800 … 230400) |
| GNSS-System | GPS (L1-Band, 1575,42 MHz) |
| Positionsgenauigkeit | typ. 2,5 m CEP unter freiem Himmel |
| Geschwindigkeitsgenauigkeit | 0,1 m/s |
| Zeitgenauigkeit | ca. ±30 ns |
| Time to First Fix (TTFF) |
|
Pinbelegung

Das Modul arbeitet meist mit 5 V-kompatibler Logik, wenn es auf einem Breakout-Board sitzt (z. B. mit Spannungsregler und Pegelwandler). Falls nicht, müsste man auf Levels achten (3,3 V).
| Pin | NEO-6M | Signal | Arduino Uno R3 |
|---|---|---|---|
| 1 | Masse GND | 0 V | GND |
| 2 | Betriebsspannung Vcc | 3-5 V | VCC, 3,3 V |
| 3 | RXD | Empfang von Daten | TX, D4 |
| 4 | TXD | Senden von Daten | RX, D3 |
| 5 | PPS* (Pulse/s) |
- PPS sollte an den Clock Pulse Ausgang (CPOUT) eines Mikrokontrolers angeschlossen werden. Dieser Pin wird bei einer Computerverbindung nicht angeschlossen.
Empfehlung:
- Nutzen Sie keinen Hardware-RX (Pin 0), da dies die USB-Kommunikation stört. Verwenden Sie stattdessen
SoftwareSerial. - Einen Anschlussplan zeigt Abb. 3.
Messverfahren
Das Global Positioning System (GPS) ist ein satellitengestütztes Navigationssystem, das die Bestimmung der Position, Geschwindigkeit und Zeit eines Empfängers auf der Erdoberfläche oder in der Atmosphäre ermöglicht. Das zugrunde liegende physikalische Prinzip basiert auf der Laufzeitmessung elektromagnetischer Signale, die von einer Vielzahl orbitaler Satelliten ausgesendet werden. Jeder GPS-Satellit sendet kontinuierlich codierte Signale, welche die präzise Sendezeit sowie die jeweilige Satellitenposition enthalten. Die Position der Satelliten wird durch hochstabile Atomuhren und regelmäßige Bahnmodellierungen gewährleistet.
Ein GPS-Empfänger bestimmt seine eigene Position durch Trilateration: Er misst die Laufzeit der Signale von mindestens vier Satelliten. Aus dieser Laufzeit wird die pseudorange, also die scheinbare Entfernung zum jeweiligen Satelliten, berechnet. Da elektromagnetische Wellen sich nahezu mit Lichtgeschwindigkeit ausbreiten, ist eine exakte Zeitmessung erforderlich. Bereits kleinste Zeitfehler würden zu erheblichen Positionsabweichungen führen; daher wird eine vierte Messung benötigt, um neben den drei räumlichen Koordinaten auch die interne Uhrenkorrektur des Empfängers zu bestimmen.
Die Satelliten befinden sich auf mittleren Erdumlaufbahnen (Medium Earth Orbit, 20.200 km) und gewährleisten durch ihre Konstellation, dass zu nahezu jedem Zeitpunkt und an nahezu jedem Ort der Erde mindestens vier Satelliten sichtbar sind. Die Genauigkeit der Positionsbestimmung hängt von verschiedenen Faktoren ab, darunter die atmosphärische Signalverzögerung (Ionosphäre und Troposphäre), Mehrwegeffekte durch Reflexion an Oberflächen sowie die geometrische Satellitenanordnung, ausgedrückt durch die Dilution of Precision (DOP).
Durch Modellierungsverfahren, Korrekturdatendienste (z. B. SBAS) und moderne Empfängertechnologien können diese Fehlerquellen reduziert werden. Damit stellt GPS ein hochpräzises, global verfügbares Navigationssystem dar, das in wissenschaftlichen Anwendungen, im Transportwesen, in der Geodäsie sowie in Alltagsgeräten wie Smartphones und Navigationssystemen unverzichtbar ist.
Protokolle
NMEA-0183 Protokoll (Standard-GPS-Datenausgabe)
Das NEO-6M gibt standardmäßig NMEA-Sätze aus.
Typische Datensätze sind:
- GGA – Fix-Daten (Position, Höhe, Satellitenzahl)
- RMC – empfohlene Minimaldaten (Zeit, Datum, Position, Geschwindigkeit)
- GSV/GSA – Satelliteninformationen
- VTG – Bewegungsrichtung und Geschwindigkeit
- GLL – geografische Position
Format: ASCII-Text durch Kommata getrennt.
Beispiel:
$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,,*47
UBX-Protokoll (u-blox Binary Protocol)
Ein binäres, hoch effizientes proprietäres Protokoll von u-blox.
Verwendung:
- Konfiguration des Moduls (Baudrate, Update-Rate, Navigationseinstellungen, Filter)
- Abruf präziser und rohformatiger GNSS-Daten
- Aktivieren/Deaktivieren einzelner NMEA-Sätze
- GPS-Engine steuern (z. B. Power-Mode, dynamisches Modell)
RTCM (optional, abhängig von Firmware/Modulvariante)
Einige NEO-Module können RTCM-Korrekturdaten empfangen, um DGPS zu unterstützen. Beim NEO-6M ist dies jedoch nur eingeschränkt und nicht für RTK geeignet.
- Beispiel Auswertung des NMEA 0183 Protocol engl.
- Beispiel Auswertung des NMEA 0183 Protocol Aufbau und Programmierung eines ähnlichen Boards mit gleichem Chip. Achtung Pinbelegung ist anders! deutsch
Messschaltung

Die vorgeschlagene Messschaltung wird in Abb. 3 dargestellt.
Software
Arduino
Arduino-Bibliothek installieren
Für einfache Nutzung: → TinyGPSPlus von Mikal Hart (1.0.3)
Installation über: Sketch → Bibliothek einbinden → Bibliotheken verwalten → TinyGPSPlus suchen
Wenn Sie die HSHL-Bibliotheksordner einbinden, sind alle Ordner bereits installiert.
Quelle:
https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner
Ziel:
c:\HSHL-User\Documents\Arduino\libraries
DemoGPSNeo6M.ino
|
#include <SoftwareSerial.h>
#include <TinyGPSPlus.h>
TinyGPSPlus gps;
// GPS an Pins 4 (RX) und 3 (TX)
SoftwareSerial gpsSerial(4, 3);
void setup() {
Serial.begin(9600);
gpsSerial.begin(9600); // Standard-Baudrate des NEO-6M
Serial.println("GPS Daten werden gelesen...");
}
void loop() {
while (gpsSerial.available() > 0) {
gps.encode(gpsSerial.read());
}
if (gps.location.isUpdated()) {
Serial.print("Breite: ");
Serial.println(gps.location.lat(), 6);
Serial.print("Laenge: ");
Serial.println(gps.location.lng(), 6);
Serial.print("Hoehe: ");
Serial.println(gps.altitude.meters());
Serial.print("Satelliten: ");
Serial.println(gps.satellites.value());
Serial.print("Zeit: ");
Serial.print(gps.time.hour());
Serial.print(":");
Serial.print(gps.time.minute());
Serial.print(":");
Serial.println(gps.time.second());
}
}
|
URL: https://svn.hshl.de/svn/Informatikpraktikum_1/trunk/Arduino/ArduinoLibOrdner/ArduinoUnoR3/examples/DemoGPSNeo6M/DemoGPSNeo6M.ino
Simulink
Messung
Beispielausgabe von DemoGPSNeo6M.ino für einen Standort in Lippstadt.
Breite: 51.673500 Laenge: 8.364261 Hoehe: 93.40 Satelliten: 8 Zeit: 8:0:42
Dies entspricht dem Hochschulstandort in Lippstadt (51°40'24.6"N 8°21'51.3"E).
Video
Datenblätter
- NEO6M bei Funduino
- Beispiel für 7 er
- Hersteller Seite
- Hersteller Datenblatt
- Hersteller Datenblatt Zusammenfassung
Weiterführende Artikel
→ zurück zum Hauptartikel: Sensor-Baukasten
→ zurück zum Hauptartikel: HSHL-Mechatronik-Baukasten