3D-Anaglyph für androidfähige Smartphones

Idee:

Es soll eine Handy-Software entwickelt werden, die es ermöglicht aus zwei geschossen Bildern ein
3D-Bild (Anaglyph) zu erzeugen.
Zielplattform:

Als Zielplattform bietet sich Android an, da uns die entsprechende Hardware zur Verfügung steht.
Realisierung:

Zunächst werden mit der integrierten Kamera zwei Bilder geschossen. Diese werden anschließend in
ein Anaglyph-Bild konvertiert und am Bildschirm angezeigt. Der Benutzer kann dieses Bild mit einer
Anaglyph-Brille dreidimensional wahrnehmen.
Problematik:

Um mit der Kamera ein Anaglyph fähiges Bild erzeugen zu können, müssen gewisse Anforderungen,
wie z.B. horizontaler Bildversatz, eingehalten werden. Diese einzuhalten erfordern sowohl eine
Anleitung als auch eine benutzerfreundliche Handhabung der Software.
Mögliche Erweiterungen:

Evtl. soll es auch möglich sein, aus zwei lokal vorhandenen stereoskopischen Bildern ein Anaglyph-
Bild sich anzeigen zu lassen.
Vorschau:

https://www.assembla.com/code/cwSZ7a9BWr35B-eJe5cbLA/subversion/nodes

Leistungsdiagnose auf einem Smartphone

Körperliche Betätigung ist ein wichtiger Bestandteil unseres alltäglichen Lebens, um gesund und leistungsfähig zu bleiben. Viele Menschen verfolgen aus verschiedenen Gründen, ob nun als Hobby oder aus beruflichen Gründen, eine erhöhte körperliche Leistungsfähigkeit.
Bei intensivem Training kann es jedoch dazu kommen, dass man es „übertreibt“ und damit das Training die Gesundheit eher negativ als positiv beeinflusst. Um dies zu verhindern, kann man verschiedene Vitalwerte während des Trainings überprüfen und auswerten. Zu diesen Werten gehören unter anderem der Lactatwert, der Blutdruck und die Herzfrequenz und für die Auswertung stehen verschiedene Leistungstests zur Verfügung.

Das Projekt behandelt nun die Erstellung einer Leistungsdiagnose mittels des sogenannten Conconi-Tests auf einem Smartphone. Dabei wird die Herzfrequenz des Probanden mit einem Pulsgurt ausgelesen und über den Test ausgewertet.
Der Test ermöglicht die Bestimmung der aeroben Schwelle und der maximalen Herzfrequenz, mit denen sich unterschiedliche Trainingspläne erstellen lassen.
Eine genauere Erklärung zum Test kann hier gefunden werden:
https://www.assembla.com/wiki/show/bht_puls_gurt/Conconi-Test

Das Ergebnis des Projektes ist eine Applikation für Windows Mobile, die die Leistungsdiagnose steuert und auswertet. Sie verfügt über eine, leicht zu bedienende, graphische Oberfläche für die Steuerung des Tests. Man kann den Tests starten, stoppen und die Schwierigkeit einstellen.
Neben den Eingaben verfügt die Applikation noch über mehrere Ausgaben. Sie zeigt die vergangene Zeit, den Akkuladestand des Pulsgurtes, die Herzfrequenz, die zu erbringende Leistung und die graphische Auswertung des Tests an. An dem Graphen der Auswertung kann man selbständig den gesuchten Deflexionspunkt (Punkt mit der aeroben Schwelle) ablesen.
Um die Durchführung des Tests zu vereinfachen wurde eine akustische Warnung eingebaut, die bei jeder Erhöhung der Stufen erklingt.

Weitere Informationen zum Porjekt, der Umsetzung und dem Test sind im folgenden Wiki zu finden:

https://www.assembla.com/wiki/show/bht_puls_gurt/d4h7py8-ur35KseJe5cbLA

Bluetooth Authentication

Das Projekt Bluetooth Authentication zeigt, in wie fern man Android zum automatischen Anmelden an einem Windows-Rechner verwenden kann.

Die Idee besteht darin, dass man mit seinem Smartphone in die Nähe seines Rechners kommt und dieser dann automatisch einen zugeordneten Benutzer anmeldet.

Sobald sich der Benutzer wieder vom Rechner entfernt wird der Benutzer abgemeldet.

Notwendige Anwendungen:

* Windows Credential Provider zum Anmelden an Windows.

* Anwendung zur Smaprtphone/Benutzer-Zuordnung und zum Konfigurieren des Credential Providers
* Android Anwendung, die die Verbindung zum Windowsrechner aufnimmt und die An- und Abmeldung steuert.

OCR App für Android

Eine Android App mit serverbasierter Erkennung von fotografierten Texten,
welche im Rahmen der Lehrveranstaltung Embedded Systems an der BHT Berlin entstanden ist.

Weitere Informationen zu den Features und zur Entwicklung finden Sie im Assemblaeintrag:

http://www.assembla.com/wiki/show/AndroidOCR/d-pWtw6pKr36CpeJe5cbLr

Der Source-Code befindet sich in folgendem SVN Repository:

http://www.assembla.com/code/AndroidOCR/subversion/nodes


Design der OCR App nach dem Start


OCR App, nachdem ein Foto aufgenommen wurde


OCR App, nachdem ein Text erkannt wurde. Das Ergebnis schwankt sehr u.a. von der Belichtung.

iPhone AccelerometerTestApp howto

In unserem ersten Blogeintrag (http://bht.mobilecoders.de/2010/11/hello-iphone/) haben wir mal kurz beschrieben worauf man sich Einstellen muss wenn man nen App schreiben will. In diesem Blog wollen wir euch anhand eines Beispiels das howto etwas näher bringen.

Wir haben mal das Accelerometer ausgelesen und die Werte auf UILabel und UIProgressViews (das sind die blauen Balken die im Appicon erscheinen wenn man eine neue App aus dem Store lädt) ausgegeben, dazu haben wir noch ein Imageview hinzugefügt um den Achsenbeschreibungen x,y und z auch eine Richtung zu geben. Aber nun mal zu sache!

Als erstes öffnet man ein leeres iPhone Projekt in xCode (z.B. die View-Based Application) welche ist eigentlich egal, der Unterschied besteht eigentlich nur in dem Template welches geladen wird. Das View-Based Template ist sehr simpel und daher für unser Vorhaben gut geeignet! Wenn das Projekt angelegt ist sieht man in XCode links die 4 angelegten Projektdateien (ProjektnameAppDelegate h/m und ProjektnameViewController h/m) wobei die .h – Datei die Headerdatei und .m die Implementierung darstellt. Wir werden alles in die ProjektnameViewController h/m Dateien schreiben, denn die AppDelegateDdateien sollte man nur editieren wenn es für die Funktion notwendig ist (bei uns nicht der Fall).

Als erstes die Headerdatei “ProjektnameViewController.h” (viewController_h). Hier fürgen wir als erstes das Delegateprotokoll für den Beschleunigungsmesser ein, danach alle Elemente die wir im Interface Builder (IB) verwenden wollen, also 3 Labels und 3 ProgressViews und anschließend noch ein UIAccerometer aus welchem wir die Beschleunigungswerte erhalten. Für diese Objekte werden dann noch mit “@property….” die Accesormethoden deklariert. 

In der Implementierungsdatei “ProjektnameViewController.m”(viewController_m) werden zwei Methoden verwendet. In der “-(void)viewDidLoad”-Methode (wird vom Template erzeugt) steht was beim laden der Klasse ausgeführt werden soll, in unserem Fall müssen 3Dinge beachtet werden:

  1. das Zuweisen der Singelton Klasse von UIAccererometer
  2. setzen der Delegateklasse
  3. und setzen des Aktualisierungsintervalls

Intern werden jetzt alle 0.1s die Accerometerdaten ausgelesen und den Klassen zur Verfügung gestellt in denen das Delegate Protokoll, ein Objekt “UIAccelerometer” UND  die Delegate Methode “-(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration” Implementiert ist. Diese Methode ist der Schlüssel zum Auslesen/Anzeigen oder Verarbeiten der Beschleunigungswerte! In dem parameter “accerelration” sind die gewünschten Werte enthalten,  die können als property des Objects über Punktnotation erreicht werden (z.B. accerleration.x).

Das wars….fast, denn noch zeigt das App nichts an, denn die angelegten Felder müssen nun noch im IB angelegt werden. Im Projektbrowser gibt es einen Ordner “Nib Files” in welchem die bereits erzeugten IB- Dateien liegen, hier klickt man doppelt auf “ProjektnameViewController.xib” und es öffnet sich der IB (siehe IB). Hier geht man in folgender Reihenfolge vor:

  1. das gewünschte Objekt (also hier Label oder Progressview in der Library suchen und ber Drag n’ Drop in das  “Windows view” ziehen, danach
  2. im Objekt Browser auf Filesowner klicken, dann
  3. im Inspektor auf den 2. reiter von links klicken (“connections”)
  4. und anschließend die Namen der Outlets mit den Elementen per drag n’ drop verbinden
  5. speichern und fertig 🙂

Das wars dann, das App ist fertig und kann getestet werden! An dieser Stelle sei noch gesagt das wir mit dem Simulator hier nur wenig Freude haben denn der Wertet keine Beschleunigungsdaten aus…. aber auf einem realen Endgerät funktioniert es wunderbar!

Google Sky Map

Richten Sie ihr Handy auf den Himmel und Google Sky Maps zeigt die Sterne, Planeten, Konstellationen und mehr, die helfen das Himmelsobjekt im Blickfeld zu identifizieren.

Ebenso können die Himmelsobjekte in einem Manuellen Modus durchsucht werden.

Wer schon immer auf der Suche nach einer Spiralgalaxie war, die im aktuellen Berliner Dunst nicht mehr zu sehen ist, hier wird er fündig.

Verwendet werden Kompass, GPS und Uhrzeit um die Ausrichtung des Handys und die angepeilten Himmelskörper zu bestimmen.

Hello iPhone

Eines vorweg: Ja, um eigene Software auf einem nicht gehackten iPhone/iPod touch/iPad laufen zu lassen, muss man registrierter Apple-Developer sein und mindestens $99 pro Jahr bezahlen. Über Sinn und Unsinn dieser Verfahrenweise soll es in diesem Eintrag nicht gehen…

Bevor es losgehen kann, muss die Entwicklungsumgebung installiert werden. Diese nennt sich XCode und ist kostenlos erhältlich. Eigentlich bekommt man mit XCode nicht nur eine IDE, sondern gleich für sämtliche Entwicklungsarbeit ein Komplettpaket – ob für OS X oder iPhone, mit Kompiler, Bibliotheken, allem. Einfach das Rundrum-Sorglospaket. Herunterzuladen gibt es das Paket im iOS-DeveloperPortal unter: http://developer.apple.com/devcenter/ios/index.action.

Die Größe des Paketes (derzeit 2.9Gb) läßt schon erahnen, dass man nach der Installion nicht mehr viel brauchen kann. In der Tat, ist man sofort und ohne jegliche Konfiguration vollständig einsatzbereit. Wer ersteinmal Geld sparen und spielen will, der kann trotzdem loslegen und einfach im mitgelieferten iPhone-Simulator entwickeln. Die üblichen Einschränkungen wie bei anderen Simulatoren gelten auch hier: GPS gibt es nicht, Sensoren gibt es nicht. Man kann jedoch beispiesweise ein Schütteln des Gerätes simulieren, das Gerät drehen oder gar multitouch ausprobieren.

Programmiert wird in ObjectiveC, einem C-Klon, welcher für objektorientiertes Programmieren umgebaut wurde. Die Syntax ist auf den ersten Blick grausig, auf den zweiten Blick jedoch durchaus sinnvoll. Besonderer Wert wird darauf gelegt, dass die Entwicklung beschleunigt und vor allem stets kontrolliert erfolgt. Dem Entwickler wird allein durch die Sprachstruktur einerseits viel Verantwortung, andererseits ein hohes Maß an Flexibilität und Kontrolle in die Hand gelegt. Zusammen mit XCode machen die Sprachkonvetionen zum Beispiel zur Deklaration von Argumenten in Methoden gleich richtig Sinn. Eine Garbage-Collection gibt es im Prinzip keine, und so macht man sich zum ersten Mal jenseits der Uni ernsthaft Gedanken über das Leben und Sterben von Objekten. Zugegebenermaßen anfangs etwas gewöhnungsbedürftig, aber da wir für ein mobiles Endgerät entwickeln wollen, ist die Kontrolle über das Speichermanagement durchaus sinnvoll und wichtig.

Hauptanlaufpunkt für den iOS-Developer ist sicherlich die iOS-Reference-Library. Dies ist das absolute Standardwerk von Apple und sehr sauber strukturiert. Neben der kompletten Klassenreferenz finden sich hier allgemeine Themen zur Struktur von Apps, Sample-Code für verschiedene Anwendungen sowie die kompletten Richtlinien zum Design eines User-Interface’. Für Neueinsteiger lohnen sich als erstes folgende Themen: Einführung in Objective-C, Einstieg in die Entwicklung mit XCode und Wir schreiben unser erstes iOS-App.

Wie schon beschrieben, bekommen wir eine ganze Menge an Werkzeugen mitgeliefert, von den 3 absolut unersetzlich sind: Xcode, die Entwicklungsugebung an sich, InterfaceBuilder, ein graphisches Werkzeug zum Bau von Oberflächen und zur Verwaltung der entsprechenden Objekte inkl. Anbindung an den Sourcecode, sowie der iPhone-Simulator. Der Simulator kann derzeit sowohl das iPhone 3GS/4, als auch das iPad simulieren.

G-Force

Porsche G-Force

Beschleunigung – einige haben davor Angst, andere lieben die G-Kräfte. Wer zur zweiten Kategorie gehört, genießt es, wenn ein Verkehrsflugzeug beim Start 0,5 G stemmt oder ihn im Kurvenflug mit bis zu 2 G seitlich in den Sitz presst. Wem das nicht reicht, muss in die Achterbahn, die ihre Insassen mit der fünffachen Erdbeschleunigung zum Kreischen bringt. Formel-1-Piloten haben es da einfacher: Ihre Boliden schaffen das bei normalen Kurvenfahrten. Doch wie stark drückt einen eigentlich das eigene Auto in oder seitlich aus dem Sitz?

iPhone-Besitzer, die das genau wissen möchten, sollten das kostenlose Programm Porsche gForce app powered by Mobil1 aus dem App Store laden. Es misst die Beschleunigung mit Hilfe der im Smartphone integrierten Sensoren und zeigt sie in Echtzeit an. Zusätzlich bedient sich die Software beim GPS-Empfänger und bringt Geschwindigkeit und gefahrene Webstrecke auf den Schirm.

Nach dem Start der App finden sich G-Kraft-Fans in einer übersichtlichen Instrumenten-Ansicht wieder. Oben steht dick die Beschleunigung, darunter listet die Software Messdauer, Geschwindigkeit und Distanz auf. Ein Fingertipp auf den Start-Button genügt, und die Messung beginnt. Neben der Echtzeit-Anzeige der unterschiedlichen Werte stellt das Programm auch die Top-G-Kraft und die erreichte Spitzengeschwindigkeit dar.

Nach der Messung zeigt das Programm die Beschleunigungen in einem Diagramm an. Wer nun am unteren Bildrand auf Speicher tippt, bekommt alle Aufzeichnungen zu sehen. Dort bildet die App Spitzen- und Durchschnittsbeschleunigung sowie Höchst- und Durchschnittsgeschwindigkeit ab. Auch Dauer und Strecke fehlen nicht. Ein Tastendruck auf Share ermöglicht ein Veröffentlichen der Werte via Twitter oder den Versand per E-Mail.

Porsche G-Force Porsche G-Force Porsche G-Force

RunKeeper

dem Ablaufen seiner bevorzugten Joggingstrecke dürfte sich jeder schon mal gefragt haben, wie weit einen die Füße denn nun getragen haben. Damit ist jetzt Schluss, RunKeeper sei dank: Übersichtlich bereitet die kostenlos App die Ergebnisse sportlicher Aktivitäten auf und liefert viele weitere wertvolle Rahmeninformationen rund um die Trainingseinheit.

Nach

.

Funktionsumfang

Zieluser sind jedoch keineswegs nur Jogger. Der RunKeeper eignet sich für alle Sportarten, bei denen man “Strecke macht”. Aus einer Liste kann zu Beginn des Trainings ausgewählt werden. Radfahrer und Walker könnte diese App ebenso interessieren wie Skifahrer, Snowboarder oder Langläufer. Ob jemand sein Smartphone allerdings zur Streckenvermessung tatsächlich mit ins Schwimmbecken nimmt, erscheint zumindest fraglich.

Die Streckendokumentation erfolgt per GPS. So zeichnet der RunKeeper die Strecke auf und zeigt sie anhand des Kartenmaterials von Google Maps an. Dazu kommen Statistiken über Höhenunterschiede auf dem Laufparcours und die Geschwindigkeit, sogar über die verbrannten Kalorien gibt das Programm Aufschluss.

Ein Account bei RunKeeper erweitert die Funktionen des Apps zudem um die Möglichkeit, Ergebnisse zu speichern oder – nach dem Freischalten der entsprechenden Funktion – Läufe live mitzuverfolgen. Zudem verfügt das Programm über Clients sozialer Netzwerke wie Facebook oder Twitter. So lassen sich die Resultate einer Trainingseinheit direkt ins Netzwerkprofil laden.