PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : GPS Modul Fragen



BlackDevil
08.05.2009, 18:39
Servus

Ich habe ein "kleines Semeter Projekt" für das 5. Semester angeleiert. Wir sind Zwei bis Drei Leute und Ziel wäre es einen GPS Tracker aufzubauen. Ich möchte an dieser Stelle betonen das es hier nicht darum gehen soll das man uns den kram vorkaut, es geht mir nur darum das ich Tips und Tricks zu den GPS Modulen bekomme und mal alle auf einen Blick hab, über die SuFu ist das etwas schwer, damit ich die Projektspezifizierung schreiben kann (ist ja der erste Schritt).

Ich habe mich schon ein wenig eingelesen in die Thematik und halte folgende zwei Dinge für Sinnvoll:
- NMEA-0183 Protokoll
Das Protokoll scheint einfach aufgebaut und einfach auszulesen. Die ankommenden Serielle Daten muss man dann nur noch in einzelne Bit-Haufen zerlegen und entsprechend auswerten
- Navilock Module sind gut und günstig und eine Bezugsquelle wäre http://www.hanobox.de/index.php/cat/c240_Boards-und-Module.html/page/2

Lieg ich soweit richtig? Sollen wir eher ein Modul mit RS232 Schnitstelle nehmen und das ganze mit dem MAX232 an den AVR (Mega32, 128 oder 162 muss ich mich noch für entscheiden) klemmen oder eher einen mit TTL Pegel und wie werte ich den mit TTL Pegel aus? Gibt es auch welche mit URART oder I2C Schnittstelle? CAN würde ich auch noch nehmen, ist aber bekloppt ^^.

Was für eine Rechenleistung erfordert das auswerten der GPS Daten? Ziel wäre es das Tracken Geschwindigkeitsabhängig zu machen (100km/h => oft Tracken, 0km/h gar nich mit Tracken).
Ausgabe soll dann über 3 Versionen erfolgen (geplant, implementieren würden wir die nach und nach von einfach bis schwer): SD Karte, Flash-Speicher um die Daten später auf den Rechner per USB übertragen zu können, direkte Übertragung per USB.
Wieviel Speicher braucht man etwa zum Tracken (so das man eben Abschätzen kann mit wieviel Speicher man wielange Tracken kann)?

Gut, ich hoffe dann mal auf fleisige Hilfe was die Auswahl der GPS Hardware angeht (und vll den ein oder anderen Tipp zur Performance).

Grüße :)

Kaktus621
08.05.2009, 23:30
Also wenn du das GPS Modul an einen AVR schließen willst, würde ich dir zur TTL Variante raten. TTL Pegel entsprechen nämlich den Pegeln, wie sie auch der AVR einsetzt (0V / +5V bzw +3V3). Dadurch würde das Gewandel mit dem MAX232 entfallen.

Ich habe ein sehr ähnliches Projekt gebaut, habe sogar bei der gleichen Bezugsquelle gekauft :) In meinem Fall das Navilock NL507-TTL.

Schau dir mal hier den Link an (ich hoffe, µC.net ist für euch keine Konkurrenz), dort habe ich mein Projekt vorgestellt: >> Klick hier << (http://www.mikrocontroller.net/articles/GPS_Logger)

Suggarman
09.05.2009, 08:16
Ein paar Anmerkungen:
Ich würde auch ein TTL-Modul nehmen, idealerweise mit der gleichen Versorgungsspannung wie der Controller.
Die Datenmenge kann man so nicht abschätzen. Welche Daten und wie oft soll gespeichert werden?
In Bits brauchst du nichts zerlegen, Bytes reichen :-)
Die meisten GPS-Module liefern nur eine Messung pro Sekunde, einige gehen bis 5 x pro Sekunde hoch.
Je mehr du mit den Daten anstellen willst, desto schneller sollte die serielle Übertragung sein (billige Module können u.U. nur 4800/9600 baud)
Selbst mit meiner C-Control kann ich GPS-Daten locker loggen. Der Mega wird unterfordert :-)
Nimm auf jeden Fall ein GPS-Modul mit anständiger Dokumentation und nicht eine billige GPS-Maus.
Zur Übersicht kannst du mal bei sparkfun schauen.

Viel Spaß damit

Stefan

BlackDevil
09.05.2009, 08:25
Dankeschön. Der TTL Pegel an sich ist mir klar, der quillt ja auch hinten aus dem MAX raus. Das heist ich verarbeite die GPS Daten am RX und TX Pin wie die gewandelten RS232 Daten?
Und ja, in Bytes zerlegen, nicht in Bits .... Tschuldigung.

Gut das klingt soweit ja schonmal brauchbar.

Mit der Datenmenge war das so gemeint: Ein Telegramm nach dem NMEA Standard hat eine gewisse Größe in Byte, entsprechend viele kann ich auf zB 2GB speichern. Weis auch nicht wieso ich gefragt habe, klar kann man das schlecht abschätzen, erst recht wenn ich von der Geschwindigkeit abhängig mit Logge. War wohl gestern Abend etwas neben der Spur.

Dann schau ich mir mal die uC.net-Projekt Doku und Spark Fun an und notiere erstmal das Navilock NL507TTL und einen Mega162 bzw Mega32.

Danke bis dahin :)

Kaktus621
09.05.2009, 08:33
Also bezüglich der Größe, ich zeichne immer alle NMEA Strings auf, mit der Standard Ausgaberate (ich glaube 4 pro Sekunde). Mit diesen Einstellungen hat eine Fahrt von ca. 2 Stunden und 40 Minuten bei mir eine Größe von 5,1MB.
Und ja, bei der TTL Version musst du das Modul einfach nur an den UART Port des AVR anschließen.

BlackDevil
09.05.2009, 08:40
Naja 5,1MB sind ja jetz nich der Hit, das ist in der tat wenig. Hätte irgendwie mit mehr gerechnet. Allerdings wird das Speichern auf interenen Speicher (bzw externes RAM an AVR) eher blöde... Mehrere kB sind mir bekannt aber mehrere MB? Und dann noch Flash Speicher damit es bis zum Auslesen nicht flüchtig ist? Ne - da is die Speicherkarten Version besser... Oder hat da noch jemand eine Idee? Google sagt nix xD

Suggarman
09.05.2009, 09:12
Wenn du das komplette NMEA speichern willst, wird die Datenmenge relativ groß. Das ist aber doch bestimmt nicht nötig. Wenn es nur ums Tracking geht, reichen doch die Postionsangaben, die Zeit, vielleicht noch Geschwindigkeit und Kurs oder so ähnlich. NMEA überträgt wesentlich mehr und zum Teil auch doppelt.
Der Unterschied zwischen TTL und RS232 ist nur das Spannungsniveau. TTL ist am Controller, RS232 am PC. Simple Schnittstellen kann man sogar nur mit ein paar Widerständen anpassen (bei niedriger Übertragungsrate).

mfg

Stefan

Suggarman
09.05.2009, 09:35
$GPGGA,065452.000,5059.0222,N,00616.9003,E,1,10,0. 8,78.7,M,47.6,M,,0000*68
$GPVTG,7.41,T,,M,0.00,N
$GPGSA,A,3,25,22,24,31,18,07,16,21,10,29,,,1.3,0.8 ,1.0*3A4.000,5059.0222,N,00616.9003,E,1,07,1.0,78. 7,M,47.6,M,,00
$GPRMC,065452.000,A,5059.0222,N,00616.9003,E,0.00, 7.41,140209,,,A*62
$GPGSA,A,3,10,25,31,24,16,29,21,,,,,,1.6,1.0,1.2*3 A
$GPVTG,7.41,T,,M,0.00,N,0.0,K,A*0F
$GPGSV,3,1,12,16,72,268

Das ist ein gängiger NMEA-Datensatz.
Das schwarze sind die reinen Positionsangaben.

Kaktus621
09.05.2009, 09:47
Wenn du das komplette NMEA speichern willst, wird die Datenmenge relativ groß. Das ist aber doch bestimmt nicht nötig. Wenn es nur ums Tracking geht, reichen doch die Postionsangaben, die Zeit, vielleicht noch Geschwindigkeit und Kurs oder so ähnlich. NMEA überträgt wesentlich mehr und zum Teil auch doppelt.
Der Unterschied zwischen TTL und RS232 ist nur das Spannungsniveau. TTL ist am Controller, RS232 am PC. Simple Schnittstellen kann man sogar nur mit ein paar Widerständen anpassen (bei niedriger Übertragungsrate).

mfg

Stefan

Das stimmt, ich verwerte letztendlich eigentlich nur die GPGGA und GPVTG Nachrichten, um zum Beispiel die Route oder Geschwindigkeits/Höhendiagramme zu erstellen. Ich hab bei meinem Modul nur nie rausgefunden, wie man den Rest abstellt, hab das aber auch nie weiter verfolgt, da sowieso Speicherplatz genug da ist (eine Tour ist nie länger als 6-8 Stunden, danach wird die Speicherkarte ja wieder ausgelesen).

Wenn du allerdings über einen längeren Zeitraum tracken willst, wäre das Abschalten der Nachrichten natürlich eine Sinnvolle Sache (oder wie schon erwähnt, die NMEA Strings direkt im Controller parsen und nur die reinen Positionsdaten etc. speichern).

Das Navilock NL507-TTL hatte 2 Datenblätter, wo alles zum Protokoll beschrieben war (also auch die Befehle, die das Modul akzeptiert). Alternativ kann man sich einen RS232-TTL Wandler basteln und das GPS-Modul an den PC anschließen. Dann kann man die Einstellungen mittels des "u-Blox Centers" verändern.

Suggarman
09.05.2009, 10:06
Das stimmt, ich verwerte letztendlich eigentlich nur die GPGGA und GPVTG Nachrichten, um zum Beispiel die Route oder Geschwindigkeits/Höhendiagramme zu erstellen. Ich hab bei meinem Modul nur nie rausgefunden, wie man den Rest abstellt, hab das aber auch nie weiter verfolgt, da sowieso Speicherplatz genug da ist (eine Tour ist nie länger als 6-8 Stunden, danach wird die Speicherkarte ja wieder ausgelesen).


Genau diese beiden werte ich auch nur aus. Dank einer vernünftigen Dokumentation habe ich meinem GPS-Modul auch beigebracht, nur diese beiden zu senden.
Bei 4800 baud geht es garnicht, alle 6 Zeilen ausgeben zu lassen.
Bei 9600 baud funktioniert es zwar, aber die Übertragung dauert fast die ganze Sekunde des Übertragungsintervalls. Und wann rechnet der Controller?
Mit 38400 baud und nur den benötigten zwei Zeilen dauert die Übertragung nur einen Sekundenbruchteil.

mfg

Stefan

BlackDevil
09.05.2009, 10:51
Wenn du das komplette NMEA speichern willst, wird die Datenmenge relativ groß. Das ist aber doch bestimmt nicht nötig. Wenn es nur ums Tracking geht, reichen doch die Postionsangaben, die Zeit, vielleicht noch Geschwindigkeit und Kurs oder so ähnlich. NMEA überträgt wesentlich mehr und zum Teil auch doppelt.
Der Unterschied zwischen TTL und RS232 ist nur das Spannungsniveau. TTL ist am Controller, RS232 am PC. Simple Schnittstellen kann man sogar nur mit ein paar Widerständen anpassen (bei niedriger Übertragungsrate).

mfg

Stefan

Jep das mit den Pegeln ist mir bewusst. Wollte mich nur noch mal vergewissern.

Das Parsen des Telegramms/der Telegramme würde ich pers. auch im Controller vornehmen wollen, aber da ich mich mit dem Modul noch nich befassthabe bzw befassen will (sofern das Projekt wirklich durchgeht ansonsten seh ich zu das ich bald ENDLICH mal selbst was in die Hand nehme) weis ich das noch nich fix. Das das NMEA mehr überträgt als benötigt ist klar, das kann man dann auch noch zusammen dampfen.

Aber soweit bin ich schon mal beruhigt das das reine GPS auslesen kein Thema ist und die Module alle gnädig zu sein scheinen und die Hardware auch noch leicht ist. Dann könte man das in der tat so aufblasen, dass man die Daten direkt per USB ausliest (Flash Speicher in IC Form möglich?) und vll mit einem Touch Display dinge anzeigt und einstellen lassen kann. Damit man noch eine komplizierte variate drin hat und das halbe Jahr durchentwickeln kann.

Dankeschön bis jetzt :) Dann kann ich ja langsam die Projektspezifikation schreiben

BlackDevil
10.05.2009, 17:04
Zwei Fragen hab ich noch:
1. Ich kann ein "Warte auf GPS Signal ..." ausgeben in dem ich einfach Frage "empfang ich mehr als 0 Satelliten?" Wenn ja => Nächstes Fensterchen mit allerlei Infos oder ein Menü oder oder oder
2. Gibt es irgendeine Form von Kompassinformationen in dem GPS Signal die ich auf der NMEA Seite nicht gefunden habe oder müsste man die Blickrichtung aus den Koordinaten berechnen?

danke :)

Kaktus621
10.05.2009, 19:16
Zwei Fragen hab ich noch:
1. Ich kann ein "Warte auf GPS Signal ..." ausgeben in dem ich einfach Frage "empfang ich mehr als 0 Satelliten?" Wenn ja => Nächstes Fensterchen mit allerlei Infos oder ein Menü oder oder oder


Ganz richtig, es gibt da sogar in den NMEA Strings ein Feld, das angibt, ob die Nachricht "Valid" ist, oder nicht (könnte ja auch sein, dass trotz Sattelitenempfang keine Position errechnet werden kann oder so).



2. Gibt es irgendeine Form von Kompassinformationen in dem GPS Signal die ich auf der NMEA Seite nicht gefunden habe oder müsste man die Blickrichtung aus den Koordinaten berechnen?


Oh, das kann ich dir jetzt auf Anhieb nicht sagen. Wenn es das _nicht_ geben würde (wie gesagt, weiß ich nicht), dann würde ich einfach 2 aufeinanderfolgende Punkte nehmen und daraus irgendwie die Richtung errechnen. Geht allerdings nur wenn man in Bewegung ist und auch da mit Sicherheit nicht 100%ig genau.



danke :)

bitteschön :) Ich hoffe, ich konnte helfen

Suggarman
11.05.2009, 07:06
Viele GPS-Module haben einen Ausgang "GPIO". Diesen habe ich an einem Port vom Controller und kann so zwischen "Searching, Tracking und Positioning" unterscheiden.
Das NMEA-Protokoll enthält in "VTG" auch die Bewegungsrichtung in Grad.

mfg

Stefan

BlackDevil
11.05.2009, 07:47
Wunderbar dann wäre sogar ein Kompass möglich und das "Bitte Warten" ebenso. Prima, danke

Ceos
11.05.2009, 10:08
der kompass funktioniert aber ausschliesslich mit bewegung, ansonsten kannst noch n kompassmodul einbauen, das ist schnell gemacht und das impulsmessen ist auch nicht soo schwer

BlackDevil
11.05.2009, 13:52
Naja wenn es über das GPS Signal gegangen wäre wäre es cool gewesen - soll ja bei GPS bleiben ;)

Aber besteht nicht über das GPVTG Telegramm mit der Kurs Information den Kompass bauen zu können? Ansonsten gibts noch im HCHDG Telegramm die Kompassnachricht, kan aber wohl nicht jedes GPS Gerät - die Navilocks können es zum Beispiel nicht. Okay schade, macht aber nix :)

Netzman
11.05.2009, 14:24
Empfehlenswert sind Module mit dem SiRF III-Chipsatz, zb. http://at.farnell.com/tyco/a1080-a/module-gps-high-sensitivity/dp/1351704
Sind schnell&präzise und funktionieren sogar in Häusern.

mfg

edit: es gibt auch billigere und kleinere Module, habe mal eines um 40€ gesehen, finde es aber jetzt leider nicht mehr

BlackDevil
11.05.2009, 14:51
Ich hätte mich jetz an dem fest gehalten: Navilock NL507-TTL
Gut, günstig und gerne genommen. Aber gut, vll geht Hochschulseitig auch was besseres für den kleineren Preis ;)

Suggarman
11.05.2009, 15:51
Bei sparkfun kann man schön verschiedene Modelle vergleichen.
Beim Navilock NL507-TTL weiss ich nicht, ob es nur 9600 baud kann oder ob man es schneller konfigurieren kann (Habe auf die Schnelle kein Manual gefunden).

mfg

Stefan

BlackDevil
13.05.2009, 07:43
Ja das Manual is auch irgendwie nich Online, über die oben gelinkte uC.net Seite kommt man aber dran.

Naja demnächst kriegt der Prof die Projektbeschreibung, mal sehen was draus wird

ThSteier
20.05.2009, 11:45
Hallo,

das kommt jetzt zwar etwas spät, aber google mal nach "APRS". Das ist ein Amateurfunkdienst, der unter anderem auch die Echtzeitübertragung von GPS-Daten umfaßt (live kann man sich das zB hier (http://aprs.fi) ansehen) und bei dem in der einfachsten Form (sog. "Tracker") ein PIC oder AVR die Daten seriell vom GPS entgegennimmt und als moduliertes NF-Signal an einen Sender weitergibt.
In der Richtung dürften jede Menge Informationen zu finden sein.

Viele Grüße,
Thomas