Friedrichs-bs.net

 
 

Einige digitale Fotokameras haben mittlerweile einen GPS-Empfänger eingebaut und speichern so zu jedem Bild den Ort der Aufnahme. Meine Kamera gehört leider nicht dazu. Einige Kamerahersteller bieten GPS-Empfänger zum Anschluss an die Kamera als Zubehör an, diese speziellen Lösungen sind oft meist sehr teuer oder unhandlich. Es gibt jedoch mittlerweile viele sogenannte GPS-Logger bzw. -Tracker, die eigenständig fortlaufend GPS-Positionen mit Zeitstempeln versehen als sogenannte „Tracks“ auf einem internen Speicher aufzeichnen. Da Kamera und Logger nicht miteinander verbunden sind, speichert die Kamera zum Zeitpunkt der Aufnahme zwar keine Position im Bild, allerdings lässt sich dies später am Computer nachholen: Jedem Foto werden automatisiert diejenigen Koordinaten eines Tracks zugewiesen werden, deren GPS-Zeitstempel dem in der Bilddatei gespeicherten Aufnahmezeitpunkt entspricht. Diese Lösung hat darüber hinaus den Vorteil, dass der Logger während der Aufzeichnung bequem im Fotorucksack bleiben kann und dort nicht nur die einzelnen Aufnahmeorte, sondern die gesamte Wegstrecke aufzeichnet.


Mittlerweile werden auch einige recht günstige GPS-Logger angeboten, teilweise ist aber die Dauer der Trackaufzeichung eingeschränkt, oder man ist auf die Verwendung spezieller Programme zum Auslesen der Tracks über eine Kabelverbindung angewiesen. Daher habe ich mich zum Selbstbau eines solchen Geräts entschlossen, das die Daten direkt im offenen GPX-Format auf einer SD-Karte aufzeichnet. Die so gespeicherten Tracks können dann betriebsystem- und hardwareunabhängig verarbeitet und von den meisten Programmen direkt gelesen werden.


Die Schaltung:

Das Herzstück der Schaltung bilden das GPS-Modul NL-504ETTL der Firma NAVILOCK, sowie ein 8-Bit Mikrocontroller Atmel ATmega8L. Die Entscheidung für das GPS-Modul fiel wegen der niedrigen Versorgungsspannung von minimal 3V und seriellem Anschluss mit TTL Pegeln. Der µ-Controller ist mit 8KB Flash und 1KB RAM der kleinste der AVR Reihe, in den die Software (Filesystem, Ansteuerung von SD-Karte und GPS, GPX-Konvertierung, Batterieüberwachung und Ein-/Ausschaltlogik) gerade noch reinpasst, was auch den kompakten Abmessungen der Schaltung zugute kommt. Als Versorgung dient ein alter 3,7V Li-Ion Handy-Akku, der den Logger im eingeschalteten Zustand über 12 Stunden versorgt und über ein spezielles Lade-IC MAX 1811 durch Anschluss des entsprechenden Handy-Ladekabels (max. 6,5V) innerhalb von ca. zwei Stunden direkt im Gerät geladen werden kann.


Funktionsweise:

Der Spannungsregler verfügt über einen Shutdown-Eingang (SC), der die gesamte Schaltung in Standby versetzt, in dem sie nur noch wenige µA verbraucht. Hochgefahren wird sie durch betätigen des Tasters, der SC über den Transistor gegen Masse zieht. Nun aktiviert der Mikrocontroller über ein positives Signal an PC0/ADC0 die Selbsthaltung. Um ein versehentliches Einschalten zu vermeiden, geschieht dies erst nach einer Verzögerung von 1 Sekunde, nach der der Taster dann wieder losgelassen werden kann. Um den Logger über dieselbe Taste auch wieder ausschalten zu können, wird PC0 nicht als Ausgang high geschaltet, sondern als Eingang mit aktivem Pull-up Widerstand, so dass der Pegelunterschied, der durch drücken des Tasters hervorgerufen wird, am AD-Konverter an ADC0 erkannt werden kann. Durch Tiefpassfilterung in der Software wird nur auf eine sprunghafte relative Pegeländerung reagiert. Auch zum Ausschalten muss der Taster wieder mindestens eine Sekunde lang gehalten werden.

Der GPS-Status wir über eine zweifarbige LED signalisiert: blinkt sie rot, konnte noch keine Position bestimmt werden, bei einem ausreichenden GPS Fix blinkt sie grün. Leuchtet sie nach dem Einschalten dauerhaft rot bis zum selbstständigen Ausschalten, konnte auf der SD-Karte keine Datei angelegt werden, z.B. weil keine Karte eingelegt wurde oder eine Datei mit dem entsprechenden Namen schon existiert. Leuchtet sie dauerhaft gelb, liegt ein Fehler in der Verbindung zum GPS-Modul vor. Je eine weitere LED leuchtet bei niedriger Batteriespannung bzw. aktivem Ladevorgang.

Über den Spannungsteiler R1,R2 wird ständig die Versorgungsspannung überwacht. Fällt sie unter 3V, werden gepufferte Daten noch auf die Karte geschrieben und der Logger abgeschaltet. Die interne ADC-Referenzspannung hat sich hierfür als genau genug erwiesen, die Schaltschwelle kann jedoch bei Bedarf in der Software angepasst werden.

Der TX-Ausgang des Mikrocontrollers wird nicht mit dem GPS-Empfänger verbunden, sondern kann zu Debug-Zwecken zur Ausgabe von Trace-Meldungen mit dem PC verbunden werden.

Die Ladeschaltung (links oben im Schaltplan) ergibt sich direkt aus dem Datenblatt des MAX1811. Die Ladeschlussspannung für den 3,7V Akku ist auf 4,2V eingestellt, der Ladestrom auf 500mA begrenzt. Für andere Akkus ist die Spannung ggf. auf max 4,1V zu begrenzen, Details siehe Datenblatt.


Die Software:

Implementiert ist ein minimales FAT16-Dateisystem, das Dateien ausschließlich im Wurzelverzeichnis der Karte anlegen kann, was mit max. 512 Dateien ausreichend ist. Unterstützt werden derzeit nur Karten nach SD1.0/1.1-Standard, also Karten bis max. 2GB Speicherkapazität, keine SDHC-Karten. Auch dies ist beim erzeugten Datenvolumen von ca. 350KB pro Stunde bei weitem mehr als ausreichend. Es werden sowohl unpartitionierte als auch partitionierte Karten unterstützt. Ist eine Partitionstabelle vorhanden, wird die 1. Partition verwendet. Die Karte muss vor Verwendung entsprechend formatiert sein.

Über den GPS-Empfänger wird die aktuelle Uhrzeit als UTC bestimmt und zur Erzeugung eines Dateinamens sowie als Zeitstempel für die letzte Dateiänderung verwendet.

Die GPS-Daten werden mit einer Datenrate von 9600 Baud übertragen. Dabei liegen die relevanten NMEA-Datensätze (genutzt werden GGA und RMC) zeitlich soweit auseinander, so dass sie bereits ab einer Taktfrequenz von 2MHz in Echtzeit verarbeitet werden können, ohne das nachfolgende GPS-Daten gepuffert werden müssen. In den Pausen zwischen der sekündlich übertragenen GPS-Positionen findet die GPX-Konvertierung und ggf. Speichern auf der Karte statt.

Über den ADC werden kontinuierlich Versorgungsspannung und Tasterstellung überwacht.

Kompiliert werden kann die Software mit Crosspack auf Mac OS oder WinAVR unter Windows, jeweils mit Compileroption -Os zur Optimierung der Codesize. Der erzeuge Code belegt gut 7,5KB.

Der Mikrocontroller kann über einen 5-poligen ISP-Stecker programmiert werden. Dazu muss während des Programmiervorgangs der Taster gedrückt gehalten werden, um den µC über die Batterie zu versorgen.


Sowohl die Software als auch das Platinenlayout können für nicht-kommerzielle Projekte verwendet, modifiziert und weitergegeben werden. Die Bereitstellung erfolgt unter Ausschluss jedweder Garantie. Zum Download s. Link auf der rechten Seite

Die aktualisierte Softwareversion 1.1 unterstützt nun auch andere GPS-Module mit abweichender NMEA Datensatzreihenfolge und Koordinatenformate. 


Mit der neuesten Firmware Version 1.3 kalibriert der Logger seine Taktfrequenz  anhand des Timings der GPS-Daten, um Temperaturdrift und Serienstreuung des RC-Oszillators auszugleichen. Hierzu muss der Eingang INT1 mit RXD des Mikrocontrollers verbunden werden. Verfügt das verwendete GPS-Modul über einen 1PPS Ausgang (pulse per second), kann dieser alternativ zur Kalibrierung verwendet werden. Weitere Änderungen: Datum und Uhrzeit werden in den Tracknamen  des GPX-Tracks übernommen. Kann beim Starten keine Datei auf der SD-Karte angelegt werden, weil eine mit dem gleichen Namen bereits existiert, wird dies durch schnelles gelbes Blinken angezeigt und beim ersten GPS-Fix erneut probiert eine Datei anzulegen.



Die Leiterplatte (Abmessungen 3,8 x 5cm) gefertigt bei HAKA im Zwillingsangebot in überzeugender Qualität:



1. Testaufbau:



Platine zugeschnitten...



...damit sie ins Gehäuse passt:



Mit Heißkleber fixiert, fertig:



So sieht‘s von außen aus. Maße des fertigen Geräts: ca. 8 x 5,5 x 2,5cm




Bauteile:

GPS   Navilock NL-504 ETTL

IC1    ATMega8L

IC2    ZLDO 330 (3,3V Spannungsregler)

IC3    MAX1811 (Li-Ladecontroller)

C1, C2, C5, C8    100 nF

C3    10 pF

C4, C6    2,2 µF

C7    10 µF

D1    2-Farb-LED 3mm rot/grün

D2    LED 3mm rot

D3    LED 3mm gelb

R1, R2, R6, R7    47 kOhm

R3, R4    10 kOhm

R5      220 Ohm

R9      82 Ohm

R11    330 Ohm

T1    BC849 (oder anderer NPN-Transistor), SOT-23

SD-Kartenhalter, z.B. ATTEND 104H für 1,50€ bei Pollin

Stiftleiste gewinkelt

Li-Ion Akku 3,7V (z.B. Handyakku Nokia 6230)

Steckernetzteil 4,5 - 6,5V, mind. 600mA (z.B. Ladekabel für Nokia 6230)

passende Buchse

Taster

-- alle Widerstände und Kondensatoren in SMD Bauform1206 --




Ich übernehme keine Haftung für die Richtigkeit bzw. Vollständigkeit der Inhalte dieser Seite.

 

GPX-Logger

Als Geo-Tagging bezeichnet man das Speichern von Geopositionen in elektronischen Bilddateien. Anhand dieser „Tags“ lässt sich im Nachhinein bequem der genaue Aufnahmeort eines Fotos ablesen. Viele Bildverwaltungs- und -präsentationsprogramme (u.a. iPhoto, Nikon View NX und JAlbum) sind in der Lage, diese Orte in einer Karte zu visualisieren, Fotos nach Orten zu sortieren oder selektieren.

Schaltplan:

Download
Software & Layout
Version 1.1http://friedrichs-bs.net/Download/GPX-Logger_v1.1_rev31.zip

GPX-Datei:

Track-Darstellung:

Bestückungsplan:

Download
Software & Layout
Version 1.3http://friedrichs-bs.net/Download/GPX-Logger_v1.3_rev38.zip