Einfache GPS-Decoder mit LCD-Anzeige
Letzte Änderung am 24. Februar 2008
Version 1 mit ATMEGA 8-Prozessor

Mit der Schaltungsanordnung gemäß Abb.1 ist es möglich, die von vielen GPS-Empfängern, -Boards oder -Mäusen  normalerweise im Sekundentakt ausgegebenen NMEA-Daten zu decodieren und mithilfe eines Standard-2x16-Zeichen-LCD-Displays zur Anzeige zu bringen. Dem seriellen Eingang müssen die Daten mit RS232-Pegel zugeführt werden. Liegen sie nur mit TTL-Pegel vor, so können sie auch direkt an Pin2 des Prozessors gelegt werden. Brücke "J1" entfällt in diesem Fall. Gearbeitet wird mit der Standard-Datenrate von 4800bps.


Abb.1

Abb.2 zeigt  die einzelnen Komponenten  der Versuchsanordnung.  Anstelle des mit Transistor "Tr1" aufgebauten Pegelwandlers wurde hierbei allerdings eine mit dem Baustein MAX232 arbeitende kleine Zusatzplatine verwendet. Die 5V-Spannungsversorgung erfolgte in diesem Fall über den 10pol. ISP-Adapter.


Abb.2

Wie aus Abb.2 ersichtlich ist, werden Breiten- ( LAT ) und Längengradwerte ( LON ) angezeigt.
Das bei den Auswertung der NMEA-Protokolle des Typs "RMC" benutzte Format ( GGMM.MMM ) wird dabei direkt übernommen. Weiterhin werden die Angaben über Bewegungsgeschwindigkeit ( Speed in Knoten ) und Bewegungsrichtung ( Course in Grad ) angezeigt.
Die Marke vor dem Geschwindigkeitswert wechselt nach jeder Protokolleinlesung zwischen Plus- und Minuszeichen und dient somit als Einleseindikator.
Die Auswertung ungültiger ( invalid ) GPS-Daten wird durch Anzeige eines Sternchens an der 1.Stelle in der oberen Reihe signalisiert ( da in Abb.2 nur gültige Werte dargestellt werden, ist sie in hier nicht sichtbar ).
Das  im Flashspeicher des ATMEGA abgelegte Programm wurde in BASCOM-AVR geschrieben. Es basiert auf einem von K.Kühnel stammenden Programmbeispiel. Sein Source-Code und das BIN-File können hier heruntergeladen werden. Sehr leicht kann das Programm auch an eigene Bedürfnisse angepasst werden. Da die meisten der aus dem RMC-Protokoll stammenden Einzelwerte in separaten Stringvariablen verfügbar sind, können sie bei Bedarf auch auf einfache Weise individuell abgeändert werden.

NEU im Februar 2008: weitere ATMEGA8-Softwareversionen

Zusätzlich wurde eine hier herunterladbare abgewandelte Softwareversion erstellt. NEU ist dabei die Möglichkeit, sowohl mit einer Rate von 4800bps, als auch 9600bps ankommende GPS-Daten verarbeiten zu können. Defaultmäßig ist der Standardwert 4800bps angewählt, aber nach Installation einer Brücke von Prozessor-Pin 4 ( PD.2 ) gegen Masse können ( nach Neustart des Programmes ) auch 9600bps-Daten verarbeitet werden.
Eine zweite Neuerung ermöglich die Auswahl zwischen Darstellung von entweder Bewegungsgeschwindigkeit ( in Km/h ) und Bewegungsrichtung ( in Grad ) oder alternativ von  Standard-Zeit "UTC" ( Stunden und Minuten ) und des 6 stelligen MAIDENHEAD-LOCATORS.  Zur Anzeige der Bewegungsdaten ist Prozessor-Pin 5 ( PD.3 ) gegen Masse zu legen.
 

Abb.3:  Anzeige von LAT, LON, UTC und Maidenhead QTH-Locator

Auf besonderen Wunsch gibt es hier auch noch eine Softwareversion, die ( nur ) der Ausgabe von GPS-Geschwindigkeitswerten dient. Zur Anzeige genügt dabei eine 1x8 Zeichen-Standard-LCD-Anzeige *, wofür z.B. auch Versionen mit Großdarstellung infrage kommen. Die Geschwindigkeitswerte werden NMEA-Protokollen des Typs "RMC" entnommen. Diese müssen vom GPS-Empfänger mit der Standard-Datenrate von 4800bps bereitgestellt werden. Die Werte werden vom Programm  in "Km/h" umgerechnet und dann OHNE Nachkommastellen ausgegeben. Durch Masseverbindung von Port "PD2" ( ATMEGA8, Pin 4 ) lässt sich bei Bedarf zusätzlich auch die Maßeinheit "Km/h" anzeigen.

* Die Verwendung von z.B. 1x16 oder 2x16-Zeichen-Displays  ist ebenfalls möglich.

NACHBAU:
Eine speziell auf dieses Projekt abgestimmte Platine gibt es ( noch ) nicht.  Geeignete LCD-Displays gibt es sehr günstig  bei z.B.: http://www.pollin.de oder http://www.reichelt.de.  Insgesamt kommt man für alle Bauteile des Decoders auf Kosten in der Größenordnung von etwa Euro 10
Bei Pollin gibt es übrigens auch eine universell verwendbare Platine für einen bidirektionalen RS232-TTL-Converter mit dem MAX232. Der komplette Bausatz kostet weniger als Euro 4.

Version 2 mit ATMEGA8-Prozessor

Im Internet habe ich noch das Folgende, ebenfalls den ATMEGA 8 verwendende Konzept gefunden: http://www.liebl-net.dtdns.net/hard/gps-moni/gps-moni.php

Version 3 mit PIC16F628-Prozessor
Ebenfalls aus dem Internet stammt das hier vorgestellte Projekt . Dabei werden sowohl GGA-, als auch RMC- und GLL-Protokolle decodiert. Als Prozessor findet hierbei ein PIC16F628 Verwendung. Die  einzelnen Navigationsdaten verteilen sich auf mehrere Anzeigeseiten, die sich per Taster anwählen lassen. 
Version 4 mit AT89C2051-Prozessor
Bereits im Jahre 1997 hatte ich einen ähnlichen Decoder in der Zeitschrift CQ-DL ( Heft 11, Seite 860 ) veröffentlicht. Das Besondere dabei war, daß er nicht nur die Navigationsdaten, sondern auch den QTH-Locator anzeigte. Die zugehörige Link findet man hier: http://www.kh-gps.de/lcddisp.htm 

GPS-Empfängerbausteine

Wer geeignete GPS-Empfängerbausteine sucht, der sollte sich einmal die NAVILOCK-Moduln anschauen. Es gibt sie in drei unterschiedlichen Prozessorversionen. Standardmäßig liefern sie die gängigen NMEA-Protokolle ( mit 9600bps ), wobei es sowohl Versionen mit TTL-, RS232- als auch USB-Datenanschlüssen gibt.

< CLICK

Eine günstige Bezugsquelle findet man hier ( siehe besonders auch Seite 2 ):

http://www.hanobox.de/index.php/cat/c240_Boards-und-Module.html
http://www.hanobox.de/index.php/cat/c240_Boards-und-Module.html/page/2