GPS-Logger

Projektdatum: 21.02.2012

Manchmal hat man das Bedürfnis, den Weg von etwas zu protokollieren.
Als Beispiel wäre das eigene Auto wenn man es seinem Garagisten übergibt um zu sehen, wo denn seine Probefahrt hingeführt hat.

Oder man möchte nach dem Wandern gerne nachsehen, an welchen schönen Orten man vorbeigekommen ist. Ein letztes Beispiel wäre, dass man den Weg loggt, wenn man in die Ferien geht. So ist es danach möglich alle Sehenswürdigkeiten auf dem Computer nochmals anzusehen.

Für genau diese Aufgabe gibt es sogenannte GPS-Datenlogger.
Das sind meist kleine Geräte, welche den eigenen Standort mittels GPS (Global Positioning System) in definierten Zeitintervallen abspeichern.

 

Durch das regelmässige abspeichern entstehen viele einzelne sogenannte Wegpunkte.

Vebindet man nun diese Wegpunkte auf einer Karte, so erhält man dadurch die Strecke.

Dadurch zeigt sich auch gelich, dass die Auflösung der gespeicherten Strecke im wesentlichen von den Zeitintervallen abhängt.

 

Das Projekt

 

Bei diesem Projekt, ging es darum einen möglichst kleinen GPS Logger mit möglichst vielen Funktionen zu bauen. Hauptkriterium war jedoch die Grösse.

Herausgekommen ist dabei ein Gerät, welches leicht grösser als eine Streichholzschachtel ist.

Das Gehäuse

Beim Gehäuse fiel die Wahl auf ein kleines Handgehäuse des Herstellers Hammond

Dieses Gehäuse hat die Abmessungen: 60 x 35 x 20mm
Typ: 1151HTBU
Es gibt dieses Modell auch noch in schwarz und in grau.

Die Hardware

Gesamtübersicht

Bevor ich auf die einzelnen Details eingehe, zuerst einmal das gesamt Schema.

Die Funktionsblöcke sind schnell erklärt.
Am Eingang befindet sich ein USB->Seriell Wandler (TUSB3410) danach geht die 5V USB Spannung auf einen Li-Polymer Laderegler (BQ24080). Dieser lädt den Akku des Geräts.
Vom Akku geht es dann weiter zum DS2745. Dies ist ein Akku Management IC. Mehr dazu weiter unten. Nach diesem IC geht es dann zum eigentlichen 3.3V Spannungsregler (TPS73033) und einer kleinen “analogen Logik” mit dem Taster.

Wieder zurück beim Anfang geht es vom USB-> Seriell Wandler zum Mikrocontroller (Atmega 324P). Dieser Mikrocontroller besitzt zwei Hardware UARTs. Dies ermöglicht den komfortablen Betrieb des GPS Moduls und des USB->Seriell IC gleichzeitig.

Der GPS Empfänger

Das wichtigste am ganzen Logger ist der GPS Empfänger. Denn ohne diesen geht nichts.

Die Wahl fiel auf ein GPS Modul mit einem SiRF3 Chipsatz. Dieser Chipsatz gehört zwar nicht zu den modernsten seiner Art (man denke hierbei an Atlas IV etc..) jedoch ist er für wenig Geld durchaus recht leistungsstark.

Das Modul ist vom Hersteller GlobalSat der Typ ist EB-3631

Dieses Modul ist für etwa 15Dollar inkl. Versand bei Dealextreme erhältlich.

Es enthält bereits alles was man für den Empfang benötigt.
Man muss lediglich Spannung anschliessen und noch eine Patch Antenne am Ant-Anschluss anlöten.

Es liefert seine Daten wahlweise als NMEA String oder als Sirf Binary.

Bei meinem Projekt habe ich mich für letzeres Format entschieden.
Dadurch kann man für die Verarbeitung einfach ein Strukt verwenden.

Das Lade IC

Beim Lade IC habe ich mich für den BQ24080 von TexasInstruments entschieden.
Dieses IC hat bereits einen integrierten FET, welcher bis zu 1A Strom verträgt bzw. liefern kann.
Eine gute Kühlung selbstverständlich vorrausgesetzt.

Es lädt den Akku auf (je nach Typ) 4.1V oder 4.2V.

Der maximale Ladestrom wird mit R17 eingestellt.
Des weiteren bietet der Chip noch zwei Ausgänge für Status LEDs sowie einen ChargeEnable und einen PowerGood Ausgang bzw. Eingang.

Bei Geräten welche einen Li-Ionen oder Li-Polymer Akku enthalten, ist ein solches IC unabdingbar. Denn bereits eine Überschreitung der Ladeschlussspannung von 0.5V kann fatale Folgen haben. Die Akkus können bersten oder beginnen zu brennen.

Dieses IC hält die korrekte Ladekurve (I/U) korrekt ein und gewährleistet dadurch eine sichere Ladung.

Der USB Uart

Als UART kommt wieder ein IC von TexasInstruments zum zuge.
Diesmal der TUSB3410 im QFN Gehäuse.

Dieses IC braucht relativ wenige externe Komponenten um einen virtuellen Com-Port am Computer zu erstellen.

Den Treiber gibt es direkt von der TI-Webseite zum Download.

Es werden alle gängigen Platformen wie Linux, Windows, Mac OSX unterstützt.
Dieses IC basiert auf einem 8051 Microcontroller welcher für den gesamten USB-Teil im innern des Chips verantwortlich ist.

Dabei gibt es zwei Möglichkeiten, um die Firmware in den Chip zu bringen.

A: Man schliesst ein externes EEPROM mit dem Code an
B: Der Treiber lädt beim Anschluss an den PC die Firmware in den Chip.

Ich habe mich für Variante B entschieden, da ich keine eigene Firmware schreiben möchte.

Das Management IC

Um zu wissen wie viel Energie noch im Akku vorhanden ist, benötigt man ein spezielles Management IC.

Ich habe mich hierbei für den DS2745 von Dallas (Maxim)
entschieden.

Dieses IC beinhaltet nebst einem Coulomb Counter auch noch eine ziemlich präzise Spannungsmessung sowie ein Thermometer.

Angesprochen wird das IC über I2C.

Doch was ist denn nun ein Coulomb Counter?
Das IC ist so verdrahtet, dass der gesamte Strom welcher in oder aus dem Akku heraus kommt durch einen Shunt muss, welcher sich am IC befindet.

Durch den Stromfluss entsteht ein Spannungsabfall. Dieser liegt je nach Shunt im Milli bis Mikrovolt bereich. Das IC misst nun diese Spannung selbstständig und addiert oder subtrahiert die entsprechende Ladung (je nach polarität) von einem internen Register.

Wenn man nun also einen Leeren Akku anschliesst und diesen Lädt, so hat man nach dem Ladevorgang einen gewissen Wert im besagten Coulomb Register im IC.

Dieser Wert entspricht nun der Kapazität des Akkus. Fliesst nun wieder Strom aus dem Akku heraus, so wird die Ladung vom Registerwert abgezogen.

Selbstverständlich kann man den Registerwert auch berechnen.

Der Speicher

Als Speicher kommt ein standard EEPROM zum Einsatz. Dieses ist bei der Standardversion 1-MBit gross und bietet somit Platz für bis zu 128kByte Daten.

Dies genügt, je nach Log-Intervall, für mehrere Stunden der Aufzeichnung.

 

Die Firmware

Die aktuelle Firmware bietet Grundfunktionen wie das starten der Aufzeichnung in bestimmten Intervallen sowie das Auslesen und Löschen des Speichers.

Durch längeres Betätigen des Tasters ist es möglich, den Logger beim aufstarten in den Bootloadermodus zu versetzen. Dann ist es möglich über den USB Anschluss eine neue Firmware aufzuspielen.

Eigene Firmware kann somit jederzeit entwickelt werden.

Es gibt auch noch einen Standard AVR ISP Anschluss direkt auf der Platine.

Dadurch, dass der Amega324 zwei Uarts besitzt besteht bei dieser Hardware die Möglichkeit, die Signale des GPS Empfängers direkt durchzuschleifen.

Somit ist für die Seite am USB nur das GPS Modul sichtbar und kein Mikrocontroller.
Dadurch lässt sich dieses Gerät auch mit anderer Software direkt verwenden.

Die Software

Für dieses Projekt habe ich eine Software selbst entwickelt.
Das Programm wurde mit Delphi erstellt und ist vorerst noch nicht unter Linux oder MacOS lauffähig. Bei entsprechendem Wunsch ist eine Portierung jedoch durchaus denkbar.

Mit der Software ist es möglich, GPX Dateien einzulesen und auf GoogleMaps darzustellen. Zudem ist es möglich, die vom Tracker eingelesenen Daten als GPD Datei abzuspeichern. Dies ist ein eigene Datenformat und ist mit keinem anderen Programm lesbar.

In Zukunft wird es möglich sein auch ins GPX Format zu exportieren.

Im Programm wird auch der aktuelle Ladezustand des Trackers in Volt angezeigt.
Eine Updatefunktion via Internet ist ebenfalls vorhanden.

Hier ein Screenshot der aktuellen Version:

 

More projects