GPS-Informationen auswerten.
Conrad GPS-Empfänger CR4, Chip u-blox LEA-4H


In meinem "Fahrrad-Akku-Controller" sollten neben den Daten, akt. Motorstrom und Restkapazität
des Akkus, auch Streckendaten erfasst und gespeichert werden. Besonders die gefahrenen Höhenmeter
und der Leistungsbedarf "am Berg" sind für mich von Interesse.

Auf der Suche nach einem geeignetem Höhensensor bin ich auf der Internetseite mikrokopter.de von
Holger Buss fündig geworden. In diesem Projekt wird aber nicht nur der analoge Luftdrucksensor MPX4115A
zur Höhenbegrenzung und Regelung verwendet sondern auch ein GPS-Empfängermodul um den Mikrokopter
möglichst exakt an einer Position zu halten. In der Nachbauanleitung ist auch die Information enthalten, dass
das GPS-Modul von der Fa. u-blox hergestellt wird und aus dem Conrad GPS-Empfänger Cr4 "entnommen" ist.

Auf den u-blox Seiten gibt es neben den technischen Daten der Module das "Buch" GPS-Basics, eine für mich
höchst lehrreiche Lektüre. Nach Studium der NMEA-Protokolle habe ich gelernt, dass es eigentlich eine
leichte Übung sein muss alle interessierenden Daten mit einem Mikrokontroller via RS232 auszulesen.

Knapp 70.-€ kostet der GPS-Winzling incl. Versand bei Conrad und war in 2 Tagen geliefert.

Die Inbetriebnahme

ist denkbar einfach und gelang auf Anhieb problemlos. Auf der mitgelieferten CD ist die Installation der Treiber
geradezu perfekt beschrieben und leicht nachzuvollziehen.

Nach der Installation des Programmes LibUSB ist der Empfänger  an beliebigem USB-Port anzuschließen.
Es folgt die Standard XP-Prozedur <Neue Hardware gefunden> und die Treiberinstallation ist abgeschlossen.
Per Gerätemanager wird der zugewiesene Port ( bei mir COM7) festgestellt und die Spannung steigt.

Hyper-Terminal-Test:

HT kongfigurieren mit Menu "Datei -> Eigenschaften":

Eintrag des Port lt. Gerätemanager, -> Konfigurieren

Verbindung speichern, bei mir unter CR4, fertig!

Und schon meldet sich der GPS Empfänger mit seinen voreingestellten Protokolldaten:

Im Sekundentakt liefert der LEA-4H diese 7 Zeilen, beginnend mit $GPRMC, .......bis $GPZDA,....
Leider sieht das wenig nach brauchbaren GPS-Daten aus, zeigt aber immerhin, dass der Winzling lebt.
Ich vermute, dass es am Empfang mangelt, obwohl ich gelesen habe, dass das Modul LEA-4H mit
"Super Sense" ausgestattet ist und auch "Indoor" geeignet sein soll. Indoor ist in meinem Fall keine
Stahlbetondecke sondern Rigips unter Holzbalken und darüber Beton-Dach-Pfannen. Ergo 3m USB-
Verlängerungskabel und den Empfänger auf den Balkonboden gelegt. Nach kurzer Zeit, ich nehme an
der Cr4 hat inzwischen einen "ColdStart" hingelegt, zeigt HT folgendes:

Für den Screenshot musste ich die Verbindung trennen und ich kann die ersten NMEA Protokolle lesen. Wunderbar!

RMC-Datensatz
Der RMC-Datensatz (Recommended Minimum Specific GNSS Data) beinhaltet Informationen bezüglich Zeit, geographische Breite, Länge und Höhe, Status des Systems, Geschwindigkeit, Kurs und Datum. Dieser Datensatz wird von allen GPS-Empfängern übermittelt.

$GPRMC,104522.00,A,4823.60958,N,01059.88685,E,0.036,213.44,051207,,,A*63

 $ = Beginn des Datensatzes

GP
= Informationen stammen von einem GPS-Gerät

 RMC = Kennzeichnung des Datensatzes

104522.00 = Empfangszeit (Weltzeit UTC): 10h 45 min 22.00 sec

A = Qualität des Datensatzes: A bedeutet gültig (V= ungültig)

4823.60958  = Breite: 48° 23.60985 min  N = nördliche Breiterichtung (N=Nord, S= Süd)

01059.88685 = Länge: 8° 33.912 min E = östliche Längenrichtung (E=Ost, W=West)

0.036 = Geschwindigkeit: 0,04 Knoten ( eigentlich Unsinn, das Ding rührt sich nicht am Boden!)

213.44 = Kurs: 205,5° ( der nächste Unsinn, wer sich nicht bewegt, hat keinen Kurs!)

051207 = Datum: 05. Dezember 2007

,,, = 2 Werte fehlen :Eingestellte Deklination: x,x° X  Richtung der Deklination (W = Westen, E = Ost)

* = Begrenzungszeichen für die Check-Summe

63 = Checksumme zur Kontrolle des gesamten Datensatzes

<CR><LF> = Ende des Datensatzes
 

Sehr erfreulich, die Definition der Datensätze findet man in dem schon gelobten u-blox Buch. Um dieses
Studium kommt man nicht herum !!

Das u-Center:

Die Fa. u-Blox bietet im Downloadbereich das Programm " u-Center" kostenlos an. Auf der mitgelieferten Conrad-CD
ist eine ältere Version enthalten, die ich nicht installiert habe.

Unter "Support, Tools und Hilfe" findet man den Download für uCenterSetup.zip  und die Anleitung im .pdf Format.
Sorgfältiges Lesen lohnt sich allemal.

Also CR4 abstecken, HyperTerminal schließen und u-Center entzippen und mit Setup installieren.


Und schon starte ich die u-center Application:

Einzustellen ist lediglich der  Port, in meinem Fall COM7 und die Baudrate 38400.


 

Um die vielfältigen Funktionen und Darstellungen zu nutzen und zu verstehen hilft nur LESEN und Testen!
Als wichtigstes Menu nenne ich "View"

Über die Docking Windows steuert man die kleinen "Ansichten", alle anderen Views laufen im Hauptfenster
des Programmes. Die wichtigen erreicht man auch über die Funktionstasten F6 bis F12.
F8 z.B. ist der "Hyperterminal-Ersatz", mit F12 kann man sich über die Genauigkeit wundern, so oder so!

 

Der Umbau des Empfängers:

Nachdem ich die Daten in meinem Mikroprozessor auswerten will, muss ein kleiner "Eingriff" in das
Innenleben des CR4 gemacht werden.
Lt. Datenblatt verfügt der LEA-4H Chip über eine UART-RS232-Schnittstelle. In Pit Schulten's Projekt-
Dokumentation (auch ein Quadrokopter-Guru, Pitschu Soft-Erzeuger) finde ich im Stromlaufplan den
Hinweis, dass der Sendepin des Chips auf einem Lötauge zu finden ist und TTl-Pegel führt, also direkt
am Mikro angeschlossen werden kann. Prima!

Nach Lösen von drei Schräubchen hat man die Mini-Platine mit dem Chip und der rückseitigen
Keramikantenne vor sich.



Den Verdacht, dass die schwarze und rote Litze GND bzw. +5V sind, bestätigt eine Messung. Wenn GND auf
Lötauge Nr 1 liegt ist Nr 4 +5V und Nr. 10 RS232 data-out.



Auf der Antenneseite habe ich 2 Leitungen angelötet, GND = 1 = grün und TXD = 10 = gelb.
Die beiden Drähtchen lassen sich neben dem USB-Kabel "einquetschen" und das CR4-Gehäuse
so halbwegs wieder zuschrauben.

Mein ATMEL Entwicklungsboard ist ein STK500, das eine ser. Standardschnittstelle mit Pegelumsetzer
bietet. TXD und RXD sind auf den zwei Pins RS232-Spare verfügbar.
Und schon wird TXD-CR4 am TXD-Pin angeschlossen. Das STK500 ist an meinen PC an COM1
angeschlossen.
Eine Hyperterminal-Verbindung zu COM1 ist rasch konfiguriert, ich wähle erstmal 9600 Bd.

O Wunder, im u-Center View->Text-Console (F8) und auf dem HT erscheinen auf Anhieb die gleichen
NMEA-Protokolle. Nun kommt Ctrl+F9, die Konfiguration-View ins Spiel:



Mit den Antenna-Settings habe ich nichts am Hut, aber mit "PORTS".



Unter Target werden die möglichen Schnittstellen aller u-blox Chips angeboten.
Der LEA-4H hat lt. Datenblatt USB und UART1.

Zum Test ändere ich die Baudrate auf 19200 und schicke dies mit dem Button "Send" an den Chip.
Gleiches im Hyperterminal an COM1 und die Daten ticken schneller. Wunderbar!
Unter Protocol out lasse ich UBX (privates u-blox Format) und NMEA stehen, weil ich auf dieser
Schnittstelle nichts senden werde kommt Protocol in auf "none", und "Send"



LEA-4H bietet die Möglichkeit nur die benötigten Telegramme zu senden. Das ist praktisch
weil damit unnötiger "Verkehr" und Interrupts auf dem Mikro vermieden werden können.
Dazu dient Configure Messages:



Unter Message werden alle angeboten die das System ALLER Chips kennt.
Mit Auswahl einer Message, hier z.B. F0-00 NMEA GPGGA wird durch Haken und Ziffern
angezeigt an welchem Port wieviele dieser Message ausgegeben werden. Hier an
Port USB und USART1 jeweils 1 Mal.



Soll eine Nachricht nicht gesendet werden muss statt 1 die 0 eingetragen werden und "Send" nicht
vergessen.



Nach "Send" wird die Wirkung am Hyperterminal sofort sichtbar, an der USB-
Schnittstelle ändert sich natürlich nichts! Wie am der TextConsole sichtbar !

Damit besteht eine absolut sichere und simple Möglichkeit der Datenanpassung.

Zu guter letzt sollte die eingestellte Konfiguration gespeichert werden, damit nach dem nächsten
Power up nicht die ursprüngliche Konfiguration wirksam ist.
Dazu dient Configure Configuration und "Send" !!



Soweit so gut oder auch nicht, wie ein Blick auf die Deviation Map zeigt



Die Fehler sind "erheblich" wenn ich z.B. an die Positionsbestimmung eines Mikrokopters
im Garten denke. Dabei kommt es zu "heftigen" Sprüngen" im Bereich von 10m und mehr,
vermutlich hervorgerufen durch den Wechsel bestimmter Satteliten in der Berechnung. Im akt.
Testfall, GPS-Mouse auf dem Balkonboden, 1m vor einer Südwand sind auch nur die südlichen
Satteliten gut "sichtbar" die nördlichen sind "hinter" der Wand mit geringer Elevation (<15Grad):

Diese Einflüsse werde ich noch kennenlernen !!

Bei der Auswertung der Höhenmessung muss man wissen, dass die Geodidhöhe mit dem
Korrekturwert verrechnet werden muss. (Höhendifferenz zwischen Ellipsoid und Geoid).
Schwankungen um bis zu 60m innerhalb von 10 Minuten habe ich mit der akt. Antennen-
position beobachtet!

Eine Menge an Informationen liefert die Statistic View.
Hier ein kleiner Ausschnitt:



Die Werte Minimum, Maximum und Durchschnitt für :
Breite, Länge, Höhe, Höhe MSL, X, Y, Z
Besonders "unbrauchbar" die Höhe MSL mit Bandbreite von 69m, wobei der Mittelwert um 10m
zu hoch ist, lt. topographischer Karte und Google Earth!

Die Empfangsbedingungen waren in den letzten 50 Minuten stets gut, min. 4 Sv max. 7 und
wolkenloser Himmel.

 

Bisherige Erkenntnis:

LEA-4H ist sehr leicht an den Mikroproz. anzuschliessen.
Problemlose Konfiguration der Schnittstellen und Telegramme.
U-Center ist ein feines Programm zum Kennenlernen der Thematik.
Die Messergebnisse sind ernüchternd schlecht.
Die Höheninformation ist im Bereich +- 100m unbrauchbar.

Ob andere GPS-Mäuse genauer sind kann ich natürlich nicht beurteilen.

 

Haberskirch, den 5. Dez. 2007

Steinhart Winfried