Donnerstag, 24. November 2011

Es wird langsam

Langsam aber sicher entwickelt sich das Cruscotto (ital für Cockpit). Nachdem wir letzte Woche nochmal besprochen hatten, das wir schon die klassisch analoge Cockpitoptik machen wollen, ging es diese Woche los und das Speedometer ist doch schon ganz schick geworden:

Es gibt außerdem zwei Knöppe, die den Status des GPS (rot: aus, gelb: suchend, grün: fix) und Wifi (nur rot und grün) wiedergeben. Nur für diese Lampen benutze ich Bitmaps, der Rest ist alles Code. Allerdings gefällt mir der Rand noch nicht besonders, habe versucht dort ein Bitmap zu shaden aber das ist bisher recht häßlich geworden. Das Speedometer ist erst mit dem richtigen Font für ein Speedometer auch ansprechend geworden, der Hintergrund gefällt mir aber auch noch nicht ganz. Rechts kommt jetzt eine Höhenuhr rein, mal schauen..

Dienstag, 15. November 2011

Augmented Reality Layer

Ich hatte schon länger vor, der Anwendung, einen Augmented Reality Layer, also eine erweiterte-Realität-Schicht hinzuzufügen. Diese Woche ist es nun gelungen.
Ich hole mir die Informationen über in einem bestimmten Umkreis liegende bei Wikipedia mit GeoDaten hinterlegte Punkte über einen lizenzfreien Service namens geonames.org. Hier ein Beispiel.
Daraus baue ich PointOfInterest Objekte die dann auf dem Display, abhängig von der Ausrichtung des Displays und ihrer Lage dargestellt werden können. Das heißt ,sie erscheinen auf dem Display nur, wenn sie in einer verlängerten, gedachten Achse zwischen Auge, Display und ihrer aktuellen Lage stehen.
Da von Intecs aus alle interessanten Orte der näheren Umgebung (max 20km sind möglich) in Pisa liegen, drängen sich die Wikipedia Objekte alle auf einem Punkt:

Das schwierige ist nun hauptsächlich, den Winkel zwischen sich, also der Achse Auge-Tablet und dem Objekt zu bestimmen und dann zu entscheiden, ist das Objekt auf dem Bildschirm und wenn ja, wo?
Das hat doch einigermaßen gedauert...

Besonders absolute Positionsangaben sind unter Android ja mehr oder weniger schwierig aber durch den Trick mit Margin fürs RelativeLayout gings.
Dann noch ein AlertDialog und schon wars fertig:

Credits gehen an Dirk Stürzekarn an dessen Projekt ich mich orientiert habe.

Donnerstag, 10. November 2011

Der Busverkehr läuft auch unter erschwerten Bedingungen / I Pullman vanno pure in condizioni cattivissimi

dachte ich zuerst als ich folgendes Video sah:
pensavo quando vedevo la prima volta questo video:



Doch später stellte ich fest das es gefaked ist, das Original sieht zwar auch dramatisch, aber weitaus nicht so krass aus:
Ma poi mi sono reso conto, che é taroccato, il originale é comunque drammatico ma non così tanto:

Durch einfaches Skalieren entsteht ein ganz anderer Eindruck.
Semplicemente cambiando la scala si costituisce un effetto strampalato.

Dienstag, 1. November 2011

Jetzt auch von mir ein Blog also...

Ich mache mein Praktikum bei Intecs in Pisa/Italien. Ich entwickle eine App, die später in einem Leichtflugzeug eingesetzt werden soll. Hier ein paar Bilder der bisherigen Entwicklung im Oktober (nebenbei auch Bilder meines Büros, da der Hintergrund der App das Bild der Kamera ist, es ist noch eine Augmented Reality Layer geplant...):

Am Anfang stand die Einbindung von einem Openstreet MapView und das Kennenlernen der Sensoren des Device. Aso, ich entwickle auf einem Acer Tablet mit Android "Honeycomb" 3.2. Das ganze soll dann im Cockpit festgeschnallt werden und offline während des Flugs alle möglichen Informationen ausspucken.
Es wird wohl auch einen Testflug geben, aber ich bin noch nicht sicher ob ich da mitfliege ;-)

Daraus dann die Entwicklung eines Views zur Visualisierung eines Gyroskopes, d.h. der Roll/Pitch/Azimuth Bewegungen.


Dann Views für Geschwindigkeit und Höhe.
Generell habe ich mich anfangs etwas an diesem Video für ein "Skysystem" orientiert:


Den Views hab ich dann noch einen analogen Touch gegeben, das heißt sie rollen wie bei einem Tacho...

Und schließlich die Visualisierung der Höhenlinie für einen geplanten Flug. Dieser wird im Moment über eine Datenbank bekannter Werte in einem relativen kleinen Bereich (Toskana) realisiert.

Da die Datenbankabfrage nicht die schnellste ist, habe ich die Berechnung in einen eigenen Thread ausgelagert. Die ganze Prozedur ist aber nur vorläufig und haupsächlich zur Entwicklung des Views, da geplant ist, die Höhenwerte über ein Digital Elevation Model (DEM) File auszulesen. Leider haben wir noch keine Möglichkeit gefunden das mit Android zu bewerkstelligen. Darum wird es in den nächsten Tagen gehen.