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