Inverse Geocaching GPS Schatztruhe


Notice: A non well formed numeric value encountered in /home/moritzb/public_html/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 118

Notice: A non well formed numeric value encountered in /home/moritzb/public_html/wp-content/plugins/crayon-syntax-highlighter/crayon_formatter.class.php on line 119

Dieses Jahr hat mein Freund geheiratet, und ich wollte dem Brautpaar ein ganz besonderes Geschenk machen. In der amerikanischen DIY und How-To Zeitschrift Makezine Volume 37 bin ich auf eine Box gestoßen, die sich mit Hilfe eines verbauten GPS-Sensors, Mikrokontroller und Servo nur an einem ganz bestimmten, im Programm definierten Ort, öffnen lässt. Diese Idee fand ich so gut, dass ich mich selbst daran gemacht habe, eine solche zu bauen. Dafür bedarf es folgender Bauteile:
– Schatztruhe
– Arduino Nano V3 (ich habe einen Klon verwendet)
LCD 16×2
GPS-Modul
Miniatur-Servo
Lithium-Ionen Ladeschaltung mit 5V Boost Converter
– Lithium-Ionen Akku z.B. aus altem Notebook
– Diverse weitere elektronische Bauteile, Drähte und Platine

In die Decke des Deckels der Schatztruhe wird eine Aussparung für das LC-Display, den Schalter, sowie die GPS-Antenne geschnitten. Letztere kann auch unter einer dünnen Schicht, nicht ferritischen oder abschirmenden Materials platziert sein, und trotzdem Verbindung zu den Satteliten herstellen. Des Weiteren sollte in die Seitenwand des Deckels ein Loch gebohrt werden, durch das der Akku mittels eines Standard Micro-USB-Kabels aufgeladen werden kann. Die Anordnung des LC-Displays, des Schalters, der Lithium-Ionen-Ladeschaltung, des 5V-Boos-Converters, des Arduino Nano Clones, der GPS-Antenne des dazugehörigen Moduls lässt sich auf folgendem Bild grob erkennen. Deine Schatztruhe wird vermutlich etwas anders aussehen.

Wie die genannten Bauteile an den Arduino Nano angeschlossen werden, kannst du in diversen Foren und weitere Webseiten herausfinden. Dies ist nicht so schwierig und braucht nur etwas Durchhaltevermögen.
Der Miniatur-Servomotor ist, wie im obigen Bild zu sehen, mit zwei ausgedruckten Halterungen an die Innenwand des Deckels geschraubt worden. Das Servohorn ist etwas gekürzt und passt in einen Schlitz in die Innenwand des unteren Teils der Schatztruhe. Wird dem Servo eine Position von 90° vorgegeben, so ist die Box von innen verschlossen. Bei 0° wiederum kann man sie öffnen.

Da ich weiß, dass mein Freund programmiertechnisch nicht so viel Ahnung hat und um mir Änderungen am Programmcode zu ermöglichen, habe ich den Mini-USB-Anschluss des Arduino Nano Clones zugänglich gelassen, ihn allerdings verschlossen. Baut man solch eine Schatztruhe für einen Maker mit Programmierkenntnissen und lässt den Zugang offen, so kann die Schatztruhe rein programmatisch gehackt und geöffnet werden. Daher ist also Vorsicht geboten. Jedoch kommt man wohl gewaltsam immer an den Inhalt der Box – je nachdem, wie stabil sie ausgelegt ist.

Nun kommen wir zur eigentlichen Programmierung: Dazu habe ich mich der Library TinyGPS von Mikal Hart bedient: http://arduiniana.org/libraries/tinygpsplus/. Mit ihr können die von den Satteliten empfangenen Zeichenketten überprüft und die benötigten Parameter wie Längen- und Breitengrade, Geschwindigkeit, Höhe uvm. ausgegeben werden. Ebenfalls enthalten ist eine Funktion, welche die Distanz zwischen zwei Positionen (jeweils zwei Längen- und Breitengraden) angibt. Somit muss nur noch ein Programm geschrieben werden, welches die verschiedenen Bauteile einbindet und den Servo das Kommando gibt, die Box zu öffnen, sobald die Distanz zwischen Soll- und Istposition auf z.B. 20m gesunken ist. Damit die Box auch nach dem Erreichen der Sollposition nicht als Staubfänger in der Ecke liegt, habe ich zusätzliche Funktionen wie Uhrzeit, Angabe der Längen- und Breitengrade, KMH-Anzeige und einen Höhenmesser verwendet, die erst dann freigeschaltet und auf dem LC-Display ausgegeben werden.
Der folgende Code hilft dir hoffentlich weiter (Meine Referenzen finden sich in der Beschreibung):

Wie funktioniert das Ganze? Der Empfänger der Box schaltet die selbige ein und erfährt neben einer Begrüßungsnachricht nur die Distanz zum geheimen Ort an, an der sich die Box öffnet. Die Richtung und die genaue Position muss er durch Ausprobieren oder Triangulation herausbekommen. Erst wenn er innerhalb eines bestimmten Umkreis ist, fährt der Servo aus seiner Position und der Schatz kann gehoben werden.

Nun musst du dir natürlich noch ein passendes Geschenk überlegen, das in der Box Platz finden soll. Ich habe etwas Geld hineingelegt, mit dem Hinweis auf einen nahegelegenen Kletterpark. Bis jetzt habe ich noch keine Rückmeldung von den beiden erhalten – aber ich bin gespannt!