Home
µC gesteuerter GPS Tracker, Björn Hackel
Contents
1. FolderBrowserDialog Fordert den Benutzer auf einen Ordner auszuw hlen Wird hnlich wie der SaveFileDialog verwaltet Seite 71 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Ordner suchen Gf Desktop a CH Eigene Dateien W Arbeitsplatz a KA Netzwerkumgebung Papierkorb CH EiOkan OH pics Bild 14 Neuen Ordner erstellen Abbrechen Wenn das Programm unter einem neuen Pfad zum ersten Mal ausgef hrt wird wird der Benutzer aufgefordert ber dieses Fenster einen Speicherpfad f r die k nftigen Tracks auszuw hlen ber diesen Speicherpfad wird zudem die Liste aktualisiert Form Stellt ein Fenster oder ein Dialogfeld dar das die Benutzeroberfl che einer Anwendung bildet In der GPS Tracker Software sind 3 dieser Klassen vorhanden 1 Form Mam stellt das Hauptprogramm dar 2 Form2_Info ist ein Fenster mit einem Informationstext zu der Software 3 Form3_Einstellungen beinhaltet die Verwaltung der Einstellungen Timer Erstellt wiederkehrende Ereignisse in einer Anwendung Wird lediglich zur Kommunikation zwischen den Threads verwendet StreamWriter Erm glicht das Schreiben von Zeichen in einer Datei Zudem k nnen ber diese Klasse auch Dateien erstellt werden Mit dieser Klasse werden die KML Dateien erzeugt und beschrieben StreamReader Ist das Gegenst ck von der Klasse StreamWriter Sie erm glicht das Auslesen einer Datei ber den StreamReader werden beim anklicken
2. R ckgabewert keiner Beschreibung Der Ablauf wie die Datens tze eingelesen werden ist bei allen Datens tzen gleich Es werden lediglich andere Informationen aus den Datens tzen herausgefiltert andere Filter angewendet Die Datens tze welche die H he und die Geschwindigkeit enthalten werden nur bei 3D Fix Empfang freigegeben Da die anderen beiden Datens tze nach demselben Prinzip eingelesen werden werden diese hier nicht weiter aufgef hrt einlesen Teil 3 GGA Datensatz gesetzt Wurde der Anfang des GGA Datensatzes gefunden oder das Freigabeflag f r den Freigabeflag f r den GGA Datensatz setzen Ist das empfangene Zeichen kein Komma Sind noch keine 2 Zeichen nach dem 7ten Komma empfangen Anzahl der Satelliten abspeichern An die n chste Stelle ein Stringendezeichen einf gen Zeichenindex inkrementieren Sind noch keine 6 Zeichen nach dem 9ten Komma empfangen H he abspeichern An die n chste Stelle ein Stringendezeichen einf gen Zeichenindex inkrementieren ON Ki search_count Ist der Datensatz fertig N checksum Wurde der Datensatz erfolgreich berpr ft die GPS Daten sind g ltig und besteht ein 3Dfix Empfang Zeichenindex zur cksetzen berpr ften Datensatz zur anzeige und f r berechnungen freigeben Kommaz hler zur cksetzen Freigabeflag f r den GGA Datensatz l schen Flag f r die den erfolgreichen Empfang eines GGA Datensa
3. Ausgabe des berechneten Empfangs Ausgabe der Anzahl der gespeicherten Wegpunkte J Wurde versucht ohne Empfang das Tracking zu starten N Zur ck ins Trackingmen o TimerO starten Interrupt f r TimerO freigeben LCD Beleuchtung einschalten Z hler f r Beleuchtungszeit zur cksetzen Taster entprellen Men aktualisierung veranlassen Interruptflag f r den Keyboardinterrupt l schen Allgemeine Interruptsperre aufheben Struktogramm 5 m Seite 51 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker 5 3 4 einlesen c Funktion einlesen bergabewerte keine R ckgabewert keiner Beschreibung Die Funktion einlesen wird bei jedem seriellen Interrupt aufgerufen Diese Funktion wurde zur besseren Darstellung in 5 Teile aufgegliedert Hier werden die ASCII Zeichen welche vom GPS Modul geliefert werden analysiert und abgespeichert ber den Vergleich der letzten 6 empfangenen Zeichen mit einer vordefinierten Maske z B GPRMC wird der Anfang eines Datensatzes gesucht Sobald der Anfang eines Datensatzes gefunden wurde wird die Pr fsummenberechnung gestartet und jedes Zeichen mit den bereits empfangenen Zeichen logisch EXOR verkn pft Ist das Ende eines Datensatzes erreicht signalisiert durch das Zeichen wird die Berechnung der Pr fsumme gestoppt und ber eine Funktion mit der berlieferten Pr fsumme verglichen Stimmen beide Pr fsummen berein wird der Datensatz f r weit
4. Bild 18 Wird eine verf gbare Schnittstelle ausgew hlt wird eine Funktion des Hauptprogrammes aufgerufen welche den neuen Port ffnet Zudem wird die neue Einstellung abgespeichert so dass diese beim n chsten Start des Programmes wieder aktiv ist Anschlie end wird das Fenster geschlossen Wird der Button ndern bet tigt wird wiederum eine Funktion des Hauptprogrammes aufgerufen welche das Fenster FolderBrowserDialog zum Ausw hlen eines Speicherpfades ffnet und den ausgew hlten Speicherpfad abspeicherrt Anschlie end wird der neue Speicherpfad in der Textbox angezeigt d Seite 81 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Kapitel 6 Bedienungsanleitung e Handger t e PC Software e Kontrollelemente e M gliche Fehler gt Wie wird der GPS Tracker richtig bedient Hl Seite 82 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker 6 1 Handger t Bild 19 1 2 6 1 1 Legende 1 Status LEDs e Rec leuchtet bei einer Aufnahme e Empf leuchtet bei Empfang e Bat leuchtet bei schwachem Batteriestand 2 Taster e zum Bl ttern und um aus einem Men punkt wieder zur ckzukehren e Enter zum best tigen eines Men punktes e Status zum Aufrufen des Statusmen s Taste gedr ckt halten 3 USB Buchse f r die Anbindung an einen Computer 4 USB Status leuchtet wenn das Ger t an einen Computer angeschlossen ist 5 Einschalte
5. Ereignis Beenden der Software Beschreibung Schlie t gegebenenfalls den Port und beendet die Thread absicherung Struktogramm 27 MyFormClosing Wie Wurde ein Fehler verursacht Try Catch ZZ Benutzerf hrung Fehlerausgabe Ist der Port noch offen TN readabsicherung beenden Seite 78 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker 5 4 3 4 SelecteditemChanged Listbox1 Methode Private Sub Listbox1_SelecteditemChanged Ereignis Markieren einer Datei aus der Liste Beschreibung Zeigt die Informationen ber den Track an Listbox1_SelectedIndexChanged Einstellungen laden Objekt der Klasse IO DirectoryInfo mit dem Pfad aus den Einstellungen erstellen F r jede Datei aus dem Verzeichnis ee Ist die Datei die markierte Datei ee Das Erstellungsdatum anzeigen Objekt der Klasse IO Streamreader von der markierten Datei erstellen Den ganzen Inhalt aus der Datei in einen String schreiben Die Datei schlie en Durchsuchen des Strings Wurde das Wort Latitude gefunden N Z hler erh hen Durchsuchen des Strings Wurde das Wort L nge gefunden Wert speichern Anzahl der Trackingpoints und die Strecke anzeigen Struktogramm 28 5 4 3 5 Timer_Tick Timer Methode Private Sub Timer1_ Tick Ereignis Abgelaufenes Zeitintervall des Timer Beschreibung Portal zwischen den Threads Dient nur dem Aufruf der Methode Import 5 4 3 6 DataReceived Methode
6. tzlich abgespeichert werden Wird jetzt eine Datei markiert wird diese nach dem Schl sselwort Strecke durchsucht Die ersten 5 Zeichen nach dem Wort Strecke inklusive Leerzeichen danach werden angezeigt Somit ergibt sich eine Genauigkeit welche von der L nge abh ngig ist Wenn ber 100 km aufgezeichnet wurden wird der Wert mit einer Nachkommastelle angezeigt Bei einer Strecke von 1 km werden 3 Nachkommastellen angezeigt Da der Benutzer den Port f r die virtuelle Schnittstelle frei w hlen k nnen soll wollte ich die Schnittstelle nicht schon im Quelltext festlegen Ich wollte aber auch nicht dass diese bei jedem Start erneut eingestellt werden muss Im Visual Studio stie ich auf die Klasse Settings Das ist eine speziell zur Speicherung von Werten existierende Klasse Nach kurzer Einarbeitung konnte ich dann den eingestellten Port speichern Da mir diese Klasse neue M glichkeiten gab entschied ich mich dazu beim ersten Start der Anwendung den Speicherort f r die KML Dateien abzufragen und ber die Klasse Settings zu speichern In Hinsicht auf die Fehler bei der bertragung hatte ich noch keine L sung gefunden Aber das die bertragung bei einem Fehler abgebrochen wird und neu gestartet werden muss gefiel mir gar nicht Diesbez glich kam ich mit Herr Gro ins Gespr ch worauf ich mich entschied die Koordinaten zu verwerfen die einen Fehler enthalten Somit war gesichert dass die bertragu
7. Datensatz wird auf die G ltigkeit der Daten berpr ft und letztendlich wird der Datensatz f r die Anzeige und die Berechnungen freigegeben Die Daten werden durch das Kopieren unter einem neuen Index im selben Strukturvektor freigegeben Da in diesem Datensatz die Zeit bertragen wird wird diese nach der Freigabe in der Funktion zeitumrechnung an die deutsche Zeitzone angepasst Seite 53 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker einlesen Teil 2 den RMC Datensatz gesetzt Wurde der Anfang des RMC Datensatzes gefunden oder das Freigabeflag f r d Freigabeflag f r RMC Datensatz setzen Ist das empfangene Zeichen kein Komma Sind noch keine 6 Zeichen nach dem ersten Komma empfangen Wurden schon 2 Kommas gez hlt Empfangenes Zeichen als G ltigkeit ablegen Sind noch keine 10 Zeichen nach dem dritten Komma empfangen Wurden schon zwei Zeichen empfangen Breitenminute abspeichern An die n chste Stelle ein Stringendezeichen einf gen einf gen Zeichenindex inkrementieren gt u SIS GE rk o 52 H o Dlo 07 LD vc SE Die D e D I es GA em 2 gt gt O D N D CH D D gt 2 Ir D 5 sc D x L A D 3 D 5 SEH D D 5 Wurden schon 4 Kommas gez hlt V Empfangenes Zeichen als Breitenrichtung ablegen Sind noch keine 11 Zeichen nach dem 5ten
8. Empf nger beispielsweise vier Satelliten empf ngt und alle vier Satelliten sind nur im Nordwesten so ergibt sich daraus eine schlechte Geometrie Unter Umst nden kommt berhaupt keine Positionsbestimmung zustande Wenn alle Entfernungsmessungen aus der gleichen Richtung erfolgen kann keine Position bestimmt werden Selbst wenn der Empf nger eine Positionsbestimmung durchf hren kann so kann der Fehler im Bereich von 100 bis 150 Metern liegen Sind hingegen die vier empfangenen Satelliten gleichm ig ber den gesamten Himmel verteilt so wird die Positionsbestimmung wesentlich genauer Angenommen die Satelliten befinden sich jeweils im Norden Osten S den und Westen sind also in 90 Abst nden angeordnet so ist die Satellitengeometrie sehr gut Es gibt ein Ma f r die Genauigkeit der Messwerte die meist ein Kombinationswert verschiedener Faktoren sind F r die G te der Satellitengeometrie sind die DOP Werte dilution of precision Verschlechterung der Genauigkeit sehr verbreitet Je nachdem welche Daten bei der Berechnung herangezogen werden unterscheidet man zwischen verschiedenen DOP Werte e GDOP Geometric Dilution Of Precision Gesamtgenauigkeit 3D Koordinaten und Zeit e PDOP Positional Dilution Of Precision Positionsgenauigkeit 3D Koordinaten e HDOP Horizontal Dilution Of Precision Horizontalgenauigkeit 2D Koordinaten e VDOP Vertical Dilution Of Precision Vertikalgenauigkeit H he e TDOP Time Di
9. Januar Die Fertigstellung des Projekts beanspruchte etwa 450 Stunden E Seite 19 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker ge gt Arbeitsverteilung 10 D Informationsphase m Softwareentwicklung o Hardwareentwicklung o Hardwareerstellung m Fehlerbehebung 15 35 Bild 4 Seite 20 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker 4 2 Hardwareentwicklung GPS Modul Herzst ck des Ger tes ist das GPS Modul Dieses sollte einen seriellen Datenstrom liefern und m glichst genau sein Nach einer ausf hrlichen Recherche im Internet bestellte ich das GPS Modul EM 411 der Firma Navilock Das Modul war optimal f r meine Anwendung geeignet Es hat eine integrierte Antenne recht kleine Abmessungen und liefert die GPS Daten als seriellen ASCII Datenstrom Aufgrund des empfindlichen Sirf 3 Chipsatzes ist es zudem sehr genau Ich fing also an mit diesem Modul zu experimentieren Spannungsversorgung Oberstes Kriterium f r die Hardware war die Portabilit t und somit auch die Gr e Es sollte also ein m glichst kleines batteriebetriebenes Ger t werden Von Anfang an war klar dass ich zwei Spannungen brauchen w rde F r den Mikrocontroller 3 3V und f r das LCD sowie das GPS Modul 5V Eine M glichkeit die mir gar nicht gefiel war die Realisierung ber 4 Mignon oder Micro Batterien Diese h tten in meinen Augen zuvie
10. Komma empfangen Wurden schon drei Zeichen empfangen L ngenminute abspeichern An die n chste Stelle ein Stringendezeichen einf gen einf gen Zeichenindex inkrementieren D D 2 amp 2 e be OD IO si 2 le 3 Sie CH JJa x WA 2 o 5 DIS 2 215 D D 3 D 2 D Si 2 2 D 2 3 o GE EN bel gt Q D N O O 2 D gt Wurden schon 6 Kommas gez hlt Empfangenes Zeichen als L ngenrichtung ablegen Sind noch keine 6 Zeichen nach dem ersten Komma empfangen Sjo CERLA E 3123 2 a2 5 o gt x Ion 2 O ID D Sloelg 2 9 Fa ell o Silke oig 5 gt Q amp gt Q OD N D O gt OD Se o amp gt h am Q amp Datum abspeichern An die n chste Stelle ein Stringendezeichen einf gen Zeichenindex inkrementieren search_count KW Ist der Datensatz fertig N checksum Wurde der Datensatz erfolgreich berpr ft und die GPS Daten sind g ltig O gt OD Si Q OD x N C O lt Wa D N OD mD berpr ften Datensatz zur anzeige und f r berechnungen freigeben Kommaz hler zur cksetzen Freigabeflag f r den RMC Datensatz l schen Flag f r die den erfolgreichen Empfang eines RMC Datensatzes setzen Zeitumrechnung Struktogramm 7 Seite 54 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Funktion einlesen bergabewerte keine
11. L E Eet ab IR w h x gt GE Z Aa T An iias Image 2008 Ge 9411 40 177 O Lo Br S be GE agung 111117100 N Zelgetz iC2g be AH A AE gt AN A rm Kette 8 gt H e Ei AA URN ar TP9 TAN AA UN AN cc KSC TPATPO Bel Bild 1 F r jeden Wegpunkt wird hier ein gr nes doppeltes Dreieck mit fortlaufender Nummerierung abgebildet Seite 5 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Kapitel 2 Funktions bersicht e Handger t e PC Software gt Was kann der GPS Tracker il Seite 6 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker 2 1 Handger t Rec Empf Bat In der nachstehenden Auflistung werden die Funktionen des Handger tes aufgef hrt Im Hauptmen sind folgende Men punkte zu finden Die Position bestehend aus L ngen und Breitengrad Die H he ber dem Meeresspiegel Die aktuelle Geschwindigkeit Die Anzahl der empfangenen Satelliten Das Datum und die Uhrzeit deutsche Zeitzone Eine bersicht bestehend aus Position H he und Geschwindigkeit Die Verkn pfung zum Trackingmen Im Trackingmen werden folgende Men punkte angezeigt e Verkn pfung zum Aufnahmemen e Die aufgezeichneten Strecken bestehend aus der horizontalen der vertikalen und der realen Strecke e Die aufgezeichneten Geschwindigkeiten bestehend aus der Durchschnitts der Maximal und der durchschnittlichen vertikalen G
12. Private Sub Receiver Ereignis Daten werden ber die USB Schnittstelle empfangen Beschreibung Nimmt die Daten entgegen und bergibt sie dem Mainthread L d Seite 79 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Methode Private Sub do it Ereignis Daten werden ber die USB Schnittstelle empfangen Beschreibung Nimmt die Daten entgegen und bergibt sie dem Mainthread do H Mauscursor als Sanduhr anzeigen Empfangene Daten in einem String ablegen LO Struktogramm 29 5 4 4 Form2_Info vb Diese Datei beinhaltet einzig und alleine ein Fenster mit einer Information ber die Software Das Fenster wird ber das Hauptprogramm ge ffnet Die einzige Funktion verbirgt sich hinter dem Button welcher das Fenster wieder schlie t OX GPS Tracker v1 0 Techniker arbeit 2007 08 Bj rn Hackel Bid 17 Seite 80 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker 5 4 5 Form2_Einstellungen vb Diese Datei beinhaltet das Fenster in dem die Einstellungen angezeigt und ver ndert werden k nnen Es wird ber das Hauptprogramm ge ffnet Bevor das Fenster jedoch angezeigt wird werden die Daten der aktuell eingestellten Schnittstelle und der Speicherpfad bergeben sowie die verf gbaren Ports ermittelt 9 Einstellungen Aktuelle Schnittstelle Verfugbare Schnittstellen COMI EB Speicherpf d C Dokumente und Einstellungen AdministratoriDesktop
13. der Ephemeriden und Almanach Daten im GPS Empf nger f hrt dazu dass es unterschiedlich lange dauern kann bis die erste Positionsbestimmung verf gbar ist Das h ngt davon ab wie lange der GPS Tracker keinen Empfang hatte War der Empfang der Signale lediglich kurz unterbrochen z B Tunnelfahrt Wald so spricht man von Wiedererfassung engl reaquisition Dies dauert nur sehr wenige Sekunden Von einem Heisstart Hot Start spricht man wenn Position und Uhrzeit bekannt sind die Almanach Daten und die Ephemeriden Daten aktuell sind Dieser Fall tritt ein wenn das Ger t innerhalb der letzten 2 6 Stunden am etwa gleichen Ort eine Positionsbestimmung durchgef hrt hat Dabei dauert es etwa 15 Sekunden bis eine Positionsbestimmung engl position fix verf gbar ist Wenn die letzte Position bekannt ist das Almanach vorhanden und die Uhrzeit im Empf nger stimmt aber die Ephemeriden veraltet sind spricht man von einem Warmstart Warm Start Dabei m ssen nur die Ephemeridendaten aktualisiert werden und es dauert etwa 45 Sekunden bis einen Positionsbestimmung verf gbar ist Die Ephemeriden sind veraltet wenn mehr als etwa 2 6 Stunden seit dem letzten Empfang von Daten zu den momentan sichtbaren Satelliten vergangen sind Je mehr andere Satelliten seit dem letzten Einschalten am Himmel stehen desto l nger dauert der Warmstart Seite 14 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Sind weder Ephem
14. der Men leiste e ber Datei Beenden kann das Programm beendet werden e Uber Bearbeiten Aktualisieren wird die Liste mit den Tracks aktualisiert und alphabetisch sortiert LS Seite 9 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker e ber Bearbeiten Ger t suchen kann das Ger t gesucht und verbunden werden wenn es erst nach dem Programnmstart eingesteckt oder die Schnittstelle neu konfiguriert wurde e ber Bearbeiten Einstellungen kann die momentan eingestellte Schnittstelle und der Speicherpfad f r die Tracks abgelesen und ge ndert werden Die Daten werden abgespeichert und sind beim n chsten Programmstart wieder aktiv e Uber Info wird ein kurzer Hinweis zur Erstellung des Projekts angezeigt LS Seite 10 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Kapitel 3 GPS e Allgemeines e Positionsbestimmung e Satellitengeometrie und Genauigkeit e Einschaltzeiten gt Was ist GPS und wie funktioniert es Seite 11 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker 3 1 Allgemeines Die folgende Beschreibung wurde der Website www kowoma de entnommen und geringf gig abge ndert Das GPS System ist ein vom amerikanischen Verteidigungsministerium DOD Department of Defense ersonnenes realisiertes und betriebenes System das aus 30 aktiven Satelliten besteht welche die Erde in einer nominellen H he von 2
15. einer Datei aus der Liste die Dateien nach bestimmten Schl sselw rtern durchsucht DirectoryInfo Erm glicht das Erstellen Verschieben und Auflisten von Verzeichnissen und Unterverzeichnissen Wird ben tigt um die Liste der Tracks zu aktualisieren und zu Verwalten Seite 72 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Filelnfo Stellt Methoden zum Erstellen Kopieren L schen Verschieben und ffnen von Dateien bereit Wird ebenfalls zur Verwaltung der Liste ben tigt Textbox Stellt ein textbasiertes Steuerelement bereit das dem Benutzer die Eingabe von Text erm glicht Wird zur Kommunikation zwischen Threads und zur Anzeige des Speicherpfades in Formi_Einstellungen beansprucht Listbox Stellt ein Listenfeld Steuerelement dar das die Auswahl eines oder mehrerer Elemente erm glicht Mit dieser Klasse wird die Liste der Tracks realisiert Button Stellt ein Schaltfl chen Steuerelement von Windows dar Tooltip Stellt ein kleines rechteckiges Popupfenster dar Wird beim Doppelklick auf eine Datei als Anzeige f r die U bertragungsfehler verwendet Label Stellt eine Standardbezeichnung von Windows dar LS Seite 73 von 97 Dokumentation V1 0 Projekt GPS Tracker 5 4 3 Form1_Main vb i Form Main Class Form E Felder Methoden e E X Para er ar Ro W ZG ke ZC AktualisierenToolStripMenultem_Click BeendenToolStripMenultem_Click Bu
16. en 180 L1 und L2 L ngenkoordinaten in Minuten B1 und B2 Breitenkoordinaten in Minuten s Strecke Durch die komplette Umrechnung der Koordinaten in Minuten werden bis zu 4 Stellen vor und nach dem Komma oder anders gesagt 8 Nachkommastellen ben tigt Der Mikrocontroller hat aber nur eine maximale Genauigkeit von 7 Nachkommastellen Hier zeigte sich dass der Mikrocontroller zu ungenau ist und Rundungsfehler entstehen Dadurch wird die Streckenberechnung verf lscht Um diesen Fehler zu beheben h tte ich einen anderen Controller oder eine Menge mehr Aufwand in die Berechnungen stecken m ssen In Anbetracht mangelnder Zeit und der Tatsache dass Codespeicher Mangelware ist belass ich es dabei und widmete mich wieder anderen Aufgaben Zeitumstellung Da ich ber das GPS Modul nur die UTC Weltzeit empfange und ich aber gerne die deutsche Zeit angezeigt haben wollte berlegte ich wie das zu realisieren ist Eine M glichkeit w re die Umrechnung in die Winterzeit plus eine manuelle Umstellung ber einen Men punkt in die Sommerzeit Doch ich wollte keinen weiteren Men punkt in mein schon fertiges Men zu integrieren und entschied mich die Umstellung zu automatisieren Seite 26 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Zu diesem Zeitpunkt wusste ich noch nicht auf was ich mich hier eingelassen hatte Ich recherchierte im Internet ber vielleicht schon vorhandene L sungen oder Ans t
17. entnommen werden kann muss der Moosgummi noch entfernt werden Der Akku kann dann einfach herausgezogen werden Dieser ist ausschlie lich in der mitgelieferten Ladestation zu laden Seite 86 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker 6 2 PC Software 6 2 1 Erstinbetriebnahme Wird das Ger t das erste Mal an den Computer angeschlossen m ssen zuerst zwei Treiber installiert werden Diese werden automatisch installiert Der erste ist f r den USB Controller des Handger tes der zweite ist f r den virtuellen Comport Nach Installation der Treiber m ssen nun ein paar Einstellungen in der Systemsteuerung vorgenommen werden In dem Ger te Manager Systemsteuerung System Reiter Hardware Ger te Manager ist jetzt unter der Kategorie Anschl sse COM und LPT der Men eintrag USB Serial Port COM X erschienen Durch einen Doppelklick auf diesen Men eintrag erscheint ein Fenster mit den Eigenschaften des USB Serial Ports Dort m ssen unter dem Reiter Port Settings die Einstellungen wie auf Bild 22 zu sehen Vorgenommen werden Eigenschaften von USB Serial Port COM9 Allgemein Port Settings Treiber Details Bits per second Data bits Parity Stop bits Elow control Advanced Restore Defaults Bild 22 ber den Button Advanced wird ein neues Fenster ge ffnet Hie m ssen die Einstellungen wie auf Bild 23 zu sehen bernommen werden
18. hat eine Speichergr e von 512kBit und wird zur Speicherung der Wegpunkte benutzt Pro Datensatz werden 32Byte ben tigt wodurch sich eine maximale Speicherung von 2048 Datens tzen ergibt Die Ansteuerung erfolgt ber den I C Bus Hardwarem ig wurde dem Speicher ber die Eing nge AO Ai und A2 die Adresse OU zugeordnet ber die SCL Leitung wird der Takt f r die serielle Daten bertragung geliefert und ber die SDA Leitung werden die Daten bertragen Diese beiden Leitungen sind auch direkt am I C Interface des uC angeschlossen Ri und R2 sind pull up Widerst nde die f r saubere Pegel an den Eing ngen sorgen C1 ist ein Abblockkondensator er gl ttet die Betriebsspannung bei kleinen Schwankungen Schaltplan 4 LS Seite 38 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker USB Anbindung ber den FT232 ber den USB Controller FT232 k nnen die Signale der UART des uC direkt in USB Signale umgewandelt und ber ein Kabel zum PC bertragen werden Die Schaltung wird ber die USB Schnittstelle des PCs mit Spannung versorgt Die LED D4 leuchtet sobald das Ger t mit dem PC verbunden ist Der RxD Eingang des USB Controllers ist direkt mit dem Bush TxD Ausgang des uC Schaltplan 5 a 0 i verbunden set Die Induktivit t L1 gl ttet Span nungsspitzen der Versorgungs spannung und die Kondensatoren C5 und C11 gl tten kleinere Spannungseinbr che Der Ausgang 3V30
19. meine Mikrocontrollerschaltung von der USB Anbindung und der Seite 22 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Spannungsversorgung In Bezug auf die Spannungsversorgung war das Ideal wie sich zwei Abs tze weiter unten zeigen wird da diese des fteren ausgewechselt werden musste Als alles fehlerfrei lief baute ich die komplette Schaltung auf einer Platine auf PC Anbindung Nach dem ersten gro en Erfolgserlebnis ging es bald wieder wie gewohnt weiter Da ich mich gegen die SD Karte entschieden hatte musste ich mir Gedanken ber die Daten bertragung zum PC machen Erst wollte ich den Mikrocontroller ber die RS232 Schnittstelle und einen USB Konverter an den PC anbinden Doch das kam mir dann doch ein bisschen umst ndlich vor worauf ich im Internet nach anderen L sungen recherchierte So bin ich auf den FT232 Controller gesto en der direkt UART auf USB konvertiert Spannungsversorgung Teil 2 Jetzt war es auch langsam an der Zeit mir ernsthaft Gedanken ber die Spannungsversorgung zu machen Von einem Kollegen erhielt ich ein altes Handy zum ausschlachten So bekam ich schon mal die Abgriffe f r die Kontakte des Akkus Diese waren gl cklicherweise auch mit einem alten Akku der Kamera meiner Freundin kompatibel Somit war schon einmal gesichert dass ich den Akku irgendwie einbauen kann ohne ihn festl ten zu m ssen Der Akku hatte jetzt aber nur 3 6V Ich brauchte al
20. t ausgegeben Seite 49 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker v_Timerilnt keine Interrupts mehr zulassen Reloadwert des Timers dem Wert f r 10ms laden Ist das Tracking gestartet besteht Empfang ist die maximale Adresse im EEPROM noch nicht erreicht und sind 5s rum Z hler 1 f r die 5s zur cksetzen Ist der Z hler noch unter 5s Breiten L ngengrad und dazugeh rige Richtungen im EEPROM speichern Z hler 1 inkrementieren H chste belegte Speicheradresse aktualisieren Adresse f r den n chsten Speichervorgang aktualisieren eeprom_save Z hler f r die 2s zur cksetzen Z hler inkrementieren Batteriestatus berechnen Men aktualisierung veranlassen Ist der serielle Interrupt gesperrt en Seriellen Interrupt freigeben Sind 30s schon rum Z hler 2 f r 30s zur cksetzen Empfang aus der Anzahl der guten Datens tzen welche in 30s empfangen wurden berechnen Psoidowert Anzahl der guten Datens tzen zur cksetzen Interruptsperre aufheben Z hler 2 inkrementieren Struktogramm 4 Lg Seite 50 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Funktion bergabewerte R ckgabewert Beschreibung v_IntKeyboard keine keiner Bei jedem Tastendruck wird diese ISR abgearbeitet Es wird analysiert welche Taste auf welcher Men ebene gedr ckt wurde Nach jedem Tastendruck wird die Beleuc
21. und Einstellungen Administrator Desktop Bild 24 Das Fenster schlie t sich dann automatisch und im Hauptfenster steht unter Serial port bereit Ist das der Fall kann zu jeder Zeit die bertragung von dem Handger t aus gestartet werden Hl Seite 88 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker 6 2 2 Bedienung Nachdem die Einstellungen der Erstinbetriebnahme durchgef hrt wurden ist die Software funktionsbereit Track bertragen 1 Handger t ber das USB Kabel an den Computer anschlie en Software starten Doppelklick auf GPS Tracker exe Men punkt Track gt PC im Trackingmen des Handger tes ausw hlen Warten bis der SaveFileDialog erscheint Speicherort ausw hlen und gew nschten Dateinamen eingeben Datei in der Liste markieren und den Button Offnen bet tigen Google Earth wird gestartet und zoomt automatisch auf den Track NND Track bertragen 2 1 Software ist gestartet und Ger t noch nicht angeschlossen 2 Ger t anschlie en 3 Bearbeiten Ger t suchen 4 Weiter wie oben ab Punkt 3 COM Port Nummer einstellen ndern Ger t anschlie en Software starten Bearbeiten gt Einstellungen ausw hlen Unter Verf gbare Schnittstellen die Port Nummer ausw hlen a a Kg Verzeichnis zur Speicherung ndern Verzeichnis der Listeneintr ge andern Software starten Bearbeiten gt Einstellungen In dem Feld Speicherpfad den B
22. welches imstande ist eine Strecke aufzuzeichnen und diese in Google Earth grafisch darzustellen Dar ber hinaus k nnen ber das Handger t bei Satellitenempfang und w hrend der Aufnahme weitere Informationen abgerufen werden Diese werden im n chsten Kapitel genauer beschrieben Das Projekt besteht aus zwei Teilen 1 Das Handger t nimmt Wegpunkte auf und zeigt unterschiedliche Informationen ber die aktuelle Position und die zur ckgelegte Strecke an Die Wegpunkte k nnen ber eine USB Schnittstelle zu einem PC bertragen werden 2 Die PC Software nimmt die bertragenen Wegpunkte entgegen und konvertiert sie in ein Format welches in Google Earth eingebunden werden kann Bild 1 ist ein Beispiel f r eine solche Streckenaufzeichnung a 2 2 K Je Z Sr Ma Tea e AXE AN or 22 A EA NH L tE ER Ze BS Ae PETTAN WS E EN ai Bi D Ze TPSO ISAT Zei AR ee i Z d e FTBS1 AR A y y u ER I a ART E AE i e SE Le E T E Eu Ver 2 d IET A T AN ART P232 om 7 If S SG d heet A lt e vn F META T S 2 DE EM E GER GE TP544 cn TP22 20 7 me gt E TEIg x Ya gt K we DE Ee EC AN Te 4 Ea TRS EA Tese PAIR TE de PS Tan TE E w a pn Hee TPB S A D e APTE R BL a w Dass AA T TP16 Ur BL RR KE 1p48 SS ep A bi Fo 205 d veer t AN Wi Dm y EN KEE AANT P63 ei r d RK f4 r A r f TAN IRE y NE r EA N r sl EGb d ran CH A 41850 we n Vi i amp en EECH x NM
23. 0 200 km umkreisen GPS Satelliten senden Signale aus welche die genaue Ortsbestimmung eines GPS Empf ngers erm glichen Die Empf nger k nnen ihre Position ermitteln wenn sie feststehend sind sich auf der Erdoberfl che in der Erdatmosph re oder in niederen Umlaufbahnen bewegen GPS wird sowohl in der Luft Land und Seefahrtnavigation als auch bei der Landvermessung und anderen Anwendungen eingesetzt bei denen es auf genaue Positionsbestimmung ankommt Das GPS Signal wird jedem kostenlos zur Verf gung gestellt Der eigentlich Name des Systems ist NAVSTAR Navigation System for Timing and Ranging bekannt ist es aber nur als GPS Global Positioning System 3 2 Positionsbestimmung Stark vereinfacht gesagt sendet jeder Satellit eine Nachricht der Art Ich bin Satellit Nr X meine Position ist gerade Y und diese Nachricht wurde zum Zeitpunkt Z versandt Zus tzlich sendet der Satellit noch Informationen ber seine Umlaufbahn und die der anderen Satelliten Diese Bahndaten Ephemeriden und Almanachdaten werden vom GPS Empf nger gespeichert und f r sp tere Rechnungen verwendet Um die Position zu bestimmen vergleicht der GPS Empf nger die Zeit zu der das Signal ausgesandt wurde mit der Zeit zu der das Signal empfangen wurde Aus dieser Zeitdifferenz kann die Entfernung des Satelliten berechnet werden Werden von weiteren Satelliten Messungen hinzugef gt so kann die aktuelle Position durch Trilateration Entfernungsmessu
24. 2 Der grobe Ablaut C 47 5 3 3 main c 2 47 5 3 4 einlesen c 202222 52 5 3 5 auSQabe C R j C O Oa a 58 5 3 6 rack no eC 1 1 1 62 D3 zeiumeiellungc k h C O O a 65 9 3 8 E ePFOM C MNN 68 5 3 9 funktionen c III IT J TI IT III III HIHI III III III III III LI LLLLLLLLLLLLLLLLL 68 9 4 Software bt 70 5 4 1 Algoememes LI 70 5 4 2 Klassen bersicht e 71 5 4 3 Form1_Main vb 2 22 74 Seite 2 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker 6 1 Handoergat 83 6 1 1 Legende LI 83 6 1 2 Men aufbau e 84 G 2Bedenung 85 6 1 4 Akku laden 86 6 2 PC Software naannnannnennsnsnennnnansnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnennnnnnnnn 87 6 2 1 Erstinbetriebnahme 222 87 G Z2Bedenung a 89 DAkontrollelemente 90 6 4 M gliche Fehler 90 7 AZ EEE 8 8 1 Eidesstattliche Erkl rung uaannnnnnnnnennennnennnnennnnnnnn 94 D Golossar anaanaanonnennennnenrnsnrnenioenioenioanionninunioanioanioanioanioaninanioanio anio ani nan ron 95 8 3 Quellen naannnannnnananennnnsnnnnnnnennnnnnnnnnnnnnnnnnnnnnnnnnnnnnnannnnnnnnnnennnnnnnnn 97 8 4 Inhalt der beigef gten CD 97 il Seite 3 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Kapitel 1 Projektbeschreibung gt Was ist der GPS Tracker Ih Seite 4 von 97 Dokumentation V1 0 Projekt GPS Tracker Bj rn Hackel Mit dem GPS Tracker wurde ein Projekt entwickelt
25. 7 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Funktion ausgabe bergabewerte keine R ckgabewert keiner Beschreibung In dem Aufnahmemen kann ausgew hlt werden ob ein neuer Track gestartet oder ein angefangener Track fortgesetzt werden soll Der Unterschied besteht in dem setzten eines Flags und dem R cksetzen der Speicheradressen des externen EEPROMs ausgabe Aufnahmemen herum An welchem Men punkt steht der Z hler des Aufnanmemen s Wurde dieser Men punkt Wurde dieser Men punkt a ee on best tigt best tigt d a Wurde dieser Men punkt best tigt Aufnahmeflag setzen Anzeige des j LED einschalten Men s mit Aufnahmeflag setzen Anzeige des e mi Zur ck ins S Kennzeichnung LED einschalten Men s mit R cksprung ins isses 9 EART Kennzeichnung Trackingmen Trackingmen Men punktes B iere ns dieses Kennzeichnung veranlassen a ie Men punktes dieses veranlassen Men punktes Merker f r die erste Berechnung setzen Flag f r das Fortsetzen eines Tracks l schen Men aktualisierung Merker f r die erste Berechnung setzen Flag f r das Fortsetzen eines Tracks setzen veranlassen Men aktualisierung Startadresse des veranlassen EEPROMs auf null setzen H chste bereits beschriebene Speicheradresse auf null setzen Struktogramm 13 Funktion ausgabe Trackingmen bergabewerte keine R ckgabewert keiner Beschreibung Hier wird der
26. 7 4 4 1 5 3F Satzanfang GP Senderkennung GSA Datensatzkennung A Art der Positionsbestimmung 3 3D fix 2 2D fix 1 kein Fix RR An dieser Stelle ist gut zu erkennen wie reservierte Datenfelder nicht bertragen wurden und nur die Kommas beibehalten werden 4 7 PDOP allgemeine Genauigkeit 4 4 HDOP horizontale Genauigkeit Lo VDOP vertikale Genauigkeit Satzende 3F Pr fsumme 3Fhex Die DOP Genauigkeitswerte geben an wie gut die geometrische Ausrichtung der Satelliten f r die Positionsbestimmung ist Desto kleiner der Wert desto genauer kann die Position bestimmt werden Ein ganz guter Wert ist z B 3 GPVTG Datensatz GPVTG 0 0 T 359 6 M 0 0 N 0 0 K 47 Satzanfang GP Senderkennung VTG Datensatzkennung 0 0 Geschwindigkeit ber Grund in km h Satzende 47 Pr fsumme 47hex LS Seite 33 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker 5 1 2 Keyhole Markup Language Bei KML handelt es sich um ein Dateiformat zur Darstellung geografischer Daten in einem Earth Browser wie beispielsweise Google Earth Google Maps und Google Maps f r Handys Eine KML Datei wird weitgehend wie eine HTML oder XML Datei in einem Webbrowser ausgewertet Wie HTML besitzt auch KML eine tag basierte Struktur mit Namen und Attributen f r spezielle Darstellungen Google Earth und Google Maps fungieren sozusagen als Browser f r KML Dateien Zur Markierung einer Koordinate in Google Earth reic
27. Die COM Port Nummer kann frei gew hlt werden aber muss sp ter auch in der Software eingestellt werden Seite 87 von 9 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Advanced Settings for COM9 COM9 v OK USB Transfer Sizes Select lower settings to correct performance problems at low baud rates Select higher settings for faster performance Defaults Receive Bytes 40396 COM Port Number Transmit Bytes 4096 BM Options Miscellaneous Options Select lower settings to correct response problems Serial Enumerator Serial Printer Latency Timer msec A Cancel H Power Oft Timeouts Event On Surprise Removal SetRTS On Close Minimum Read Timeout msec 1000 Disable Modem CN At Startup Bild 23 Minimum Write Timeout msec 1000 Wurden diese Schritte erfolgreich durchgef hrt kann die GPS Tracker Software durch einen Doppelklick auf die Datei GPS Tracker exe gestartet werden Wenn diese zum ersten Mal unter einem neuen Pfad gestartet wird wird nach dem gew nschten Verzeichnis gefragt in dem die Tracks sp ter gespeichert werden sollen Dieser kann aber nachtr glich auch wieder ge ndert werden Jetzt muss noch die COM Port Nummer eingestellt werden Diese kann unter dem Men Bearbeiten Einstellungen wie in Bild 24 zu sehen ber die Auswahl in Verf gbare Schnittstellen eingestellt werden x Einstellungen Aktuelle Schnittstelle COM9 Speicherpfad C Dokumente
28. Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Bruder Klaus Str 25 78467 Konstanz Technikerarbeit 2007 08 Dokumentation V1 0 GPS Tracker Betreuende Lehrer Herr Sperling Herr Gro Seite 1 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Inhaltsverzeichnis 2 1 Handoergat 7 2 2 PC Software 9 3 3 1 Allgemeines uunnansnsnsnnnsnnnsnsnnnnnnnnnnnnnnnnnnnnnnnnnnnn 12 3 2 FHositionsbesttmmung 12 3 3 Satellitengeometrie und Genauigkeit a aaaa0110011001rarianranianrannnn 13 3 4 Aufbau der Satellitenverbindung nnnn 14 4 Projektentstehung En 0 4 1 Zeitlicher Ablauf Z O 2 18 4 2 Hardwareentwicklung 21 4 3 Softwareentwicklung MO L LLLLLLLLLL III 24 4 4 Softwareentwicklung DU LLLLLLLLLLIIIIILLL III 28 5 Technische Beschreibung DT 9 1 Grundlagen uuaaennnannnennnnsnnennnnnnnnnnnnnnnnnnnnnnnnnnennnnnnnnn 32 5 1 1 NMEA 0183 Format ll kH HH H HIHI III III III II III ILL 32 5 1 2 Keyhole Markup Language LI 34 9 2 Hardware 35 5 2 1 Blockschaltbild e 35 5 2 2 Schaltplan 11111Ul1JJJJ Lo L DL RL DLR LLLLLLLLLLLLLLLL 36 5 2 3 Schaltplan Erl uterungen 1 1111111 LLLL DL LI 38 5 2 4 Technische Daten e 41 5 2 5 Platinenlayout 1 1 111JJJJJ L a 41 5 2 6 St ckliste 2 43 9 3 Software ut 44 D31Algoememes LI 44 5 3
29. M EMV Flag Google Earth GPS EC Bus Interrupt Hyper Terminal ISR Klasse kml Datei LCD American Standard Code for Information Interchange ist eine 7 Bit Zeichenkodierung und bildet die Grundlage f r sp tere mehrbittige Zeichens tze und kodierungen Die Zeichenkodierung definiert 128 Zeichen davon 33 nicht druckbare sowie folgende 95 druckbare EEPROM Electrically Erasable Programmable Read Only Memory w rtlich elektrisch l schbarer programmierbarer Nur Lese Speicher ist ein nichtfl chtiger elektronischer Speicherbaustein Elektromagnetische Vertr glichkeit Bin re Variable kennzeichnet einen Zustand Softwareprogramm f r einen PC Es stellt einen virtuellen Globus mit Koordinaten dar Global Positioning System Sattelitengest tztes Positionsbestimmungs und Ortungssystem Inter Integrated Circuit list ein serieller Datenbus Programmunterbrechung bedingt durch ein Ereignis Als Folge wird eine Interrupt Service Routine abgearbeitet Hyper Terminal ist ein Kommunikationsprogramm Interrupt Service Routine Ist in der Objektorientierung ein abstrakter Oberbegriff f r die Beschreibung der gemeinsamen Struktur und des gemeinsamen Verhaltens von Objekten Klassifizierung Format einer Datei welche in Google Earth eingebunden werden kann Liquid Crystal Display Ein Fl ssigkristallbildschirm oder eine Fl ssigkristallanzeige ist ein Bildschirm oder eine Anzeige in dem die Eigensc
30. NMEA 0183 Format vom PC zum Experimentierboard und filterte einzelne Informationen heraus Jetzt ben tigte ich ein echtes GPS Modul Nach l ngerer Internetrecherche bestellte ich das GPS Modul EM 411 von der Firma Navilock Um zu sehen wie denn so ein Datenstrom wirklich aussieht schloss ich das Modul zun chst ber den MAX RS232 des Experimentierboards direkt an den PC an und Seite 24 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker wertete dort die Daten mit dem Hyper Terminal aus Der Weg war jetzt frei das Modul auch an den Mikrocontroller anzuschlie en und auszuwerten Schnell wurde klar dass die bertragung mit dem Modul nicht einmal ann hernd so stabil ist wie mit der Simulation Ich ben tigte also eine bessere Fehlererkennung Nach l ngerem berlegen und schlaflosen N chten wurde mir erst bewusst dass ja eine Pr fsumme mit bertragen wird Mit dieser Erkenntnis strukturierte ich meinen gesamten Einlesevorgang um berechnete zu jedem Datensatz die Pr fsumme und verglich sie mit der bertragenen Pr fsumme So konnte eine ausreichende Qualit t der ben tigten Daten gew hrleistet werden H he und Geschwindigkeit Als ich mir schon fast sicher war das mein Ger t l uft und ich alle Fehler beseitigt hatte sah ich mehr oder weniger durch Zufall dass bei schlechtem Empfang ab und zu in der Anzeige der H he und der Geschwindigkeit Hieroglyphen dargestellt werden Er
31. S GPS Modul Fi a wv USB Controller TxD i S LC Display USB AD13 LCD PC UC Steuerung RxD I2C D Speicher Li lon Akku Se e Ein Aus Batterie berwachung Referenzspannung r 5V Erzeugung k 3 3V Erzeugung Bild 5 Seite 35 von 97 Bj rn Hackel Dokumentation V1 0 Projekt GPS Tracker 5 2 2 Schaltplan Hauptschaltung Schaltplan 1 NS MOL TH al ala 1 E 8 D a Li Hpo o HOAN Bal at JE d1 LU LL I I es L CN emm ip i el OTY 0TH HAT sty bal ZTH a Deen gt Seite 36 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Spannungsversorgung AKKU PN ze H e 2 Zul ZA Schaltplan 2 EKK Seite 37 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker 5 2 3 Schaltplan Erl uterungen GPS Modul EM 411 Das GPS Modul liefert einen TTL kompatiblen Datenstrom mit einer Baudrate von 4800 Baud Die Daten werden als ASCII Zeichen bertragen und k nnen direkt ber die serielle Schnittstelle des Mikrocontrollers UART eingelesen werden ber den Tx Ausgang des GPS Moduls werden die Daten der Satelliten ber den RxD Eingang des Mikrocontrollers eingelesen Um St rungen zu vermeiden wird der Rx Eingang des GPS Moduls auf High gelegt Das Modul ben tigt eine Versorgungsspannung von 5V und hat eine Stromaufnahme von ca 60mA Schaltplan 3 EEPROM 24LC512 Das externe EEPROM
32. Satelliten sehr ungenau Mit steigender Geschwindigkeit werden diese Werte pr ziser LS Seite 27 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker 4 4 Softwareentwicklung PC Grundlagen Um die Koordinaten sp ter auch in Google Earth darstellen zu k nnen musste ich mich fr her oder sp ter mit der bertragung der Daten zum PC besch ftigen Da wir in der Schule die objektorientierte Programmiersprache Visual Basic angesprochen und mit dieser auch kleine Projekte programmiert haben entschied ich mich mein Programm auch in dieser Sprache zu schreiben Mit dem Visual Studio 2005 entwickelte ich zun chst kleinere Programme Zu diesem Zeitpunkt kannte ich den Unterschied zwischen VB6 und VB2005 noch nicht was sich dann aber schnell nderte Gerade die serielle Schnittstelle wird bei VB2005 komplett anders bedient als in VB6 Ich brauchte also anderweitig Hilfe und bestellte mir ein Lehrbuch f r VB2005 Mit diesem arbeitete ich erst noch einmal die ganzen Grundlagen durch Bei der Programmierung der seriellen Schnittstelle konnte mir dieses Buch aber nicht viel weiter helfen dazu fand ich in der Onlinehilfe von dem Visual Studio gute Anregungen Nach mehreren Versuchen hatte ich es geschafft ein Programm mit VB2005 zu schreiben welches mir Daten ber die serielle Schnittstelle sendet Das Programm hatte nur einen Haken ich ben tigte jedes Mal den Task Manager um es auch wieder zu beenden A
33. UT wird nach den Vorgaben des Datenblattes ber einen Kondensator mit Ground verbunden Spannungsversorgung Die Spannungsversorgung besteht aus zwei Teilen der 5V und der 3 3V Erzeugung Aus der Akkuspannung 3 6V 4 2V wird ber den Boost Konverter TPS61032 die 5V Spannungsversorgung zur Verf gung gestellt Der Wirkungsgrad bei dieser Schaltung liegt bei etwa 96 Schaltplan 6 Mit Hilfe der Spule L2 und dem Kondensator C10 wird eine Puls Weiten Modulation erzeugt Uber diese Pulse werden die 5V generiert Die Kondensatoren C8 und C9 gl tten die Ausgangsspannung Da der Mikrocontroller eine Betriebsspannung von 3 3V ben tigt werden aus den zuvor erzeugten 5V ber einen Festspannungsregler 3 3V zur Verf gung gestellt Seite 39 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Batterie berwachung Die Batterie berwachung wurde mit einem Differenzverst rker als Anpassschaltung f r die Spannungspegel des Akkus an den AD Eingang des uC realisiert ber den Differenzverst rker wird die Akkuspannung mit einer Spannung von 3 6V verglichen Die 3 6V werden durch den Trimmer R25 auf den Eingang gegeben Der Ausgang des Differenzver st rkers wird direkt auf einen AD Eingang des Mikrocontrollers gelegt Durch die Widerst nde R21 bis R24 wurde ein Verst rkungsfaktor von 5 6 eingestellt Somit ergibt sich bei einer Akkuspannung von 3 6V eine Ausgangsspannung von etwa
34. UV am Analog Digitaleingang Bei einer Akkuspannung von 4 2V liegen am AD Eingang des uC ca 3 3V an Der Akkustand kann so theoretisch mit einer Aufl sung von ca 2 5mV bestimmt werden Schaltplan 7 Um die Schaltung abzugleichen muss ber den Trimmer R25 die Spannung am invertierenden Eingang M1 der Schaltung eingestellt werden Die Schaltung ist abgeglichen wenn 3 6V die Spannung des Akkus bei leerem Zustand am Eingang anliegt Bild 6 il Seite 40 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker 5 2 4 Technische Daten min max Spannungsversorgung 3 5V 4 5V Stromaufnahme 130mA 170mA Akkulaufzeit 4h Max Anzahl der Wegpunkte 2047 Max Aufzeichnungsdauer 2h 50min 5 2 5 Platinenlayout Kupfer beidseitig Bema ung in mm Bild 7 a Seite 41 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Best ckung oben LED RU Bild 8 Bild 9 Seite 42 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker 5 2 6 St ckliste Bauteil Name Wert Bezeichnung Anz Einzelpreis Preis Netto GPS Modul NavilockEM411 1 38 43 38 43 Mikrocontroller 4 17 EEPROM 3 40 LCD Modul 22 76 Spannungsregler 0 88 USB Controller 3 15 Boost Konverter 3 20 Operationsverst rker 0 61 Feldeffektransistor 0 28 Low Current LED 0 18 Low Current LED 0 18 Kondensator 0 42 Kondensa
35. abe Ubergabewerte keine R ckgabewert keiner Beschreibung Alle Ausgabemen s sind ber jeweils einen Index f r die Men ebene und einen Men punktz hler realisiert Bei Bet tigung der Taste wird der Men punktz hler um eins erh ht und bei Bet tigung der Taste Enter die Men ebene Die Funktion ausgabe wertet diese dann aus ber den Men punktz hler springt das Programm an den jeweiligen Men punkt und ber die Men ebene wird nun entweder der Inhalt des Men punktes oder das Men mit markiertem Men punkt angezeigt Die Men punkte 2 bis 6 sind wie der Men punkt 1 aufgebaut Aufgrund von Platzgr nden wurde die Darstellung des Struktogrammes in die verschiedenen Men s aufgeteilt Es wird zwischen dem Hauptmen dem Trackingmen und dem Aufnahmemen unterschieden Das Hauptmen besteht aus 7 Men punkten Hier sind die alle Daten abrufbar die nicht mit einem Tracking in Verbindung stehen Das sind z B die aktuelle Position die H he die Uhrzeit USW Nach einer Unterbrechung der Spannungsversorgung werden als Platzhalter f r die Daten x e angezeigt Erst bei korrektem Empfang werden diese durch die Daten des Satelliten ersetzt Wird jedoch der Empfang unterbrochen bleiben die zuletzt empfangenen Daten stehen ausgabe Hauptmen An Welchem Men punkt steht der Z hler des Hauptmen s H he Geschwindigleit best tigt Anzahl der Satelliten Datum Uhrzeit Dieser Punkt
36. atelliten bertragene Geschwindigkeit Aufgrund dessen wird auch die Durchschnittsgeschwindigkeit mit der bisher ermittelten Maximalgeschwindigkeit verglichen und eventuell angepasst Beim ersten Durchlauf der Berechnungen wird die Position bestehend aus Koordinate und H he als Startposition abgespeichert il Seite 64 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker tracking Teil 4 F r die Folgende Berechnung eine Division durch Null verhindern Berechnung der Durchschnittsgeschwindigkeit aus der horizontalen Strecke und der Aufnahmezeit Umrechnung der aktuellen Geschwindigkeit in eine Gleitkommazahl Ist die aktuelle Geschwindigkeit gr er als die Bisheri Geschwindigkeit Ist die Durchschnittsgeschwindigkeit gr er als die maximal Geschwindigkeit Abspeichern der neuen maximalen Geschwindigkeit Aktualisierung der Maximal erreichten nn T Geschwindigkeit Berechnung der vertikalen Geschwindigkeit ber die vertikale Strecke und die Aufnahmezeit Ist das die erste Berechnung nach dem Start eines NEUEN Tracks Abspeichern der Startposition Flag f r die Erkennung der ersten Berechnung l schen Struktogramm 18 5 3 7 zeitumstellung c Funktion zeitumstellung bergabewerte keine R ckgabewert keiner Beschreibung Die automatische Zeitanpassung an die deutsche Sommer und Winterzeit ist recht aufwendig und komplex ber das GPS Modul werden die Weltzeit und das Da
37. blen speichern Die Monate des Datums in eine dezimale Zahl umwandeln und in zwei Variablen speichern Die Jahre des Datums in eine dezimale Zahl umwandeln Monate inkrementieren Ist dieses Jahr ein Schaltjahr Merken das Februar 29 Tage hat Merken das Februar 28 Tage hat Berechnung der Tage von heute bis zum 01 01 2000 Anzahl der Tage vom 2 01 2000 bis zum Anfang dieses Jahres berechnen Anzahl der Tage vom 02 01 2000 bis zum ersten Sonntag dieses Jahres berechnen Anzahl der Tage vom Anfang dieses Jahres bis zum ersten Sonntag berechnen Ist dieses Jahr schon ein Sonntag vergangen Z hlen der vergangenen Sonntage bis maximal ende M rz Ist der letzte Sonntag im M rz schon Winterzeit vergangen Korrektur der Ee l Zeitanz eige Umrechnung in Sommerzeit Umrechnung in Winterzeit Korrektur der Zeitanzeige i Korrektur der Zeitanzeige Ist die Zeitanpassung Tages berschreiten Anpassung der Zeit Ba Flag f r de Datumsanpassung setzen Z hlen der vergangenen Sonntage bis maximal ende Oktober Ist der letzte Sonntag im Oktober schon vergangen Vorherige Sommerzeitumstellung wieder zur ckstellen Umrechnung in Winterzeit Korrektur der Zeitanzeige Struktogramm 19 Seite 66 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker zeitumstellung Teil 2 Ist die Zeitumstellung Tages bergreifend Korrektur der Zeitanzeige Flag f r die Datumsumstellung set
38. ch anders Thomas Pfeifer Dort wurde ich unter seinen Projekten auf den GPS Tracker aufmerksam Die Aufzeichnung einer Strecke welche dann in Google Earth dargestellt werden kann hatte mich so fasziniert dass ich mich sofort dazu entschied dieses Projekt selbst zu entwickeln Die Umwandlung in das Google Earth Format machte mir anfangs noch Sorgen Doch schon bald darauf fand ich fertige Software zum konvertieren und das Problem war gel st Als mir Herr Sperling schlie lich auch noch das OK gab konnte der Spa beginnen i Seite 17 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker 4 1 Zeitlicher Ablauf 2007 M rz Der erste Schritt war die Informationsbeschaffung Es musste gekl rt werden was es f r GPS Module gibt und wie diese zu handhaben sind Erwerb des GPS Moduls EM 411 April Juni Beschaffung von Informationen ber die Technik der GPS Positionsbestimmung Recherche ber die Einbindung von Tracks in Google Earth Kleineren bungen zur Filterung von Informationen aus einem seriellen Datenstrom Juli Einarbeitung in die Programmiersprache Visual Basic 2005 Erstellung eines Programms zur Simulation des GPS Moduls Versuchsaufbau mit einem Steckbrett und einem LPC Experimentierboard Anschluss des GPS Moduls an den Mikrocontroller August Filtern der Daten des GPS Moduls Abgabe des Pflichtenheftes September Erstes Konzept f r das Abrufen der Inf
39. das Vergleichen zweier Strings Funktion double potenz double char bergabewerte 1 Die Basis 2 Den Exponent R ckgabewert Das Ergebnis Beschreibung Erm glicht das Potenzieren eines Wertes 5 3 9 eeprom c Funktion eeprom_save bergabewerte keine R ckgabewert keiner Beschreibung Speichert alle Daten die im Trackingmen abgerufen werden k nnen und die letzte Speicheradresse des externen EEPROMs im internen EEPROM Funktion eeprom_loadl bergabewerte keine R ckgabewert keiner Beschreibung L dt die Daten aus dem internen EEPROM Lg Seite 68 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Funktion bergabewerte R ckgabewert Beschreibung Funktion bergabewerte R ckgabewert Beschreibung Funktion bergabewerte R ckgabewert Beschreibung Funktion bergabewerte R ckgabewert Beschreibung void char_write unsigned char unsigned char unsigned char 1 Anzahl der Zeichen 2 Zeiger auf die Adresse des internen EEPROMs 3 Zeiger auf die Startadresse der Zeichenkette keiner Speichert Zeichenketten im internen EEPROM void char_read unsigned char unsigned char unsigned char 1 Anzahl der Zeichen 2 Zeiger auf die Adresse des internen EEPROMs 3 Zeiger auf die Startadresse der Zeichenkette keiner L dt Zeichenketten aus dem internen EEPROM void float_write unsigned char float 1 Zeiger auf d
40. e Daten gesendet hat kann ich diesem nicht mitteilen ob bei der bertragung Fehler entstanden sind Im Nachhinein w rde ich die seriellen Schnittstelle nicht mehr aufteilen Statt dessen k nnte die Emfpangsleitung ber einen Schalter oder per Software zwischen dem GPS Modul und dem USB Controller geschaltet werden Aber als ich das geplant hatte wollte ich Platz sparen und wusste noch nicht was alles f r Fehler auftreten k nnen Konvertierung in das KML Format Jetzt wurde der Aspekt der Konvertierung interessant Im Internet hatte ich die Programme GPS Track Analyse und GPS Babel gefunden Beide sind in der Lage unterschiedliche Dateiformate von GPS Koordinaten zu konvertieren Das Programm GPS Track Analyse kann auch ASCIl Dateien in KML Dateien Konvertieren Mit diesem Programm konvertierte ich meine Koordinaten und lie sie in Google Earth anzeigen Anfangs war das so noch ganz in Ordnung Doch dann fand ich es zu umst ndlich mit meinem Programm die Daten zu Importieren mit einem fremden Programm zu konvertieren und dann erst in Google Earth anzeigen lassen Ich wollte versuchen die Daten selbst zu konvertieren Meine Internetrecherche brachte keine zufrieden stellenden Ergebnisse doch dann kam mir die Idee eine KML Datei mit einem Texteditor zu ffnen Und siehe da ich hatte den Quelltext der meine Koordinaten in Google Earth einbinden kann Jetzt musste ich diesen Code nur noch interpre
41. e Programmierung der seriellen Schnittstelle zu bekommen Besonders da ich einen asynchronen Zugriff auf die Serielle Schnittstelle realisieren wollte Der Vorteil hierbei ist dass sofort ein Hintergrundthread erzeugt wird Nach sehr intensiver und langer Internetrecherche kam ich auf die Seite http www innovatic dk Diese ist zwar auf Englisch doch genau das was ich brauchte Ich bertrug das neu erlangte Wissen auf mein Projekt Infolgedessen musste ich nicht erst in der Software ein Zeitfenster erzeugen in dem die bertragung stattfinden kann Jetzt war es ausreichend die Daten vom Handger t aus zu senden um sie auf dem PC entgegen zu nehmen Sporadisch entstanden bei der Ubertragung insbesondere bei gr eren Datenmengen aber auch Fehler D h es gingen teilweise Zeichen verloren Erst machte ich das Multithreading daf r verantwortlich Ich versuchte die Schnittstelle immer weiter zu optimieren und abzusichern doch alles ohne Erfolg Mittlerweile bin ich davon berzeugt dass es an der Hardware liegt Wo genau wei ich jedoch noch nicht Es k nnte an dem IC Bus oder auch an der Daten bertragung von oder zu dem USB Controller liegen Dadurch das ich die serielle Schnittstelle des Mikrocontrollers aufgeteilt hatte die Empfangsleitung ist an das GPS Modul angeschlossen und die Sendeleitung an die USB Schnittstelle konnte ich keine richtige Kommunikation zwischen dem Ger t und dem PC realisieren Das hei t wenn das Ger t di
42. erden Um einen aufgenommenen Track in Google Earth darzustellen muss das Ger t ber das mitgelieferte USB Kabel an den Computer angeschlossen werden Track aufnehmen 1 Ger t einschalten 2 Warten bis Empfang besteht die mittlere rote LED erlischt 3 Mit der Taste solange bl ttern bis der Men punkt Trackingmen mit dem gt Zeichen markiert ist 4 Diesen Men punkt mit der Taste Enter best tigen 5 Indem Trackingmen muss jetzt der Men punkt Tracking starten markiert sein 6 Diesen Men punkt mit der Taste Enter best tigen 7 Mit der Taste eine Aufnahmeoption ausw hlen Neuen Track starten oder Track fortsetzen markieren 8 Diesen Men punkt mit der Taste Enter best tigen 9 Die gr ne LED leuchtet auf und auf dem Display ist der Men punkt Tracking stoppen markiert es wird ein Track aufgezeichnet 10 Zum Beenden einer Aufnahme muss der Men punkt Tracking stoppen markiert und mit Enter best tigt werden Seite 85 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker 6 1 4 Akku laden Um den Akku zu laden muss das Ger t ge ffnet werden Dazu sind beide Schrauben an der Unterseite des Ger tes zu l sen Sind die Schrauben entfernt kann das Ger t vorsichtig aufgeklappt werden Bild 21 In dem Geh use befindet sich zur Fixierung der einzelnen Elemente Moosgummi Bevor der Akku
43. ere Berechnungen freigegeben F r jeden Datensatz wurde ein Strukturvektor angelegt D h es gibt 4 Strukturvektoren Jeder dieser Vektoren beinhaltet 2 Strukturen eine f r die Empfangenen und eine f r die berpr ften Datens tze Somit kann gew hrleistet werden dass die Berechnungen nur mit Daten durchgef hrt werden welche auf ihre G ltigkeit und Fehlerfreiheit berpr ft wurden Die empfangenen Zeichen werden in einem Strukturvektor mit dem Index 0 gespeichert Ist die Pr fsumme und die G ltigkeit der Daten bergepr ft und in Ordnung werden diese in dem Strukturvektor unter dem Index 1 abgelegt Die Berechnung und die Anzeigen im Men arbeiten nur mit den Daten welche unter dem Index 1 gespeichert sind einlesen Teil 1 Keine Interrupts mehr zulassen Anfang der Datens tze suchen Fe Ist das Ende eines Datensatzes erreicht e Pr fsummenberechnung beenden Ist die Berechnung der Pr fsumme freigegeben ef Pr fsumme berechnen ee Ist das eingelesene Zeichen der Anfang eines Datensatzes Ke ein Pr fsumme zur cksetzen Flag f r die freigabe der Pr fsummenberechnung setzen Struktogramm 6 Seite 52 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Funktion einlesen bergabewerte keine R ckgabewert keiner Beschreibung Nach dem der Anfang eines RMC Datensatzes gefunden wurde wird ein Flag gesetzt welches den Einlesevorgang des Datensatzes freigibt Dadurch das
44. erechnungen statt Diese werden nur alle 2s oder durch Sonderereignesse veranlasst abgearbeitet Sonderereignisse sind z B ein Tastendruck oder der Empfang je eines g ltigen Datensatzes Das vermeidet ein flackern des Displays verursacht durch zu h ufiges aktualisieren und unn tige CPU Belastung durch zu h ufige Berechnung der Trackingdaten III Seite 47 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker main t Wilkommenstext ausgeben Endlosschleife Mu Ist eine Men aktualisierung erforderlich EC keine Interrups mehr zulassen Flag f r die Men aktualisierung zur cksetzen Ist die Aufnahme aktiv und besteht Empfang SH EE Ist die Batteriekapaz it t unter 20 Besteht Empian OO N Interrupts wieder zulassen uC in den Idle Mode Struktogramm 1 Funktion Int_Ser Ubergabewerte keine R ckgabewert keiner Beschreibung Die Interrupt Service Routine wird bei jedem empfang eines Zeichens abgearbeitet Wenn von den insgesamt 4 verschiedenen Datens tzen RMC GGA VTG GSA jeweils ein g ltiger empfangen wurde wird der serielle Interrupt gesperrt und erst nach ca 2s wieder freigegeben Int_Ser Ist das Empfangsflag gesetzt Empfangsflag zur cksetzen Ist von jedem Datensatz ein g ltiger empfangen worden Anzahl der g ltigen Datens tze inkrementieren Men aktualisierung veranlassen Seriellen Interru
45. eriden noch Almanach Daten noch die letzte Position bekannt spricht man von einem Kaltstart Cold Start Es muss zun chst der Empfang aller Almanach Daten der Satelliten abgewartet werden Das kann bis zu 12 5 Minuten dauern Das gleiche Verz gerung kann auftreten wenn der GPS Tracker l ngere Zeit Wochen ausgeschaltet war oder mehr als etwa 300 km seit dem letzten Positionsfix bewegt wurde EK H Seite 15 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Kapitel 4 Projektentstehung e Zeitlicher Ablauf e Hardwareentwicklung e Softwareentwicklung uC e Softwareentwicklung PC gt Wie ist der GPS Tracker entstanden Hl Seite 16 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Zu Beginn der Technikerausbildung wurde darauf hingewiesen dass jeder Sch ler als Abschlussprojekt eine Technikerarbeit erstellen muss Die einzige Vorgabe war dass es ein Mikrocontroller gesteuertes Ger t sein soll Da mich die kabellose bertragung von Signalen schon immer fasziniert hatte kam mir als erstes die Idee in den Sinn ein Funkger t zu bauen Dazu fand ich auch schnell mehrere Schaltpl ne im Internet Aufgrund der Tatsache dass ich einen Amateurfunkschein ben tigt h tte um dieses Projekt zu realisieren entschloss ich mich dann aber doch dagegen Also suchte ich im Internet nach geeigneten Projekten Nach intensiver Suche kam ich auf die Seite http ithomaspfeifer net von wem au
46. erursacht Try Catch Fehlermeldung ausgeben F r jede Datei in dem Verzeichnis Ist das die markierte Datei Daamen Struktogramm 24 Button2 Methode Private Sub Button2_Click Ereignis Klicken auf den Button2 Beschreibung L scht die markierte Datei Struktogramm 25 Button2_Click Einstellungen laden Erstellen enes objektes der Klasse IO DirectorxInfo mit dem Pfad aus den Einstellungen Wies Wurde ein Fehler verursacht Try Catch nn Benutzerf hrung Sie haben keine Datei F r jede Datei im Verzeichnis markiert Ist das die markierte Datei L schen der Deg Aktualisieren der Listbox Anzeige der Daten der Datei verstecken Seite 77 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker 5 4 3 3 Load and Close Load Methode Private Sub Formi_Load Ereignis Starten der Software Beschreibung Konfiguriert die Software Form1_Load Mass Wurde ein Fehler verursacht Try Catch Benutzerf hrung Fehlerausgabe Thread absichern Thread Priorit t erh hen Einstellungen laden Objekt der Klasse IO DirectoryInfo mit dem aktuellen Pfad erstellen Ist der Pfad aus den Einstellungen identisch mit dem aktuellen FensterindenFoous Benutzerf hrung Bitte geben Sie einen Installationsordner an FolderBrowser starten den Einstellungen speichern Verzechniss seen ars EE Struktogramm 26 Close Methode Private Sub MyFormClosing
47. eschwindigkeit e Die aufgezeichneten Zeiten bestehend aus der Aufnahmedauer der Startzeit und der Endzeit des Tracks e Die Startposition bestehend aus der H he und dem L ngen und Breitengrad e Die Option der Daten bertragung zum PC e Die Option zur R ckkehr ins Hauptmen il Seite 7 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Die Werte des letzten Tracks bleiben bis zum Start des n chsten Tracks erhalten und sind im Men abrufbar Mit dem Start einer neuen Aufzeichnung werden die alten Daten berschrieben Im Aufnahmemen kann zwischen folgenden Optionen gew hlt werden e Neue Aufzeichnung starten e Angefangene Aufzeichnung fortsetzen e Ins Trackingmen zur ckkehren Im Statusmen werden folgende Werte angezeigt Die Genauigkeit der allgemeinen Positionsbestimmung Die Genauigkeit der horizontalen Positionsbestimmung Die Genauigkeit der H henbestimmung Der Batteriestatus Die Empfangsst rke Die Anzahl der bereits gespeicherten Wegpunkte falls nicht aufgezeichnet wird wird der Wert der letzten Aufzeichnung angezeigt Das Ger t wird ber drei Taster gesteuert Mit einem der Taster kann der Men punkt ausgew hlt werden Mit einem anderen Taster kann dieser Men punkt best tigt werden wodurch die gew hlte Aktion durchgef hrt wird H lt man den dritten Taster gedr ckt erscheint die Statusanzeige auf dem Display Zur besseren Bedienbarkeit leuchten 4 LEDs in folgenden Situat
48. f hrlich beschrieben Falls die detaillierte L sung eines Moduls oder einer Funktion gew nscht ist kann diese gerne im Quellcode auf der beiliegenden CD angesehen werden Hl Seite 44 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Code Komprimierung Um den oben die Software berhaupt auf den Mikrokontroller zu bekommen muss diese komprimiert werden Ansonsten hat die Software einen Speicherbedarf von 16410Byte und passt somit nicht in den zur Verf gung gestellten Codespeicher des Mikrocontrollers Die Software wird komprimiert indem folgende Einstellung in der IDE unter Options for Target vorgenommen wird Options for Target Target 1 Device Target Output Listing C51 AS1 BL51 Locate BL51 Misc Debug Utilities Preprocessor Symbols Define Undefine Code Optimization _ O OUN Warnings Waringlevel 2 EN 9 Common Block Subroutines Ca Bits to round for float compare 13 v Er Emphasis Favor speet Global Register Colorin E p 2 u Iw Interrupt vectors at address KE EI Gef KL Don tuse absolute register accesses Iw Keep variables in order Iw Enable ANSI integer promotion rules Include A Paths Misc Controls Compiler OPTIMIZE 9 SPEED BROWSE ORDER DEBUG OBJECTEXTEND control string Abbrechen Defaults Bild 11 il Seite 45 von 97 Dokumentation V1 0 Projekt GPS Tracker Bj rn Hackel Pinbelegung des Mikroc
49. g in dem Beispiel 60min abgespeichert und zu der Differenz zwischen 0 Uhr und der aktuellen Zeit aufaddiert LS Seite 63 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker tracking Teil 3 Ist das die erste Berechnung nach dem Start eines NEUEN Tracks Aktuelle Zeit als Startzeit speichern die Startzeit in Minuten umrechen Die Zwischenzeiten zur cksetzen Ist das die erste Berechnung nach dem Fortsetzen eines Tracks Die aktuelle Zeit in Minuten umrechnen Die Aufnahmezeit des angefangenen E eg Tracks als Zwischenzeit abspeichern Wurde das Tracking nicht am aktuellen Tag gestartet Speichern der Minuten von Gestern Teil des Datums als Indikator f r eine Tages berschreitende Aufnahme speichern Umrechnung der aktuellen Zeit in Minuten Berechnung der Aufnahmezeit in Stunden und Minuten Berechnung der Aufnahmezeit in Minuten Struktogramm 17 Funktion tracking Ubergabewerte keine R ckgabewert keiner Beschreibung Die Durchschnittsgeschwindigkeit wird ber die Aufnahmezeit und die horizontale Strecke berechnet Um die maximal erreichte Geschwindigkeit zu ermitteln wird die aktuelle Geschwindigkeit mit dem bisher erreichten H chstwert verglichen Da die Geschwindigkeit vom Satelliten bertragen und die Durchschnittsgeschwindigkeit ber die Zeit und die Strecke berechnet wird kann es vorkommen das die Durchschnitts geschwindigkeit gr er ist als die h chste vom S
50. haft von Fl ssigkristallen genutzt wird die VIII n_ lt C _ _ n Seite 95 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Polarisationsrichtung von Licht zu beeinflussen um Zeichen Symbole und Bilder anzuzeigen LED Light emitting Diode Auch als Leuchtdioden bekannt Eine energiesparende Lichtquelle LPC Mikrokontroller Familie der Firma NXP Objekt Ein Objekt bezeichnet in der Objektorientierung ein Exemplar eines bestimmten Datentypes oder einer bestimmten Klasse SD Karte Eine SD Memory Card Kurzform f r Secure Digital Memory Card dt sichere digitale Speicherkarte ist ein digitales Speichermedium Kann eine Kapazit t von bis zu 32 GB haben SMD Der Begriff oberfl chenmontierbares Bauteil englisch surface mounted device SMD ist ein Fachbegriff aus der Elektronik Diese Bauelemente haben im Gegensatz zur Durchsteckmontage keine Drahtanschl sse sondern werden mittels l tf higer Anschlussfl chen direkt auf eine Leiterplatte gel tet Track Strecke die das GPS Ger t aufgezeichnet hat UART UART ist die Abk rzung f r Universal Asynchronous Receiver Transmitter Die Funktion ist einen seriellen digitalen Datenstrom mit einem fixen Rahmen aufzubauen welcher aus einem Start Bit f nf bis maximal neun Datenbits einem optionalen Parity Bit zur Erkennung von Ubertragungsfehlern und einem Stopp Bit besteht Das UART dient sowohl zum Senden als auch zum Empfa
51. ht es aus die folgende Textpassage in einem Texteditor als kml Datei abzuspeichern und zu ffnen lt Folder gt lt name gt Trackpoints lt name gt lt Placemark gt lt name gt TPO lt name gt lt Snippet maxLines 2 gt lt Snippet gt lt descr ipt1on gt lt EDATAT TTabLe gt EE EE ze D E e E 7 2002 200 ZEIT ESS ET gt lt tr gt lt td gt lt b gt Geschwindigkeit lt b gt 0 6 km h lt td gt lt tr gt KEES SCU lt br LONGI FUTTER sis E A lt tr gt lt td gt lt b gt Latitude lt b gt 47 073576666666 12 EI gt lt EL gt er dr b gt HS 75 218 5 er jez gt lt table gt gt lt description gt lt styleUrl gt Trackpoint lt styleUrl gt lt Point gt lt altitudeMode gt clampToGround lt altitudeMode gt lt coordinates gt 9 17194833333333 47 6735766666667 lt coordinates gt lt Point gt lt Placemark gt lt Folder gt Um einen ganzen Track einzubinden bedarf es etwas mehr Quellcode Falls dazu Interesse bestehen sollte kann eine von der GPS Tracker Software erzeugte kml Datei mit einem beliebigen Texteditor ge ffnet werden In diesem wird dann der Quellcode dargestellt Eine ausf hliche Beschreibung ist auch unter der Website http code google com apis kml documentation erh ltlich iH Seite 34 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker 5 2 Hardware 5 2 1 Blockschaltbild Ze Enter Empfang a Bl ttern Aufnahme ie Status
52. htete Das hei t wenn ich mehrere Zeichen auf einmal seiten bergreifend abspeicherte traten Fehler auf Die physikalischen Speicherseiten sind gr er als bei den kleineren EEPROMs Das musste also zus tzlich im Treiber ber cksichtigt werden Durch die Anpassung der Speicheradressen konnte ich diesen Fehler beheben Dadurch ging meine anfangs aufgestellte Rechnung mit den 3120 Datens tzen aber Le Seite 25 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker nicht mehr auf Da eine physikalische Seite 128Byte gro ist musste ich darauf achten dass bei einem Speichervorgang diese Grenze nicht berschritten wird Anstelle von 21Byte pro Datensatz ben tigte ich jetzt 32Byte wodurch ich nur noch 2048 Datens tze abspeichern konnte Streckenberechnung Die Standartfunktionen des Ger tes waren schnell erf llt Doch von Navigation und Koordinatensystemen hatte ich nicht allzu viel Ahnung So musste ich mir das Wissen dieser Thematik erst aneignen Aufgrund der Tatsache dass bei einem Track die Koordinaten nur wenige Meter auseinander liegen musste ich die Entfernung nicht ber das sph rische Dreieck berechnen Ich rechnete von Hand ber den Satz des Pythagoras mit Koordinaten dessen Entfernung ich kannte Als das klappte versuchte ich die Formeln in meinen Quellcode zu bernehmen Folgende Formel benutzte ich zur Berechnung der Strecke zwischen den Koordinaten E ele Ei B1 52 2
53. htung eingeschaltet und der Taster entprellt v_IntKeyboard Keine Interrupts mehr zulassen Interrupt f r die 3 Taster festsetzen J Wurde die Taste Runter gedr ckt N Ist der User im Tracking oder Aufnahmemen Wurde die Taste Best tigen gedr ckt J NIJ N Ist der User im Aufnahmemen Aus einem evntl Men punkt Display l schen Wurde die Taste Status Men punktz hler f rs Men punktz hler f rs Men punktz hler vom gedr ckt Aufnahmemen inkrementieren Trackingmen inkrementieren Trackingmen auf den Anfang J N S Ausgabe der Ist der letzte Men punkt Aus einer evntl Anzeige zur ck Men punktz hler f r das Ausw hlen Wurde die Taste im re berschritten ins Trackingmen Hauptmen inkrementieren o NEE des Aufnahmemen Genauigkeit Ist der letzte Men punkt Ist der letzte Men punkt Men punktes gedr ckt J berschritten berschritten Ausgabe der Men punktz hler an den J N horizontalen Anfang setzen J d Men punkt Im Hauptmen Genauigkeit Men punktz hler an den Zur ck an den ausw hlen Men punkt ausw hlen Ausgabe der Anfang setzen Anfang im Trackingmen von vertikalen einem Men punkt zur ckGenauigkeit Wurde versucht ohne Empfang das Tracking zu starten ins Trackingmen Ausgabe des J N Akkustandes Zur ck ins Trackingmen
54. ie Adresse des internen EEPROMs 2 Zeiger auf die Adresse der Float Variable keiner Speichert Float Variablen in das internen EEPROM void float_read unsigned char float 1 Zeiger auf die Adresse des internen EEPROMs 2 Zeiger auf die Adresse der Float Variable keiner L dt Float Variablen aus dem internen EEPROM l Seite 69 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker 5 4 Software PC 5 4 1 Allgemeines Die Software wurde mit dem Visual Studio 2005 entwickelt Sie ist komplett in der Objektorientierten Sprache Visual Basic 2005 geschrieben Das Programm ist 252KByte gro wobei das Bild von dem Wilkommensfenster und das Bild f r das Icon inbegriffen sind Ohne sind es etwa 60KByte Projektmappen Explorer Projektma 4 Das Programm besteht aus 9 Dateien Davon sind 3 k asi EIS Dateien Programmfenster Formi1_Main vb Ld o e Pap Form2_Info vb Form3_Einstellungen vb 1 Datei ist B bee das Icon GPS ico 2 Dateien verwalten die 5 app config Einstellungen app config settingsi settings und 1 SE ER Datei ist das Wilkommensfenster SplashScreen1 vb Form2 vb Die Datei Formi_Main vb ist die wichtigste Datei Uber Een diese Datei wird der komplette Ablauf des Programms Settings1 settings gesteuert 2 SplashScreeni1 vb Bild 12 Kurzer Exkurs Die Try Catch Anweisung bietet eine M glichkeit einige oder alle m glichen Fehler zu behandeln die in einem bestimmten C
55. ionen eine Aufzeichnung l uft kein Satellitenempfang schwacher Batteriestatus USB Verbindung zu einem Rechner tl Seite 8 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker 2 2 PC Software Bild 2 zeigt die Benutzeroberfl che der PC Software FE GPS Tracker Datei Bearbeiten Info Track Datum Cross km 08 04 2008 15 10 07 h mle katche kmi jeggen kmi Points L nge stadt praktiker kmi tanguy glori kmi 79 2 206 km zuhause schule kmil Serial port nicht angeschlossen Bild 3 F r die Anzeige der Koordinaten in Google Earth m ssen die gespeicherten Wegpunkte zum Rechner bertragen werden Die GPS Tracker Software auf dem PC konvertiert die Daten in das Google Earth Format In der folgenden Auflistung werden die Funktionen der Software gezeigt Hauptfunktionen Konvertierung der Wegpunkte des Handger ts in eine KML Datei Anzeige ob das Ger t verbunden ist Anzeige der bereits bertragenen Tracks Beim Markieren einer Datei aus der Liste werden das bertragungsdatum die Anzahl der Wegpunkte und die L nge des Tracks angezeigt e Durch einen Doppelklick auf die markierte Datei wird die Fehleranzahl der bertragung angezeigt e Die markierte Datei kann ber einen Button ge ffnet und ber einen anderen gel scht werden e Beim ersten Start der Anwendung wird nach einem Speicherort f r die Tracks gefragt Dieser muss dann eingerichtet werden Optionen in
56. isierung dieses Projekts die Programmiersprache Visual Basic 2005 selbst angeeignet Schon alleine dieser Aspekt war die Arbeit wert Im Laufe der Entwicklung haben sich meine Programmierkenntnisse in der Sprache C immens gesteigert Zudem habe ich einige Erfahrungen in der Entwicklung der Fehlersuche und im Aufbau von elektronischen Schaltungen erlangt All dies wird mir in meiner Zukunft vieles erleichtern und eventuell auch vieles erm glichen Abschlie end ist zu sagen dass ich froh bin mir diese Herausforderung gestellt zu haben Ich verbrachte sehr viel Zeit teilweise auch schlaflose N chte damit dieses Projekt zu verwirklichen Doch st nde ich wieder am Anfang der Techniker ausbildung w rde ich mich wieder dazu entscheiden Seite 92 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Kapitel 8 Anhang e Eidesstattliche Erkl rung e Glossar e Quellen e Inhalt der beigef gten CD es TTS sy Sr Te Seite 93 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker 8 1 Eidesstattliche Erkl rung Hiermit versichere ich Bj rn Hackel dass die vorliegende Technikerarbeit von mir selbst ndig geplant erarbeitet und angefertigt wurde Alle Quellen welche der Informationsbeschaffung dienten sind aufgelistet Ort Datum Unterschrift Eyy Seite 94 von 97 Dokumentation V1 0 Projekt GPS Tracker Bj rn Hackel 8 2 Glossar ASCII EEPRO
57. ker Datei gt Beenden Methode Private Sub Beenden oolStripMenultem_Click Ereignis Klicken auf das Men item Datei gt Beenden Beschreibung Beendet das Programm L st beim Beenden das Ereignis MyFormClosing aus Bearbeiten gt Aktualisieren Methode Private Sub AktualisierenToolStripMenultem_Click Ereignis Klicken auf das Men item Bearbeiten gt Aktualisieren Beschreibung Aktualisiert die Liste mit den Dateieintr gen AktualisierenToolStripMen ltem_Click ee JUnn tige Displayaktuaisierungen merde Eintr ge aus rc F r jede Datei in dem Verzeichnis Ist das eine km Datei Datei in der Liste auff hren I ee Er Automatische sortierung einschalten Displayaktualisierungen wieder erlauben Mauscursor wieder normal darstellen Struktogramm 21 Bearbeiten gt Ger t suchen Methode Private Sub Ger tSuchenToolStripMenultem_Click Ereignis Klicken auf das Men item Bearbeiten gt Ger t suchen Beschreibung Schaut ob ein Ger t mit der eingestellen COM Nummer an den Computer angeschlossen ist a Seite 75 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Ger tSuchenToolStripMen ltem_Click Einstellungen laden Erstellen eines Stringvektors mit den Namen aller aktiven Ports Erstellen eines universellen Objektes F r jeden aktiven Port o I
58. komplette Speicherinhalt ber die USB Schnittstelle bertragen Das Ende der bertragung wird mit dem Line Feed Zeichen signalisiert Eine solche Daten bertragung sieht dann folgenderma en aus 4741 6480NN00906 8952E4741 7165N00906 8623E4741 7519N00 906 8390E 4741 6480 Breitenkoordinate N Breitenrichtung 00906 8952 L ngenkoordinate E L ngenrichtung Hl Seite 60 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker ausgabe Track gt PC Wurde dieser Men punkt best tigt Benutzerf hrung Anzeige des Men s mit Adresse des EEPROMWS auf null setzen Kennzeichnung dieses Men punktes Bis alle Wegpunkte bertragen wurden und mindestens ein Wegpunkt abgespeichert ist Zur ck ins Trackingm en Struktogramm 14 El Seite 61 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker 5 3 6 tracking c Funktion tracking bergabewerte keine R ckgabewert keiner Beschreibung Die Funktion tracking beinhaltet alle Berechnungen die w hrend der Aufnahme vorgenommen werden Zur besseren Darstellung wurde diese Funktion in mehrere Teile aufgegliedert In Teil 1 wird die Streckenberechnung vorgenommen tracking Teil 1 Ist das die erste Berechnung nach dem Start eines NEUEN Tracks Zuletzt aufgenommene Strecken l schen Zuletzt aufgenommene maximale Geschwindigkeit l schen Die Summe der Minuten vom Vortag zur cksetzten Teil des Datums al
59. l Platz ben tigt Da in Handys und anderen mobilen Ger ten auch Displays und andere Bauteile mit 5V Spannungsversorgung eingebaut werden musste es noch bessere M glichkeiten geben So kam mir die Idee einen Boost Konverter zu verwenden Da ich mit solchen Spannungsversorgungen noch berhaupt keine Erfahrungen gesammelt hatte beschloss ich die Sache erst einmal ruhen zu lassen und mich am Ende wenn der Rest der Schaltung funktioniert weiter damit zu besch ftigen Falls gegen Ende der Abgabefrist keine Zeit mehr f r die Realisierung der Spannungsversorgung mit dem Boost Konverter vorhanden sein sollte h tte diese auch mit einer gr eren Batterie und Festspannungsreglern aufgebaut werden k nnen Mikrocontroller Mir war klar dass ich f r dieses Projekt viel Speicherplatz ben tigen w rde Deshalb entschied ich mich f r den Mikrocontroller LPC936 Er ist der gr te Controller seiner Serie und im Unterricht haben wir diesen ausf hrlich besprochen Erst war geplant die SMD Variante des Mikrocontrollerss zu verwenden doch aufgrund der Komplexit t der Software entschied ich mich dann f r die PLCC Version Diese hat den eindeutigen Vorteil dass man den Controller immer wieder neu programmieren kann ohne ihn aus der Schaltung ausl ten zu m ssen W hrend der Entwicklungsphase und zu Testzwecken ist dies eindeutig die bessere L sung Das Ger t kann nach der Fertigstellung der Software immer noch auf SMD umger ste
60. lution Of Precision Zeitgenauigkeit Zeit So sind HDOP Werte unter 4 sehr gut ber 8 jedoch schlecht Die HDOP Werte werden schlechter wenn sich die empfangenen Satelliten hoch am Himmel befinden VDOP Werte hingegen sind nicht so gut wenn sich die Satelliten sehr nahe am Horizont befinden Die PDOP Werte sind am besten wenn sich ein Satellit ber Kopf und drei weitere gleichm ig am Horizont verteilt befinden F r eine gute Bestimmung sollte der GDOP Wert nicht ber 5 sein Die PDOP HDOP und VDOP Werte werden im NMEA Datensatz GPGSA ausgegeben Seite 13 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Zus tzlich wird die Positionsbestimmung noch durch weitere Fehlerquellen beeinflusst Die Fehlerbilanz sieht etwa folgenderma en aus wobei die Werte keine festen Gr en sondern durchaus Schwankungen unterworfen sind Die angegebenen Werte sind circa Werte e St rungen durch die lonosph re 5 Meter e Schwankungen der Satellitenumlaufbahnen 2 5 Meter e Uhrenfehler der Satelliten 2 Meter e Mehrwegeeffekt 1 Meter e St rungen durch die Troposph re 0 5 Meter e Rechnungs und Rundungsfehler 1 Meter Insgesamt ergibt sich daraus ein Fehler von 12 Metern Mit Korrektur durch Systeme wie WAAS und EGNOS wodurch vor allem lonosph reneffekte aber auch Umlaufbahnen und Uhrenfehler reduziert werden wird der Fehler auf etwa 3 5 Meter reduziert 3 4 Aufbau der Satellitenverbindung Die Speicherung
61. nformationen welche ein Datensatz enth lt werden durch Kommas getrennt Wird eine Information aus irgendwelchen Gr nden nicht bertragen wird sie einfach weggelassen Doch die dazugeh rigen Kommas werden ohne Leerzeichen beibehalten Durch das Z hlen der Kommas kann ein Empf nger aus jedem Satz die entsprechenden Informationen richtig zuordnen Jeder Datensatz hat eine definierte Anzahl von Kommas Bei Empfang werden st ndig abwechselnd Datens tze empfangen Die wichtigsten Datens tze werden nachfolgend kurz erl utert SGPRNMC Datensatz GPRMC 191410 A 4735 5634 N 00739 3538 E 0 0 0 0 181102 0 4 E A 19 Satzanfang GP Senderkennung RMC Datensatzkennung 191410 Uhrzeit der Positionsbestimmung 19 14 10 UTC Zeit A Empf ngerwarnung A Daten OK V Warnung 47 Breitengrad 35 5634 Breitenminute N N n rdliche Breite S s dliche Breite 007 L ngengrad 39 3538 L ngenminute E E stliche L nge W westliche L nge 181102 Datum der Positionsbestimmung 18 11 02 Satzende 19 Pr fsumme 19hex Seite 32 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker SGPGGA A Datensatz SGPGGA 191410 4735 5634 N 00739 3538 E 1 04 4 4 351 5 M 48 0 M 45 Satzanfang GP Senderkennung GGA Datensatzkennung 04 Anzahl der erfassten Satelliten 4 SNE H he ber Meer ber Geoid in Metern 351 5m Satzende 45 Pr fsumme 45hex SGPGSA Datensatz GPGSA A 3 15 17 18 23 4
62. ng stattfindet Wegpunkte mit einem bertragungsfehler werden dadurch nicht bernommen Die Anzahl der verworfenen Wegpunkte ist in der KML Datei gespeichert Der Benutzer kann sie durch einen Doppelklick auf den Listeneintrag in der GPS Tracker Software abrufen Seite 30 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Kapitel 5 Technische Beschreibung e Grundlagen e Hardware e Software uC e Software PC gt Wie funktioniert der GPS Tracker C zz eu e o o vu 6 6 Lv Seite 31 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker 5 1 Grundlagen 5 1 1 NMEA 0183 Format NMEA 0183 ist das Format in dem die GPS Daten der Satelliten von dem GPS Modul ausgegeben werden Es besteht aus mehreren Datens tzen welche unterschiedliche Informationen enthalten Die Informationen werden als ASCII Zeichen bertragen und k nnen somit einfach ausgewertet werden Jeder Beginn eines Datensatzes wird mit dem Zeichen gekennzeichnet Nachfolgend kommt die Senderkennung z B mit den Zeichen GP und die Datensatzbezeichnung bestehend aus drei Zeichen z B RMC Dem entsprechend sieht eine vollst ndige Kennzeichnung eines Datensatzes z B so aus sGPRMC Das Ende des jeweiligen Datensatzes wird mit dem Zeichen gekennzeichnet Nach dem wird zus tzlich eine Pr fsumme bertragen Diese besteht aus zwei Ziffern und ist hexadezimal codiert Die einzelnen I
63. ng von drei Punkten aus bestimmt werden Mit wenigstens drei Satelliten kann der GPS Empf nger seine Position auf der Erdoberfl che berechnen Dies wird 2D position fix zweidimensionale Positionsbestimmung genannt Zweidimensional deshalb weil der Empf nger sich direkt auf der Erdoberfl che also einer rechnerisch zweidimensionalen Fl che befindet Mit Hilfe von vier oder mehr Satelliten kann ein 3D position fix also die absolute Position im Raum oder eben zus tzlich die H he ber der Erdoberfl che bestimmt werden Durch st ndige Neuberechnung der aktuellen Position kann der GPS Empf nger auch genau die Geschwindigkeit und die Bewegungsrichtung als ground speed und ground track bezeichnet berechnen Eine andere M glichkeit der Geschwindigkeitsmessung ist das Ausnutzen des LE Seite 12 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Dopplereffekts der durch die Bewegung der bermittelten Signalen auftritt Dies funktioniert nach dem gleichen Prinzip wie ein Beobachter ein Martinshorn als h heren Ton wahrnimmt wenn es sich auf ihn zu bewegt und als tieferen Ton wenn es sich von ihm weg bewegt 3 3 Satellitengeometrie und Genauigkeit Ein Faktor der die Genauigkeit der Positionsbestimmung beeinflusst ist die Satellitengeometrie Einfach gesagt bezieht sich Satellitengeometrie auf die vom Empf nger aus gesehene Stellung der gerade empfangenen Satelliten zueinander im Raum Wenn ein
64. ngen von Daten USB Der Universal Serial Bus ist ein serielles Bussystem zur Verbindung eines Computers mit externen Ger ten uC Mikrocontroller LS Seite 96 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker 8 3 Quellen Websites http thomaspfeifer net http www kowoma de http www innovatic dk knowledg SerialCOM SerialCOM htm http www galileocomputing de openbook visual_basic http www mikrocontroller net http msdn microsoft com de de library http de wikipedia org http earth google de kml whatiskmi html B cher Visual Basic 2005 C f r PCs Keil C51 Philips LPC900 Hardware Software Toolchain 8 4 Inhalt der beigef gten CD Quellcode Mikrocontroller Quellcode PC Dokumentation als PDF Datei Datenbl tter Seite 97 von 97
65. odeblock auftreten k nnen w hrend dieser Code noch ausgef hrt wird Entsteht ein Fehler in einem Try Block wird der restliche Code in diesem Block bersprungen und der Code im Catch Block wird abgearbeitet Entsteht kein Fehler wird der Code im Catch Block nicht ausgef hrt a Seite 70 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker 5 4 2 Klassen bersicht Settings Erm glicht das Speichern Benutzerspezifischer Daten Uber diese Klasse k nnen Einstellungen gespeichert werden Sie wird f r das Speichern des Portnamens des Speicherpfades und des Hauptpfades verwendet SerialPort Die Klasse SerialPort stellt eine Anschlussresaurce dar Uber diese Klasse k nnen die Schnittstellen verwaltet werden Hier wird sie zur Verwaltung des USB Ports verwendet Diese Klasse ist neu in Net Framework v2 0 Aufgrund dessen sollte das Programm nicht mit fr heren Framework Versionen oder der Version 3 5 ausgef hrt werden SaveFileDialog Fordert den Benutzer zur Auswahl eines Speicherorts f r eine Datei auf Speichern unter OT ema ggg kml S h rnle katche kmi S joggen kml regensburg kml stadt praktiker kmi tanguy glori kml zuhause schule kml Bild 13 ber diese Klasse kann das Fenster Verwaltet werden Das Fenster wird angezeigt wenn ein Track vom Handger t aus bertragen wurde Der Benutzer kann ein Verzeichnis ausw hlen in dem der Track gespeichert werden soll
66. ontroller wird ein Code F ien Speicher von 15255Byte ben tigt Des Weiteren werden ne im Data Speicher 105Byte und im Xdata Speicher 7 reg936 h 327 Byte belegt LA header h A stdio h LEI Ledtreiber4x20 351 Links ist die Struktur des Programms zu sehen Die reg936 h Funktionen und Aufgaben des Programms sind in Mi einzelnen Dateien abgelegt Dies hat den Vorteil einer 2 A tracking c as i i D reg936 h besseren bersicht und somit einer effektiveren 5 header h Programmierung ll math h ease Die Datei header h ist ein selbst geschriebener Header reg936 h In diesem werden die Variablen und Funktionsprototypen b dee f r die anderen Dateien zug nglich gemacht sowie die PCTreipbEEpromBH a51 a E SEET Taster definiert D eeprom h Durch die Einbindung der Header math h stdio h und 2 A funktionen c Stdlib h konnten fertige Funktionen wie die cosinus rasen Funktion oder die ASCII in Float Konvertierung benutzen 8 me werden A reg936 h Mittels der Header eprom h und Jedh wurden die LA header h LEI zeitumrechnung c LJ reg936 h LA header h Bild 10 Funktionen der jeweiligen Treiber den restlichen Modulen bekannt gemacht Die Datei reg936 h erlaubt die Benutzung der prozessorspezifischen Flag und Adressbezeichnungen Auf den folgenden Seiten wird auf die einzelnen Module genauer eingegangen Aufgrund der Komplexit t des Programms wird jedoch nicht jedes Detail aus
67. ontrollers Portnummer DO O PO 1 PO 2 P0 3 P1 0 P1 1 P1 2 PIS P1 7 P2 0 P2 1 P22 P2 4 P2 5 P2 6 P2 7 Bezeichnung TASTER1 TASTER2 TASTER3 AD12 TxD RxD SCL SDA LCD BEL E R W RS D4 D5 D6 D7 Betriebsart Input Only Input Only Input Only Input Only Quasi Bidirektional Quasi Bidirektional Open Drain Open Drain Quasi Bidirektional Quasi Bidirektional Quasi Bidirektional Quasi Bidirektional Quasi Bidirektional Quasi Bidirektional Quasi Bidirektional Quasi Bidirektional Bezeichnung Bl ttern Enter Status A D Wandler Eingang Schnittstelle Senden Schnittstelle Empfang C Taktleitung IC Datenleitung LCD Beleuchtung Enable LCD Read Write LCD Umschaltung Befehl Daten LCD Daten LCD Daten LCD Daten LCD Daten LCD Die brigen Pins wurden alle mit der Betriebsart Input only konfiguriert e Seite 46 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker 5 3 2 Der grobe Ablauf Die komplette Software ist Interrupt gesteuert Das hei t der Programmablauf wird haupts chlich durch Ereignisse gesteuert Das Hauptprogramm ist eine kleine Endlosschleife Diese wird nur durchlaufen wenn ein bestimmtes Flag gesetzt wird Das Flag wird alle 2 Sekunden durch einen Timer oder durch ein Ereignis wie z B ein Tastendruck gesetzt In der Schleife werden zwei Funktionen aufgerufen Eine Funktion ist f r die Displayanzeige zust ndig und die ande
68. ormationen aus den GPS Datens tzen ber eine Men steuerung Start der Softwareentwicklung f r den PC Oktober Anbindung des Experimentierboards an den PC Erste Versuche mit der Streckenberechnung zwischen zwei Koordinaten November Erstellung der Algorithmen f r die Berechnungen der Strecke der Aufnahmezeit der Durchschnitts und Maximalgeschwindigkeit Speicherung der Wegpunkte in dem externen EEPROM Dezember Erste Erstellung einer KML Datei mit dem Programm GPS Track Analyse Entwicklung der Zeitumrechnung von der UTC Zeit auf die deutsche Zeitzone III _ _ __ n Seite 18 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker 2008 Januar Entwicklung der asynchronen seriellen Daten bertragung Start der Hardwareentwicklung Erstellung des Schaltplans und des Platinenlayouts Erster Versuchsaufbau auf dem Steckbrett ohne Experimentierboard Februar Entwicklung der Spannungsversorgung Interpretation der KML Sprache und erste Versuche der Erstellung einer KML Datei mit eigener Software Versuchsaufbau mit ge tzter Platine Erste Daten bertragung via USB M rz Aufnahme eines Tracks im Freien Feinschliff der Software April Erstellung des Geh uses Abgabe des GPS Trackers Zeitaufwand 2008 tt zem ll rewena 1 1111 rawe I O l oan 1 O VI Tabelle 1 N August ptember Oktober Februar M rz Se November Dezember
69. pt sperren Alle Flags f r den Empfang eines G ltigen Datensatzes zur cksetzen Struktogramm 2 Seite 48 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Funktion v_TimerOlInt bergabewerte keine R ckgabewert keiner Beschreibung Die ISR wird f r die Displaybeleuchtung verwendet Bei jedem Tastendruck wird der TimerO aktiviert und die Displaybeleuchtung gestartet Nach Ablauf von 10s wird der Interrupt ausgel st in dem die Beleuchtung wieder abgeschaltet und der Timer deaktiviert wird v_Timer Olnt Keine Interrupts mehr zulassen Reloadwert f r 10ms laden Sind 10s schon rum LCD Beleuchtung ausschalten Z hler A inkrementieren Z hler A 10s zur cksetzen Timer stoppen und TimerO Interrupt sperren Interruptsperre wieder aufheben Struktogramm 3 Funktion v_Timeriint bergabewerte keine R ckgabewert keiner Beschreibung In der ISR wird w hrend einer Aufnahme alle 5s die aktuelle Koordinate als Wegpunkt im externen EEPROM abgespeichert Alle 2s wird eine Men aktualisierung veranlasst der serielle Interrupt freigegeben und der Batteriestatus berechnet In einem Abstand von 30s wird hier der Empfang berechnet Die Anzahl der g ltigen Datens tze welche in diesen 30s empfangen wurden wird mit einem Richtwert verglichen Ist dieser erreicht besteht ein Empfang von 100 falls nicht wird die prozentuale Ann herung dieses Richtwertes als Hinweis auf die Empfangsqualit
70. r zum Ein und Ausschalten des Ger tes 6 LC Display zur Men f hrung und Informationsausgabe 7 Markierung markiert den angew hlten Men punkt a Seite 83 von 97 Bj rn Hackel Dokumentation V1 0 Projekt GPS Tracker 6 1 2 Men aufbau u ng s q BEE 7 pu 7 U9ZIOSUOJ BUINDEIL USUEIS VOR U N N NU9WDUMDEA L Bild 20 Seite 84 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker 6 1 3 Bedienung Allgemeines Das Men wurde so gestaltet das es sehr intuitiv bedienbar ist Das Ger t kann nicht in dem Sinne falsch bedient werden dass es abst rzt oder gar zerst rt wird Um einen Track aufzunehmen muss Empfang bestehen Die besten Vorraussetzungen daf r sind im Freien mit guter Sicht zum Himmel Je nach dem ob ein Warmstart oder ein Kaltstart durchgef hrt wird kann es bis zu 15 min dauern bis eine gute Verbindung zu den Satelliten aufgebaut werden kann Es bestehen zwei M glichkeiten einen Track aufzuzeichnen 1 Einen neuen Track starten Hier werden die Daten der letzten Aufnahme gel scht und ein neuer Track gestartet 2 Den letzten Track fortsetzen Hier wird der im Speicher vorhandene Track fortgesetzt Wenn eine Aufzeichnung durch das Ausschalten des Ger tes beendet wird gehen die Daten verloren Der Track muss im Trackingmen ber den Men punkt Tracking stoppen beendet werden Anschlie end kann das Ger t ohne Datenverlust ausgeschaltet w
71. re ist w hrend einer Aufnahme f r die Berechnungen zust ndig Ansonsten werden hier nur noch die LEDs f r die Batterieanzeige und die Empfangsanzeige gesteuert In der brigen Zeit ist das Programm im Idle Mode Das ist ein stromsparender Betriebsmodus des Mikrocontrollers In diesem Modus bleibt der Mikrocontroller bis ein Interrupt ausgel st wird Beim Einschalten des Ger tes werden die gespeicherten Daten aus dem internen EEPROM geladen Das sind Informationen der letzten aufgezeichneten Strecke Wenn eine Aufnahme beendet wird werden alle Informationen die im Trackingmen abrufbar sind gespeichert Der Einlesevorgang der GPS Daten findet in der Interrupt Service Routine des seriellen Interrupts statt Wird ein Zeichen empfangen wird eine Funktion aufgerufen welche das empfangene Zeichen der richtigen Variablen oder dem richtigen String zuordnet Wird eine Taste gedr ckt wird zuerst analysiert welche der 3 Tasten gedr ckt wurde Anschlie end wird gekl rt an welcher Stelle im Men die Taste gedr ckt wurde Darauf basierend wird die gew nschte Aktion durchgef hrt 5 3 3 main c Funktion main bergabewerte keine R ckgabewert keiner Beschreibung Die Funktion main ist eine Endlosschleife Hier verweilt der Mikrocontroller w hrend er auf ein Ereignis Interrupt wartet In dieser Wartezeit geht der uC automatisch in den Idle Mode In der Endlosschleife finden die Men aktualisierung und die B
72. rn Hackel Projekt GPS Tracker Kapitel 7 Fazit gt Wozu das alles Seite 91 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Als ich mit der Technikerarbeit anfing wusste ich noch nicht so genau auf was ich mich eingelassen hatte Ich war mir im Klaren dass ich mir nicht gerade eine einfache Arbeit herausgesucht hatte Mir ging es jedoch haupts chlich darum dass es eine Arbeit ist welche mich interessiert und mich auch herausfordert Mir sind mehrere Fehler unterlaufen In der Planung sowie in der Entwicklung doch ich wollte keinen davon nicht begangen haben Aus jedem Fehler der mir unterlief habe ich eine Menge Fachwissen und aber auch Wissen ber mich selbst erlangt Im Nachhinein k nnte ich in vieler Hinsicht sagen wie ich es h tte besser machen k nnen doch dazu waren eben genau diese Fehler notwendig Die bertragung zum PC w rde ich jetzt mit einer Sende und einer Empfangsleitung realisieren Die vertikale Geschwindigkeit w rde ich wenn berhaupt mit einem umfangreicheren Algorithmus der auf komplexeren Berechnungen beruht verwirklichen Der GPS Tracker ist nicht perfekt Es gibt mehrere Details die anders eventuell besser gel st w ren Doch dies ist das erste gro e Projekt das ich bis ins Detail selbst geplant und entwickelt habe Die Erfahrungen welche ich aus dieser Arbeit gewonnen habe sind wichtiger als ein perfektes Produkt Ich habe mir f r die Real
73. rtikalen Strecke und der realen Strecke Da die H he wie alle Daten von dem GPS Modul in ASCII Zeichen bertragen wird muss diese in eine Zahl umgewandelt werden Die vertikale Strecke wird aus der Summe der Differenzen zwischen der aktuellen H he und der H he der letzten Position berechnet Zur Berechnung der realen Strecke wird ber den Satz des Pythagoras die horizontale Strecke mit der vertikalen Strecke verrechnet tracking Teil 2 Umrechnung der H he in eine Zahl Ist das die erste Berechnung nach dem Start k Tracks Aktuelle H he auch als Referenzh he benutzen Als Endzeit des Tracks das Wort offen abspeichern Berechnung der H hendifferenz Differenz ist immer Positiv Aufaddieren der Differenzen und als vertikale Strecke speichern Aktuelle H he als Referenz f r die n chste Berechnung verwenden Berechnung der realen Strecke ber Pythagoras aus der vertikalen und horizontale Strecke Struktogramm 16 Funktion tracking Ubergabewerte keine R ckgabewert keiner Beschreibung Um die Aufnahmezeit berechnen zu k nnen muss die Startzeit und die aktuelle Zeit in Minuten umgerechnet werden Die Differenz aus diesen beiden Zeiten ergibt die Aufnahmezeit Problematisch wird es nur wenn die Aufnahme ber einen Tag hinausgeht Z B wenn von 23 Uhr bis 1 Uhr morgens getrackt wird Um das Problem zu l sen muss erkannt werden wann ein neuer Tag beginnt Ist das der Fall wird die verstrichene Zeit vom Vorta
74. s Indikator f r eine Tages berschreitende Aufnahme speichern Umrechnung des Breitengrades als String in eine Gleitkommaz ahl Umrechnung der Breitenminute in eine Gleitkommazahl Umwandlung der Breitenkoordinate von Grad Minuten in Minuten Bei einer S dkoordinate den Mnutenwert invertieren Umrechnung des L ngengrades in eine Gleitkommazahl Umrechnung der L ngenminute in eine Gleitkommazahl Umwandlung der L ngenkoordinate von Grad Minuten in Minuten Bei einer Westkoordinate den Minutenwert invertieren Ist das die erste Berechnung nach dem Start eines Tracks Die aktuellen Koordinaten in Minuten als Referenzkoordinaten f r die erste Berechnung verwenden Berechnung der Differenz zwischen den Breitenkoordinaten Berechnung der Differenz zwischen den L ngenkordinaten Berechnung der Mittelbreite und Umrechnung von Rad in Deg Berechnung des Abstands zwischen den L ngengraden in Seemeilen Streckenberechnung mit Pythagoras Umwandlungvon Meilen in km Aufaddieren der Strecken zwischen den Koordinaten und als horizontale Strecke speichern Aktuelle Koordinaten als Referenzkoordinaten f r die n chste Berechnung Struktogramm 15 III _ Seite 62 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Funktion tracking bergabewerte keine R ckgabewert keiner Beschreibung Das folgende Struktogramm schildert die Berechnungen der ve
75. s die gesamte Funktion bei jedem Empfang eines einzelnen Zeichens ausgef hrt wird ist so gew hrleistet das der angefangenen Datensatz fertig gestellt werden kann bevor ein neuer Anfang gesucht wird Nach Abschluss des Datensatzes oder wenn ein Fehler aufgetreten ist wird das Flag gel scht und ein neuer Anfang eines Datensatzes wird gesucht Daraufhin wird untersucht ob das empfangene Zeichen ein Komma ist Ist dies der Fall wird eine extra Funktion gestartet welche die Kommas z hlt und kontrolliert ob die maximale Anzahl der Kommas nicht berschritten wurde s auch S 32 Ist das empfangene Zeichen kein Komma wird je nach der Anzahl der bereits empfangenen Kommas und des Zeichenindex das Zeichen an der entsprechende Stelle in der Struktur abgespeichert Anschlie end wird der Zeichenindex erh ht In den meisten F llen werden die Daten als Strings abgelegt Hier wird dann automatisch ein Stringendezeichen an das Ende des Strings angeh ngt F r jeden Datensatz gibt es eine spezielle Filterung Das hei t je nach Datensatz RMC GGA VTG oder GSA wird ein anderer Filter angewendet In einem solchen Filter werden die ben tigten Daten aus den empfangenen Datens tzen entnommen und je nach Anzahl der empfangenen Kommas an einer anderen Stelle in der jeweiligen Struktur abgelegt Hier werden nur die Strukturen der Strukturvektoren mit dem Index 0 verwendet Wenn der Datensatz fertig ist wird die Pr fsumme verglichen Der
76. so einen geeigneten Boost Konverter der mir die 5V erzeugen konnte Ich bestellte mir erst einen der laut Datenblatt 130mA bei einer Ausgangsspannung von DN und einer Eingangs spannung zwischen 2 2V und 4 2V liefern kann Meine Schaltung ben tigt mit Displaybeleuchtung ca 110mA Als ich den Boost Konverter einbaute lief das Ger t auch vorerst doch als sich die Displaybeleuchtung anschaltete brach die Spannung zusammen Daraufhin bestellte ich mir einen anderen Boost Konverter der laut Datenblatt 500mA treiben konnte Dieser fing an unangenehm zu pfeifen und kam bei Belastung ins Schwingen Das konnte nicht die L sung sein Nach intensiver Suche fand ich einen Baustein der etwas gr er war und auch gr ere Kondensatoren und Spulen ben tigte Dieser hatte jedoch einen Wirkungsgrad von 96 und konnte bis zu 1A treiben Ich bestellte ihn baute ihn ein er war perfekt Seite 23 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Batterie berwachung Da bei einem batteriebetriebenen Ger t die Batterie berwachung wichtig ist berarbeitete ich nochmals meine bisherige Batterie berwachung Diese bestand aus einem Spannungsteiler und dem Analog Digitalwandler des Mikrocontrollers Aufgrund der niedrigen Differenz von ca 0 6V zwischen der Akkuspannung bei geladenem Zustand und bei leerem Zustand war der Spannungsteiler nicht optimal Ich wollte zumindest einen Ann herungs
77. st das der Port aus den Einstellungen Wurde ein Fehler verursacht Benutzerf hrung nicht angeschlossen Iry Catch Fehlerausgabe Ist der Port schon offen schlie en Baudrate Parit t Datenbits Stopbits einstellen Port ffnen Eingangsspeicher des Ports l schen Benutzerf hrung bereit Struktogramm 22 Bearbeiten gt Einstellungen Methode Private Sub EinstellungenToolStripMenultem_Click Ereignis Klicken auf das Men item Bearbeiten gt Einstellungen Beschreibung Offnet das Fenster f r die Einstellungen und bergibt die aktuellen Einstellungen EinstellungenToolStripMen ltem_Click In das Label1 von Form3 den aktuell eingestellten Portnamen schreiben In die Textbox1 den aktuell eingestellten Pfad f r die speicherung der Tracks schreiben Form3 ffnen Struktogramm 23 Seite 76 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Info gt Info Methode Private Sub InfoToolStripMenultem_Click Ereignis Klicken auf das Men item Info gt Info Beschreibung ffnet das Fenster mit einer Information ber das Programm 5 4 3 2 Button Click Button Methode Private Sub Button1_Click Ereignis Klicken auf den Button1 Beschreibung ffnet Google Earth mit der markierten Datei Buttoni1_Click Einstellungen laden Objekt der Klasse IO DirectoryInfo mit dem Pfad aus den Einstellungen erstellen RH Wurde eine Fehler v
78. st konnte ich es nicht glauben da ich ja die Pr fsumme auswerte und somit wenig Restfehler M glichkeiten bestehen Doch es wiederholte sich Da es nur bei diesen Werten vorkam schloss ich daraus dass es an der 2DFix Positionsbestimmung lag Ich berarbeitete den Einlesevorgang so das die H he die Geschwindigkeit und die Anzahl der Satelliten nur bei einer 3DFix Positionsbestimmung ausgewertet und angezeigt werden k nnen Dadurch wurde dieser Fehler beseitigt Abspeicherung von Wegpunkten Als die Filterung der Daten aus den Datens tzen ohne Probleme lief widmete ich mich dem Thema der Abspeicherung der Wegpunkte in einem externen Speicher Da ich die Speicherung mit einem seriellen lC EEPROM als Speichermedium realisierten wollte ben tigte ich zun chst einen passenden I C Treiber Einen SC Treiber f r 64kb EEPROMSs fand ich recht schnell Diesen musste ich nun an mein 512kb EEPROM anpassen Aufgrund des gr eren Speichers werden auch mehr Adressen ben tigt wodurch 2Byte f r die Adressierung der Speicherzelle bertragen werden m ssen und nicht nur eins wie beim 64kb EEPROM Ich passte den PL Treiber an meine Bed rfnisse an und versuchte die Daten abzuspeichern und sp ter ber die RS232 Schnittstelle zum PC zu bertragen Dort berpr fte ich sie mit dem Hyper Terminal Doch ab einer gewissen Anzahl von Zeichen traten Fehler auf Es stellte sich heraus dass ich die physikalischen Speicherseiten des EEPROMs nicht beac
79. t dem Mikrocontroller Experimentierboard verbunden war Der gro e Nachteil dabei war dass ich ortsgebunden arbeiten musste was bei Streckenberechnungen nicht gerade optimal ist Doch f r die anf nglichen Versuche war das vollkommen ausreichend und bei der Streckenberechnung musste ich mich zumindest vorerst auf die Theorie verlassen Die grobe Funktionalit t konnte ich auch so austesten Um dann sp ter doch einen kleinen Testlauf machen zu k nnen entschied ich mich dazu die Schaltung auf einer Lochrasterplatine aufzubauen Mit diesem Aufbau wollte ich haupts chlich die Geschwindigkeitsmessung des GPS Moduls und das Aufzeichnen einer Strecke testen Die Anbindung an den PC die Batterie berwachung und die Boost up Spannungsversorgung lies ich erst einmal au en vor Da die Spannungsversorgung ein wesentlicher Teil einer jeden Schaltung ist improvisierte ich diese und realisierte sie mit zwei Festspannungsreglern und einem 9V Block Das sollte zumindest f r ein paar Minuten ausreichen F r die ersten Testl ufe war das genug Da die Platine des fertigen Projektes jedoch wesentlich kleiner werden sollte musste auch die EMV Best ndigkeit wenn alle Bauteile eng aneinander liegen getestet werden Erst baute ich die Schaltung auf mehreren Platinen auf Ich entschloss mich dazu die einzelnen Funktionsgruppen auf getrennten Platinen herzustellen Somit konnte ich im Falle eines Fehlers diesen besser identifizieren Ich trennte also
80. t werden Seite 21 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Speicher Es sollten nat rlich so viele Datens tze wie m glich abgespeichert werden Der erste Gedanke war eine SD Karte Diese L sung erschien mir als optimal Ich recherchierte eine ganze Weile im Internet las Datenbl tter und Beispiel Codes Erst sah ich es als Herausforderung doch als die Zeit verstrich und ich dann auch noch bemerkte das SD Karten relativ hohe Schreibestr me ben tigen bis zu 90mA hakte ich das Thema ab und informierte mich ber andere M glichkeiten Speichermedien wie CF Karten oder andere mit paralleler Ansteuerung schloss ich gleich wegen des erh hten Platzbedarfs aus Es sollte also ein Speichermedium mit serieller Ansteuerung sein Da wir zu dieser Zeit im Unterricht gerade den I C Bus durchnahmen entschied ich mich bald darauf ein serielles EEPROM zu verwenden Diese haben zwar eine vergleichsweise sehr kleine Speicherkapazit t aber sie sind einfach anzusteuern haben einen geringen Platzbedarf und ben tigen nur Str me von bis zu m h Ich errechnete mir eine m gliche Speicherbelegung von ca 3120 Datens tzen bei einem Speicher von 512kb Warum diese Berechnung praktisch nicht umzusetzen war wird im Abschnitt Speicher des Kapitels 4 3 Softwareentwicklung uC genauer erl utert Versuchsaufbauten W hrend der Entwicklungsphase hatte ich mir die Schaltung auf einem Steckbrett aufgebaut welches mi
81. tieren und mein Problem war gel st ich konnte meine Daten selbst konvertieren Seite 29 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Optimierung Als die Grundsoftware stand fielen mir immer mehr Features ein die ich integrieren wollte Erst lie ich beim markieren einer Datei aus der Liste das Datum der Erzeugung anzeigen Das war noch recht einfach dazu gibt es schon eine fertige Methode Sp ter wollte ich dann noch die Anzahl der Wegpunkte und die L nge der Strecke anzeigen lassen Aufgrund des Speichermangels wollte ich die Werte jnicht ber die Schnittstelle bertragen Das Problem war die Speicherung Eine M glichkeit w re die Speicherung der Daten in einer speziell angelegten Liste welche in einer extra Datei gespeichert wird Aufgrund der bersichtlichkeit und dem Handling entschied ich mich aber dagegen Da ich keine neuen Dateien anlegen wollte blieb nicht mehr all zu viel Als ich mit dem KML Format experimentierte und damit auch immer besser klar kam entschied ich mich dazu die Werte in den KML Dateien zu integrieren Sobald eine Datei markiert wird wird diese auf Schl sselw rter durchsucht Um die Anzahl der Wegpunkte anzeigen zu lassen wird das Wort Latitude gez hlt Dieses Wort kommt pro Datensatz einmal in der Datei vor Um die L nge der zur ckgelegten Strecke anzeigen zu lassen musste bei der Erstellung der KML Datei die neu berechnete Strecke zus
82. togramm 9 Seite 56 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Funktion unsigned char search_count unsigned char Ubergabewerte Anzahl der Kommas welche maximal in dem einzelnen Datensatz vorkommen d rfen R ckgabewert Flag f r die Erkennung fehlerhafter Datens tze Beschreibung Die Funktion search_count z hlt die Kommas in einem Datensatz Bei jedem empfangenen Komma wird der Kommaz hler inkrementiert und der Zeichenindex zur ckgesetzt Wurde die maximale Anzahl der erlaubten Kommas in diesem Datensatz berschritten wird dieser gesperrt d h nicht f r die Pr fsummenkontrolle freigegeben und beim n chsten Empfang gleich wieder berschrieben Wenn das Ende des Datensatzes erreicht ist und alle Kommas ordnungsgem empfangen wurden wird der Datensatz f r den Pr fsummenvergleich freigegeben search_count R ckgabeflag setzen Ist das empfangene Zeichen ein Komma Kommaz hler inkrementieren Zeichenindex zur cksetzen Wurden schon mehr als die maximale Anzahl der Kommas gez hlt Zeichenindex zur cksetzen Kommaz hler zur cksetzen R ckgabeflag zur cksetzen Ist der Datensatz bis auf die Pr fsumme fertig S Datensatz f r das Auslesen der Pr fsumme freigeben R ckgabeflag zur cksetzen Struktogramm 10 Lg Seite 57 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker 5 3 5 ausgabe c Funktion ausg
83. tor 0 62 Kondensator 3 00 Kondensator 0 14 Kondensator 0 32 Kondensator 0 04 Induktivit t 0 22 Induktivit t 1 98 Widerstand 0 17 Widerstand R3 R6 0 12 Widerstand 0 21 Widerstand R10 R19 0 69 Widerstand o Ro aa Jij oze 0 21 Widerstand 0 14 Widerstand 0 14 Trimmer 1 45 Widerstandsnetzwerk DN DND 0 14 Kurzhubtaster 0 57 Schiebeschalter LI Miniatur 1 0 20 0 20 Sockel LI Pec 1 ozge 0 28 Br cke 0 06 Platinensteckverbinder 0 31 Platinensteckverbinder 0 25 USB Buchse 0 42 USB Kabel LI USBMni 1 oge 0 83 Akku JL MEI 1 886 8 36 Platine LI Doppelsetig 1 zo 2 52 Geh use 0000102 x61x26mm CT 185 1 85 Summe Netto 102 88 Tabelle 2 19 Mwst 19 55 Summe Brutto 122 43 Seite 43 von 97 Dokumentation V1 0 Projekt GPS Tracker Bj rn Hackel 5 3 Software uC 5 3 1 Allgemeines F r die Entwicklung der Software wurde die IDE uVision3 von der Firma Keil in Kombination mit dem LPC Experimentierboard und dem Emulatorboard EPM9O00 ebenfalls von der Firma Keil benutzt ECH Target 1 ZEN Source Group 1 PUTCHAR C Die Software ist bis auf die Treiber komplett in der Programmiersprache C geschrieben Die Treiber sind in E ausgabe c Assembler geschrieben und an die Hardware angepasst LJ reg936 h Sie worden A stdio h einlesen c F r die Software auf dem Mikroc
84. ttoni1_Click Button _Click do_it EinstellungenToolStripMenultem_Click Formi_Load Ger tSuchenToolStripMenultem_Click Import InfoToolStripMenultem1_Click ListBox1_SelectedIndexChanged MyFormClosing Receiver set_path take_it Timer1_Tick Geschachtelte Typen Bild 15 gt gt Bj rn Hackel In Bild 15 werden die verwendeten Methoden vom Hauptprogramm dargestellt Wann welche Methode ausgef hrt teilweise selbsterkl rend Die Methoden welche mit einem _ Click enden werden durch einen Mausklick ausgef hrt Z B wenn der Buttoni angeklickt wird dann wird die Methode Button1_Click ausgef hrt Timeri1_Tick wird wenn der Timer gestartet ist immer nach einem eingestellten Zeitintervall ausgef hrt Listbox1_SelektedindexChanged wird abge arbeitet wenn ein Listeneintrag markiert wird Formi_Load und MyFormClosing werden beim Starten und beim Beenden des Programms ausgef hrt Die restlichen Methoden werden von anderen Methoden aufgerufen Auf den folgenden Seiten wird genauer auf die einzelnen Methoden eingegangen wird ist 5 4 3 1 ToolStripMen ltem_Click I GPS Tracker Bearbeiten Track cross kml ggg kml h rnle katche kml joggen kml regensburg kml stadt praktiker kml tanguy glori kml Serial port nicht angeschlossen el ToolStripMenultems sind die Eintr ge in der Men leiste Bild 16 Seite 74 von 9 Dokumentation V1 0 Bj rn Hackel Projekt GPS Trac
85. tum bertragen Aus diesen Informationen muss zun chst ermittelt werden was f r ein Wochentag heute ist Dazu wird zus tzlich ein Referenztag der ein Sonntag ist ben tigt Da nur die Information relevant ist ob heute ein Sonntag ist werden die Tage von heute bis zu diesem Referenztag unter Ber cksichtigung der Schaltjahre gez hlt Ist die Anzahl der Tage durch 7 teilbar ist der heutige Tag ein Sonntag Jetzt muss noch ermittelt werden ob schon der letzte Sonntag im M rz oder der letzte Sonntag im Oktober verstrichen ist Je nach dem besteht Sommer oder Winterzeit Wenn das bekannt ist ist es mit dem Aufaddieren von einer oder zwei Stunden aber noch nicht getan Wenn z B 2 Stunden aufaddiert werden muss verhindert werden dass eine Zeit von z B 25 Uhr angezeigt wird Und wenn wie in dem Beispiel die Zeitumstellung tages bergreifend ist muss zudem auch das Datum angepasst werden Die Tatsache dass die Daten als ASCII Zeichen abgespeichert Seite 65 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker werden macht die Sache zus tzlich aufwendiger Somit geht die einfache Rechnung 9 2 11 leider nicht auf Stattdessen ist I eg Es w re zwar m glich die ASCII Zeichen in Zahlen umzuwandeln doch das w rde mehr Speicher ben tigen zeitumstellung Teil 1 Flag f r die Erkennung einer n tigen Datumsumstellung l schen Die Tage des Datums in eine Dezimale Zahl umwandeln und in zwei Varia
86. tzes setzen Struktogramm 8 LS Seite 55 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Funktion unsigned char checksum bergabewerte keine R ckgabewert Flag f r die Erkennung fehlerhafter Datens tze Beschreibung Die Funktion checksum liest die vom Satelliten mit bertragene Pr fsumme aus und vergleicht diese mit der berechneten Stimmt sie berein ist alles in Ordnung Stimmt sie nicht berein wird ein Fehlerflag zur ckgegeben Dieses veranlasst dass der fehlerhafte Datensatz nicht freigegeben wird checksum R ckgabeflag setzen Ist das Empfangene Zeichen eine Zahl und die Einerstelle der Pr fsumme Umwandlung von ASCII in hex und abspeicherung Ist das Empfangene Zeichen eine Zahl und die Sechzehnerstelle der Pr fsumme Umwandlung von ASCII in hex und abspeicherung Ist das Empfangene Zeichen ein Buchstabe und die Einerstelle der Pr fsumme Umwandlung von ASCII in hex und abspeicherung Ist das Empfangene Zeichen ein Buchstabe und die Sechzehnerstelle der Pr fsumme Umwandlung von ASCII in hex und abspeicherung Wurde die Pr fsumme vollstandig ausgelesen und stimmt sie NICHT mit der berechneten ber ein Zeichenindex zur cksetzen Kommaz hler zur cksetzen R ckgabeflag l schen Kor Wurde die Pr fsumme noch nicht vollst ndig ausgelesen Zeichenindex erh hen EEE R ckgabeflag zur ckgeben Struk
87. uf jeden fall konnte ich so das GPS Modul simulieren und meinem Mikrocontroller einen dauerhaften seriellen Datenstrom liefern Zwischen der Hardware und Softwareentwicklung f r den uC arbeitete ich immer wieder an meinen Visual Basic Kenntnissen Als ich mir dann einen gewissen Grundlevel angeeignet hatte begann ich mit der Programmierung der GPS Tracker PC Software Die einzige Aufgabe der Software sollte zun chst die Abspeicherung der empfangenen Zeichen in einer Datei sein Serielle Schnittstelle Die Anbindung der seriellen Schnittstelle an den uC war schnell zu realisieren Aber dadurch dass diese Anwendung anfangs noch auf einem einzigen Thread lief musste ich im Programm eine Funktion starten welche die serielle Schnittstelle empfangsbereit machte Jetzt hatte ich ein vom Timeout der Schnittstelle eingestelltes Zeitfenster in dem ich die Daten vom Ger t aus senden musste W hrend dieser Zeit gefror zudem noch das Fenster der Anwendung ein was optisch nicht sch n aussieht Anfangs war das ausreichend Ich konnte die empfangenen Koordinaten in einer ASCII Datei auf meinem Rechner speichern Allerdings war auch klar dass es so nicht bleiben konnte Also informierte ich mich Seite 28 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker ber anderweitige L sungsans tze So kam ich auf das Thema Multithreading Es war ziemlich schwierig geeignete Informationen ber die ereignisorientiert
88. utton ndern bet tigen Gew nschtes Verzeichnis ausw hlen oder erstellen a en LS Seite 89 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker 6 3 Kontrollelemente 1 Bei angeschlossenem Ger t muss die USB LED beim Handger t leuchten 2 Bei angeschlossenem Ger t muss in dem Feld Serial port bereit stehen 3 Bei Doppelklick auf einen Track in der Liste erscheint die Fehleranzahl von der bertragung 6 4 M gliche Probleme Problem USB LED leuchtet bei angeschlossenem Ger t nicht Ursache Treiber ist noch nicht oder fehlerhaft installiert Behebung Das Ger t erneut einstecken und den Treiber automatisch installieren lassen Falls das nicht funktioniert das Ger t ausstecken den Treiber mit der mitgelieferten Software FT Clean entfernen und das Ger t erneut einstecken Problem In dem Feld Serial port wird nicht bereit angezeigt Ursache 1 Das Ger t wurde nach dem Start der Software eingesteckt Behebung Unter Bearbeiten Ger t suchen ausw hlen Ursache 2 Die Schnittstelle wurde nicht oder fehlerhaft eingestellt Behebung Die Erstinbetriepbnahme ohne Neuinstallation der Treiber wiederholen Problem Das Ger t zeigt keine Reaktion nach dem Einschalten Ursache Der Akku ist leer Behebung Akku mit dem mitgelieferten Ladeger t wie in Abschnitt 6 1 4 beschrieben laden Seite 90 von 97 Dokumentation V1 0 Bj
89. wert des Akkustandes anzeigen lassen k nnen Es musste also eine Anpassschaltung her ein Differenzverst rker Bei 3 6V Akkuspannung ben tigte ich ca OV am AD Eingang und bei 4 2V wollte ich ca 3 3V An sich kein Problem doch verursacht von der PWM des Boost Konverters sind Schwingungen auf der 5V Spannung und der Akkuspannung Bei einer gro en Differenzspannung sind diese vernachl ssigbar doch bei sinkender Differenzspannung werden diese zunehmend am Ausgang des Operations verst rkers bemerkbar Das hat eine schwankende Akkustatusanzeige zur Folge Durch eine Gl ttung der Spannungen k nnte dieses Problem gemindert werden Doch da mir der Ann herungswert ausreichte belie ich es dabei 4 3 Softwareentwicklung uC Grundlagen Als erstes informierte ich mich auf der Seite www kowoma de ber die grundlegenden Eigenschaften der GPS Positionsbestimmung Dort ist das NMEA 0183 Format mit den unterschiedlichen Datens tzen sehr gut beschrieben Hier hatte ich auch die Datens tze herausgesucht welche ich f r mein Ger t verwenden wollte Filterung der Datens tze Als ersten Schritt der Programmierung versuchte ich aus einem seriellen Datenstrom einzelne Fragmente heraus zu filtern Dazu schloss ich das Experimentierboard ber die RS232 Schnittstelle am PC an und sendete ber das Programm Hyper Terminal ASCIlI Zeichen Als das funktionierte bertrug ich mit Hilfe eines Simulationsprogramms Datens tze in dem
90. wie der Men punkt 6 aufgebaut Mit dem Unterschied das wenn der Men punkt best tigt wurde der Inhalt des Men punktes angezeigt wird ausgabe Trackingmen An welchem Men punkt steht der Z hler des Trackingmen s Men punkt 1 Tracking starten stoppen 2 Wurde dieser Men punkt EE Men punkt 6 Track gt Pc Bee best tigt Wurde dieser Men punkt H Men punkt 7 zur ck best tigt Wurde EE Bedingung L uft momentan eine Pal De a Aufnahme Ist momentan ein Track An den am laufen Aufnahmestatus SE Option Tracking Option Tracking nn DIESEL U EE n kb ET l wird in dem Men s mit Stoppen anzegoen tor die Endzeit Endzeiides Mere Struktogamm Kennzeichnung Zur ck ins S Anzeige des restlichen Men s mit den Wert offen letzten Tracks ausgabe PC dieses Hauptmen Men punktes Kennzeichnung dieses Men punktes anzeigen anzeigen genauer erl utert Men punktes Wurde dieser Men punkt best tigt es Anzeige der restlichen besteht Empfang und die getrackten Zeiten Aufnahme wurde noch nicht gestartet Dieser Punkt wird in dem Struktogramm Es ausgabe Aufnahmemen dargestellt Wurde versucht ein Track ohne Empfang zu starten Kein Empfang ausgeben A Wurde das Tracking beendet Aufnahmeflag zur cksetzen N LED ausschalten eprom eau Aktuelle Zeit als Endzeit abspeichern Men aktualisierung veranlassen break Struktogramm 12 Seite 59 von 9
91. wirdin dem Anzeige des Men s mit bersicht Struktogramm ausgabe Kennzeichnung dieses Trackingmen dargestellt Men punktes Anzeige des Men s mit Kennzeichnung dieses Men punktes Struktogramm 11 Seite 58 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker Funktion ausgabe bergabewerte keine R ckgabewert keiner Beschreibung Uber das Trackingmen werden alle Informationen bez glich der Aufnahme zug nglich gemacht Dies sind unter anderem die Aufnahmezeit oder die zur ckgelegte Strecke Bei der Anzeige der Endzeit wird bei einem aktiven Tracking keine Zeit sondern offen angezeigt Uber den ersten Men punkt kann das Tracking gestartet und auch wieder gestoppt werden Je nach dem ob momentan ein Tracking aktiv ist wird die Option Tracking stoppen oder Tracking starten angeboten Um ein Tracking zu starten muss Empfang bestehen ist das nicht der Fall wird auf dem Display kein Empfang dargestellt Besteht Empfang gelangt der Benutzer in das Aufnahmemen welches im folgenden Abschnitt genauer erl utert wird ber das Trackingmen kann auch die Daten bertragung zum PC durchgef hrt werden Dieser Punkt wird an anderer Stelle verdeutlicht Alle Informationen welche hier abrufbar sind werden im internen EEPROM gespeichert D h durch das Ausschalten des Ger tes gehen diese nicht verloren Die Men punkte 2 3 und 5 sind an sich
92. ze doch ich fand nichts Brauchbares Also informierte ich mich zun chst ber die Regeln der Zeitumstellung So langsam ahnte ich dass ich dieses Feature nicht gerade aus dem Armel sch tteln konnte Ich wusste erst gar nicht wie ich anfangen sollte doch jetzt hatte ich mir das schon in den Kopf gesetzt und sah es als Herausforderung an Es verging eine ganze Weile bis ich auf die Idee kam die Tage bis zu einem Referenzdatum zu z hlen und so den aktuellen Wochentag herauszubekommen Dies erwies sich als Schl ssel f r die Zeitumstellung Mit der Zeitumstellung alleine war es ja dann auch noch nicht getan Zeiten wie 25 Uhr oder hnliches mussten ja auch unterbunden werden Und wenn es laut UTC 23 Uhr ist und es Sommerzeit ist muss das Datum zus tzlich angepasst werden Im Endeffekt bedeutet das alles sehr viel Code f r ein mehr oder weniger unauff lliges Feature Aufnahmezeit Da der Mikrocontroller ber keine Taktversorgung verf gt welche eine pr zise Zeit berechnung erm glicht habe ich die Berechnung der Aufnahmezeit mit der bertragenen Uhrzeit vom Satelliten realisiert Hierbei lagen die zeitintensivsten Punkte bei der Ber cksichtigung von Unterbrechungen und der Aufnahme ber einen Tag hinaus Vertikale Strecke und vertikale Geschwindigkeit Die Berechnung der zur ckgelegten vertikalen Strecke und der vertikalen Geschwindigkeit sind bei geringen Geschwindigkeiten aufgrund der stark schwankenden H henangabe der
93. zen Muss das Datums am Ende eines Monats angepasst werden au er sep u dec Den Tag auf 1 setzen und die einerstelle der Monats anzeige inkrementieren Ist es ende September und muss das Datum umgestellt werden Tag auf eins und Monat auf 10 umstellen a Ist es ende Dezember und muss das Datum umgestellt werden Tag und Monat auf 1 Jahr inkrementieren Ist der ASCII Wert des Jahres gr er als 9 7 gt Zehnerstelle des Jahres Inkrementieren und Einerstelle auf null setzen Ist die Einerstelle des Tages gr er als Zehnerstelle inkrementieren und Einerstelle auf null setzen Struktogramm 20 III _ _ _ _ anunnnn_ Seite 67 von 97 Dokumentation V1 0 Bj rn Hackel Projekt GPS Tracker 5 3 8 funktionen c Die 3 Funktionen copy comp und potenz wurden geschrieben um Speicherplatz einzusparen Die Funktionen gibt es auch in abgewandelter Art in den Bibliotheken string h und math nh Funktion void copy char char bergabewerte 1 Die Adresse des Zielstrings 2 Die Adresse des Quellstrings R ckgabewert keiner Beschreibung Erm glicht das Kopieren eines Strings in einen anderen Funktion char comp char char bergabewerte 1 Startadresse des ersten Strings 2 Startadresse des zweiten Strings R ckgabewert Bei Gleichheit wird eine 1 und bei Ungleichheit wird eine O zur ckgegeben Beschreibung Erm glicht
Download Pdf Manuals
Related Search
Related Contents
Peerless PRGS-KIT0811 project mount User Manual - Universal Fibre Optics Vornado Under Cabinet Air Circulator User's Manual Table of Contents: Toastmaster MAXCM12W User's Manual Ce rapport est présenté tel qu`il a été reçu par le CRDI du(des Based on file VP103BOOK.DOC. as template (Normal.dot) 取扱説明書 - サーボテクノ Samsung MH052FUEA User Manual Bosch FAA-500-CB Copyright © All rights reserved.
Failed to retrieve file