Archive

Archive for März 2011

GPSSend – Motorola Defy – Bikertech – Halterung

März 7, 2011 35 Kommentare

[Ergänzungen – siehe unten] Heute will ich Euch einmal ein wenig zum Hintergrund meiner Android App ‚GPSSend‘ erzählen.

Ich denke es war 2007, als ich darüber nachdachte, wie ich auch im Winter meinem Lieblingssport Mountainbike-Fahren nachgehen könnte. Es war ein gutes Fahrradjahr für mich gewesen und entsprechend war ich gut in Form. Ich fuhr damals ungefähr drei Mal die Woche. Da ich tagsüber meinem Job als Software-Entwickler nachgehe, kam ich immer erst abends zum Fahren und mit der beginnenden ‚dunklen‘ Jahreszeit wurde dass immer schwieriger. Ein Bekannter hatte mir erzählt, dass er auch abends bzw. nachts bikte und ich dachte mir, dass musst Du auch einmal ausprobieren.

Zuerst fing ich an nach passenden Lampen zu suchen und stieß auf die LED-Taschenlampe Fenix L2D, die ich auch heute noch gelegentlich einsetze. Da es mir fern liegt, den Wald flutlichtartig auszuleuchten und der Tierwelt glauben zu machen, hier kommt ein Fussballplatz vorbei gefahren, schieden Lampen vom Schlag einer Lupine Betty – oder wie sie alle heißen – von vornherein aus. Das verhindert zwar auch, dass ich mich im Winter irgendwelche Trails hinab stürzen kann, aber mir ging es im Wesentlichen um die Aufrechterhaltung meiner Kondition und das klappt auch mit einer Taschenlampe. Heute verwende ich übrigens oft eine kleine, feine Liteflux LF5XT, die es allerdings nicht mehr zu kaufen gibt. Obwohl sie weniger Lumen als die L2D hat, bringt sie die wenigen Lumen besser auf den Weg, da sie besser fokussiert. Als Service-Lampe ist übrigens eine Kopflampe, wie die Zebralight H50-Q5 super geeignet. Von der gibt es aber – glaube ich – nur noch Nachfolgemodelle. Viele Infos findet ihr auf meiner alten LED Taschenlampenseite. Obwohl nicht mehr groß gepflegt, finden sich da noch einige interessante Informationen für Taschenlampen-Fans.

Ok, zurück zum Thema. Ich habe dass dann wirklich durchgezogen und bin im Winter 2007/2008 jede Woche mindestens einmal im Dunkeln gefahren. Als es immer dunkler und kälter wurde, kam irgendwann die Frage auf, was passiert, wenn ich mich auf Schnee und Eis (ja wirklich!) so auf die Nase lege, dass ich nicht mehr aufstehen kann? Bei ungefähr Null Grad und in leichten Radklamotten könnte das möglicherweise ein ungünstiges Ende für mich haben. Damit war die Grundidee für GPSSend geboren!

Die Idee war, dass mich jemand zu Hause am Computer direkt auf Google Maps verfolgen kann (Livetracking). Das heißt, ich musste sowohl einen Server- als auch ein Clientprogramm entwickeln. Da ich zu der Zeit beruflich ein ITCS-System entwickelte, dachte ich daran, gleich eine Art Mini-ITCS zu programmieren. Es dauerte dann allerdings bis in den Frühling, bis ich erstmals voller Freude auf meinem Mountainbike durchs Dorf radelte und mit meinem eigenen Programm die ersten Positionen an meinen Server sendete! 🙂 Ich musste mich dazu extra in C# einarbeiten, da der Client – also die erste GPSSend-Version – auf einem Windows Mobile Smartphone (HTC Orbit2) laufen sollte. Was war ich stolz! 😉

Schnell war klar, dass das Livetracking zwar für vieles interessant ist, aber man kaum erwarten konnte, dass meine Partnerin nun abends 2 Stunden vor dem Rechner herum hängt, um zu sehen ob ich mich noch bewege. Die hat da auch Besseres zu tun. Andererseits war es schon ein beruhigendes Gefühl für sie, wenn sie gelegentlich einen Blick auf die Karte warf und sah, dass ich mich noch bewegte. Es musste ein Mechanismus her, der sie automatisch benachrichtigte, wenn ich dass nicht mehr tat. Also mich nicht mehr bewegen. Ursprünglich sollte dass der Server machen, er sollte feststellen, wenn zwar noch Positionen herein kamen, aber sie alle vom gleichen Ort waren – ein gutes Indiz für einen verunglückten Nightbiker. 😉

Erst einmal verlor ich das Thema aber aus den Augen. Ich programmierte zwar noch die Erkennungsfunktionen für den Server (der übrigens auf einem Netbook läuft), aber nicht mehr die automatische EMail-Benachrichtigung, die ich mir vorgestellt hatte. Die hätte aber auch nicht so viel gebracht, da damals Smartphones noch nicht so verbreitet waren wie heute und meine Partnerin dann ja ständig das EMail-Programm auf neu eingegangene EMails hätte prüfen müssen. Also Polling statt Pushing.

Knapp zwei Jahre später bekam ich einen HTC HD2. Der besaß einen Beschleunigungssensor und damit die Lösung meiner Probleme. Ich ergänzte GPSSend um Funktionen, die den Sensor auswerteten und dadurch feststellen konnten, ob sich der Biker noch bewegt oder nicht und falls nicht, versendet es einfach eine SMS. Da heutzutage jeder ein Handy in seiner Nähe hat, ist so eine relativ sichere Benachrichtigung gewährleistet. GPSSend für Windows Mobile gibt es übrigens immer noch hier.

Nun verging wieder einige Zeit, in der ich GPSSend ernsthafte nutzte. Und nicht nur im Winter und in der Nacht. Ich kann mich an eine wunderschöne Tour im letzten Sommer erinnern, während der ich zwar meinen HD2 dabei, aber GPSSend nicht aktiviert hatte. Gegen Ende meiner Tour kam ich an einen der besten Singletrails im Odenwald und überlegte, ob ich da jetzt zum krönenden Abschluss meiner Tour hinunter fahre. Ich hatte aber keinen Helm dabei und war mir darum nicht sicher. Schließlich entschied ich mich GPSSend zu starten, um so im Falle eines Falles wenigstens eine winzige Chance zu haben, dass mich jemand rechtzeitig findet…

2007 hatte Apple das iPhone auf den Markt gebracht und damit den Smartphone Markt revolutioniert. Da Apple ein wenig restriktiv ist, habe ich mich über die Vorstellung von Googles Android gefreut. Irgendwann zeichnete sich ab, dass beide sehr erfolgreich sind und sein werden. Da ich generell an Neuem sehr interessiert bin, wollte ich Android gerne ausprobieren. Im Sommer 2010 hatten einige wirklich gute Programmierer es geschafft, Android auf meinem HD2 zum Laufen zu bringen. Siehe hier. Dies nutzte ich sogleich aus und lernte auf meinem HD2 Android zu programmieren. Im Herbst 2010 hatte ich dann eine allererste Version von GPSSend für Android. Ursprünglich wollte ich es eigentlich dabei belassen. Dann reizte es mich aber doch, die App soweit zu entwickeln, dass man sie als App im Market zur Verfügung stellen konnte.

Im Zuge dessen lernte ich Android immer besser kennen und baute immer mehr Features in GPSSend ein:

  • Automatische Unfallmeldung
  • Livetracking
  • Zephyr Pulsgurtunterstützung
  • Offline Karte (Moving Map)
  • Sprachausgabe von Herzfrequenz, Geschwindigkeit und Anzahl versendeter Positionen
  • Anzeige der Freunde auf der Karte!
  • Einblendbarer Track!
  • Automatische GPX-Datei Erzeugung
  • Neues Design

Mit so vielen Funktionen versehen fragte ich mich eines Tages, ob es nicht Zeit wäre, den alten Garmin Edge 705 durch meine eigene App zu ersetzen? Da ich zu Weihnachten 2010 ein Motorola Defy geschenkt bekommen hatte, besaß ich schon das richtige Smartphone für derlei Überlegungen. Denn das Defy ist das erste auf Android basierende Outdoor-Smartphone!

Also habe ich GPSSend noch schnell so umgebaut, dass die mir am wichtigsten erscheinenden Daten auf dem Display ausgegeben werden und dann nach einer passenden Halterung gesucht. Bei Bikertech wurde ich schließlich fündig. Die Halterung besteht aus zwei Teilen aus Kunststoff (sie sind darum nicht so schwer, wie man aufgrund der Bilder glauben kann), die über Gummistücke verbunden werden. Es gibt eine spezielle Grundplatte für das Motorola Defy, welche mit verschiedenen Schellen kombiniert werden kann. Darunter welche für den Vorbau oder den Lenker. Da es möglichst leicht sein sollte und am Vorbau schon der Edge sitzt – den ich zumindest in der Probezeit noch einsetzen werde – habe ich mich für eine Schelle für den Lenker entschieden. Bei der Bestellung kann man den gewünschten Durchmesser der Schelle angeben. Ich habe 32 mm angegeben, da ich an allen 3 Bikes, die ich zurzeit verwende, einen konifizierten Lenker besitze, der an der dicksten Stelle 32 mm dick ist. Das heißt, es könnte sein, dass der Lenker von meinem Rennrad sogar noch ein wenig dicker ist.

Jedenfalls hatte ich die Halterung mittlerweile an allen 3 Bikes dran und bin auch jeweils mindestens eine Tour gefahren. Bis jetzt hat die Halterung gut gehalten und sich auch nicht durch Erschütterungen verdreht oder gar gelöst. Wenn die Schelle so platziert wird, dass die eine Seite auf dem 32 mm Durchmesser sitzt und die andere schon im dünner werdenden Bereich, kann man etwas Gummimaterial zwischen Schelle und Lenker schieben. Bei der Bestellung kann man dies gleich mit angeben.

Das Defy lässt sich superschnell in die Halterung einlegen und auch wieder entnehmen. Trotzdem ist es bis jetzt nicht heraus gefallen. Dabei habe ich mit dem Rennrad schon schlimmste Schlaglochstraßen in Darmstadt gefahren und bin mit dem Mountainbike ein paar Singletrails hinab gesaust.

Tja, was soll ich sagen: Die Tage der Spezialisten wie dem Garmin Edge 705 oder dem neuen 800 sind gezählt. Es gibt natürlich nicht nur GPSSend, sondern eine Fülle anderer Programme, die für Biker geeignet sind. Zum Beispiel Oruxmaps. Und wenn dann noch ein Bluetooth Pulsgurt dazu kommt, wie der Zephyr HxM, ist die Anwendungsvielfalt eines Android Smartphones gigantisch. Mal eben mit ‚btHeart’ den Pulsverlauf genauer beobachten oder gleich eine Grafik mit den verschiedenen Herzfrequenzzonen ansehen? Mal schnell mit Google Maps nachgesehen, wo man gerade ist? Und wir sind erst am Anfang einer Entwicklung, die bestimmt noch einige positive Überraschungen für uns bereithält.

Trotzdem möchte ich Euch noch einmal GPSSend nahe legen. Es besitzt schon jetzt einige bemerkenswerte Funktionen. Neben relativ normalen Dingen wie die Anzeige der wichtigsten, einen Fahrradfahrer interessierenden, Daten wie Herzfrequenz, Geschwindigkeit, gefahrene Zeit, gefahrene Kilometer, gibt es folgende Besonderheiten:

Automatische Unfallmeldung

Dazu habe ich oben ja schon einiges geschrieben. Es ist eines der Hauptfeatures von GPSSend. Es liegt mir viel daran, dass diese Funktion einwandfrei funktioniert. Dazu gibt es auch weitere Ideen, die ich in nächster Zeit noch implementieren werde.

Livetracking

Ein sehr stabiles Livetracking, welches in der Lage ist, bis hinab zu einem Intervall von ca. 2 Sekunden die aktuelle Position an einen Server zu senden. Besser sind allerdings 15 Sekunden und aktiviertes Smartracking. GPSSend lässt sich von Funklöchern nicht aus der Ruhe bringen und versendet die Positionen dann einfach etwas später. Dies ist vor allem dann von Bedeutung, wenn der Anwender eine meinem Server bekannte Vergleichsstrecke entlang fährt und anschließend korrekte Zeiten ermittelt werden sollen.

Vergleichsstrecken

Ich kann meinem Server bestimmte geografische Punkte angeben und definieren, dass diese zu einer bestimmten Vergleichsstrecke gehören. Damit ist eine Strecke gemeint, die von vielen Rennrad- oder Mountainbike-Fahrern als Vergleichsmaßstab genommen wird. Die Motivation dahinter ist die gleiche, die hinter einem Projekt wie der Frankenstein-Trophy steckt. Nur dass das Mitteilen der Zeiten nicht manuell erfolgt. Stattdessen werden die durch das aktivierte Livetracking in Echtzeit gesendeten Positionen direkt zum Server gesendet und automatisch einmal am Tag ausgewertet. Da ist es natürlich sehr wichtig, möglichst genaue Daten zu haben und dies gewährleistet das in GPSSend eingebaute Livetracking.

Wer übrigens Vorschläge für solche Strecken hat, sende mir einfach einen Track und ich werde sehen, dass ich diesen möglichst schnell auf meinem Server als Vergleichsstrecke definiere!

Zephyr Pulsgurtunterstützung

Die Pulsgurtabfrage habe ich eigentlich nur eingebaut, weil ich sie demnächst zusätzlich für die automatische Unfallmeldung verwenden will. Andererseits ist die Pulsfrequenz eine der interessantesten Informationen beim Biken und so will ich sie jetzt nicht mehr missen. Die Pulsfrequenz wird mit in die GPX-Datei geschrieben und kann von der Sprachausgabe ausgegeben werden.

Offline Karte (Moving Map)

Viele Apps für Wanderer und Biker haben mittlerweile eine Kartenfunktion integriert. Allerdings basieren diese meist auf Kacheln, die entweder unterwegs über die mobile Datenverbindung geladen werden müssen oder aber vorher (also vor der Tour) mit Hilfe irgendwelcher Tools – zum Beispiel dem Mobile Atlas Creator – downgeloadet und auf der SD-Karte gespeichert werden müssen. GPSSend verwendet eine alternative Methode. Auch hier muss man vorab eine Datei auf das Smartphone kopieren. Es ist aber keine Kachel, sondern eine spezielle MAP-Datei, erzeugt aus OpenStreetMap Daten, aus der dann GPSSend in Echtzeit Kacheln generiert! Das ist recht elegant und funktioniert flott. Diese Funktionalität habe ich nicht selbst programmiert. Sondern über eine ‚mapsforge’ genannte Library in GPSSend integriert. Diese gibt es noch nicht lange und demgemäß gibt es noch nicht viele Karten als MAP-Datei. Wie man sich Karten selbst konvertieren kann, habe ich hier beschrieben.

Der große Vorteil der Offline Karte ist es, dass unterwegs keine mobile Datenverbindung bestehen muss. Und auch wenn man Livetracking aktiviert hat, so ist es nicht notwendig ständig Kacheln zu laden und somit das Livetracking zu stören bzw. große Datenmengen downzuladen.

Anzeige der Freunde auf der Karte

Hierzu muss ich einmal ein paar Extraworte verlieren: Zuerst einmal – woher kennt GPSSend eigentlich meine Freunde? Dazu muss man sich auf meinem Server einmal angemeldet haben und die Freunde – die sich dort ebenfalls angemeldet haben müssen – definieren. Dies ist relativ einfach. Man kann in einer Liste nach dem Loginnamen des Freundes suchen und ihn dann einfach durch Anklicken in die Freundeliste aufnehmen. Dazu muss der Freund natürlich seinen Loginnamen mitgeteilt haben. Das reicht aber noch nicht für die Anzeige aus! Denn der Freund muss umgekehrt Deinen Loginnamen in seine Zuschauerliste aufgenommen haben! Jetzt erst kann GPSSend die Freunde in der eingebauten Karte anzeigen. Ihr werdet jetzt stöhnen und sagen, dass das ja ziemlich aufwendig ist. Stimmt! Der Hintergrund ist maximale Sicherheit. Es ist sicher nicht in Eurem Interesse, dass jedermann Eure aktuelle Position im Internet sehen kann, oder? Außerdem ist der Vorgang der Freundes-Definition nur einmal durchzuführen und die Freunde-Anzeige funktioniert anschließend vollkommen unauffällig.

Die Anzeige der Freunde auf der Karte ermöglicht viele interessante Anwendungen. Wenn man sich an einem gemeinsamen Treffpunkt verabredet, kann man schon auf dem Weg dorthin sehen, wo die Freunde gerade sind, ihnen möglicherweise entgegen fahren oder einfach wissen, sie sind unterwegs und kommen gleich. Fährt man zusammen, ist aber unterschiedlich leistungsfähig, so ist es möglich größere Abstände zuzulassen, da man auf der Karte jederzeit sehen kann, ob der andere noch fährt und wo er ist. Mir schwebt auch so eine Art ‚Räuber und Gendarm’-Spiel vor, bei dem man sich gegenseitig im Wald auf Mountainbikes jagt. Ich denke da macht Training jede Menge Spaß und sorgt nebenbei für hartes Intervalltraining mit hohen Pulsfrequenzen.

Einblendbarer Track

Auf der Karte kann ein Track eingeblendet werden. Das kann eine der automatisch von GPSSend gespeicherten GPX-Dateien sein, oder ein vom PC auf die SD-Karte übertragender Track, der zum Beispiel mit ‚bikemap.net’ erzeugt wurde. Übrigens kann man mit bikemap.net in wenigen Minuten komplexe Tracks erzeugen, wenn die ‚Magnet’-Funktion aktiviert wurde!

Da die Kartenfunktion von GPSSend als ‚Moving Map’ implementiert wurde, ist es bei eingeblendetem Track möglich diesem nachzufahren und GPSSend so als Navigationshilfe zu verwenden.

Wenn man nach der Tour mit Freunden zusammen die gefahrene Strecke betrachten will, wählt man einfach die gerade gefahrene Strecke aus den gespeicherten GPX-Dateien aus.

Ergänzungen:

Nach einigen Wochen weiterer Erfahrung mit GPSSend auf dem Defy:  Ich bin jetzt, unter anderem, ein paar Mal eine größere Runde durch den Odenwald mit dem Mountainbike gefahren. Das Defy hält bei aktiviertem Livetracking (!), Zephyr-HxM Bluetooth-Abfrage (also dem Pulsgurt) und voll aktiviertem Display mindestens 3 Stunden durch. Danach hat das Akku-Symbol in der Status-Zeile seine Farbe von grün auf orangerot gewechselt. In dieser Zeit konnte ich immerhin 47 Geländekilometer und 1100 Höhenmeter fahren.

Wer nur Livetracking einsetzt, kann das Defy bestimmt wesentlich länger einsetzen, da man dafür kein Display benötigt. Es gibt allerdings Android-Smartphones, die, wenn man das Display ausschaltet, auch nicht mehr den Beschleunigungs-Sensor abfragen – bei denen muss man leider das Display an lassen.

Mir reicht eine Zeit von 3 Stunden locker für 90% meiner Touren. Wer länger fährt, muss sich um eine Zusatz-Stromversorgung bemühen. Siehe dazu auch die Kommentare hier.

Der Halter hat auch auf heftigsten Singletrails keine Probleme gemacht und auch das Defy hält locker mit. Schlammspritzer können anschließend einfach abgespült werden. Wie ich schon einmal schrieb, denke ich, dass die Erschütterungen von einem Rennrad auf schlechter Straße sowieso härter für das Defy sind (und die hat es auch ausgehalten).

Moon Reader


Eine meiner Hauptanwendungen des Samsung Galaxy Tabs ist das Lesen von Büchern. Neben der Hardware – die im Fall des Galaxy Tabs hervorragend ist – ist der Lesegenuß von der verwendeten Reader App abhängig. Das Galaxy Tab wird mit einer brauchbaren Reader App ausgeliefert, mit der man ohne weiteres prima lesen kann. Ein anderer, sehr verbreiteter Reader ist Aldiko, der ebenfalls eine gute Figur macht. An beiden hatte ich nicht wirklich etwas auszusetzen und trotzdem habe ich momentan einen anderen Reader im Einsatz.

Mein unablässig nach neuesten Gadgets und Features spähender Verstand hat beim Überfliegen einer Feature-Liste bei den Begriffen ‚Smooth Scroll‘ und ‚Shake the phone to speak‘ sofort ‚Stop‘ gesagt und entschieden, dass diese App etwas genauer untersucht werden muss. Und so bin ich auf den ‚Moon Reader‚ gestoßen.

Also, gleich downgeloadet und getestet. Das ‚Smooth Scrolling‘ funktioniert tatsächlich, ist aber nur dann effektiv einsetzbar, wenn man sich wirklich auf das Lesen konzentrieren kann und nicht anderweitig abgelenkt wird. Sonst muss man die Geschwindigkeit des Scrollens ständig nachjustieren, was nicht unbedingt Spaß macht. Ein Problem gab/gibt es aber auch: Ich bin mir nicht sicher, ob es momentan noch so ist, aber ich hatte den Eindruck, dass die Darstellung auf dem Galaxy Tab nach einiger Zeit des Scrollens immer mehr ruckelte. Mittlerweile gab es aber einige Updates und vielleicht ist das Problem keines mehr.

Der Moon Reader ist der einzige mir zur Zeit bekannte Reader, der nicht nur zum Lesen taugt, sondern auch vorlesen kann! Leider kann er das nur in der ‚Pro Version‘, für die man eine kleine Gebühr bezahlen muss. Erinnerungen an vor langer Zeit getestete Sprachsoftware auf dem PC lies schlimmstes befürchten, denn damals konnte man die vom PC gesprochene Sprache kaum verstehen. Um so überraschter war ich, als eine angenehm akzentuierte Frauenstimme ertönte und gut verständlich mir mein Buch vor las! Dies war nur möglich, weil sie sogar die Satzzeichen beachtete und entsprechende Pausen im Textfluß machte. Natürlich ist es nicht vergleichbar mit einem professionellen Vorleser, der den Sinn des Textes wirklich versteht und entsprechend betont liest. Aber es ist allemal besser, als wenn ein schlechter Schüler sich stotternd an einem Text abmüht.