GPS Datenerfassung
Der GPS Tracker ist in der Lage, seine momentane Position über ein LCD Display auszugeben. GPS steht für Globales Positionsbestimmungssystem (Global Positioning System).
Ein GPS Modul ist im Grunde nur ein Empfänger. Es empfängt die Positionsdaten, die von Satelliten aus dem Orbit gesendet werden. Sobald das Modul, Kontakt zu mehr als vier Satelliten hat, ist es in der Lage über eine sogenannte Triangulation die eigene Position zu bestimmen.
Der hier verwendete Versuchsaufbau besteht im Grunde nur aus dem Arduino, einem LCD Display und dem PAM-7q GPS Modul. Zusätzlich zu den Ausgaben der Daten auf dem LCD kann man sich die Informationen auch auf dem "Seriellen Monitor" anzeigen lassen.
GPS Modul: PAM-7q
Der PAM-7q ist ein GPS-Modul von PARALLAX. Der Hersteller empfiehlt eine Betriebsspannung von 3,3V bis maximal 5V, so wie ein Strom von 55mA.
Das eigentliche Modul hat die Maße von 25.4 x 38.1 x 12.7 mm. Die Baud Rate beträgt bei diesem Modell 9,600 BPS (Bit pro Sekunde). Diese Information ist entscheidend für die Programmierung, die im Projektbericht genauer erläutert wird.
Besonders wichtig ist es, den direkten Kontakt mit dem Chip zu vermeiden, da dieser bei Berührung beschädigt werden könnte. Laut Hersteller soll die Genauigkeit des Moduls bei <2 m (unter schlechten Bedingungen < 2.5 m) liegen.
LCD-Display
Das LCD-Display dient lediglich dazu, die Daten des GPS-Moduls digital anzuzeigen. Dafür ist es mit dem Arduinoboard verbunden und im Programm mit einem eigenen Code eingebunden. Zudem ist ein Potentiometer eingebaut, um die Helligkeit am Display regulieren zu können.
Programmierung
Die Programmierung des Moduls war wohl der Hauptteil des gesamten Projektes und der Teil in dem die eigentliche Schwierigkeit steckte. Die grundlegende Programmstruktur eines Programms, das auf einen Arduino ausgelegt ist, setzt sich im Grunde aus zwei Methodenblöcken zusammen.
Die Methode void setup(), in der die Grundeinstellungen für das Programm festgelegt werden (beispielsweise mit welcher Brandbreite gearbeitet werden soll oder welcher Pin als Ausgang oder Eingang festgelegt werden soll) wird beim Programmstart ausgeführt, also genau einmal.
Der nächste Methodenblock wäre dann die void loop() Methode, welche wie der Name schon sagt, im Gegensatz zur void setup() Methode, ständig wiederholt wird, da in diesem Abschnitt das Programm erfährt, was es während des gesamten Ablaufs eigentlich zu tun zu hat.
Nehmen wir nun einmal ein äußerst wichtigen Teil des Programmes genauer unter die Lupe . Der sich in der void loop() befindende Befehl while(ss.available()) stellt sicher, dass der Arduino, bzw. das Programm, sich auch wirklich die Informationen an den als ss definierten Eingängen (3, 4 bzw. TX und RX) und somit den Daten des GPS-Moduls, verwendet. Diese Informationen sollen dann als Variable a mit dem Befehl int (Integer) zwischengespeichert werden.
Wird nun diese Variable a und somit die Informationen des Moduls, mithilfe der Instanz gps dekodiert, so soll das Programm auf gpsData (gps) zurückgreifen und die Längen- und Breitengrade liefern.
Und dies ist nur ein sehr kleiner Teil des Programmes. In der Programmierung des GPS-Trackers lag wohl die große Schwierigkeit. Beim Aufbau traten zwar auch immer wieder Probleme in Form von Wackelkontakten auf, doch das Programm zu schreiben und ständig Fehlersuchen durchzuführen hat wohl die meiste Zeit in Anspruch genommen.