Dienstag, 29. Juni 2010

Technikgedanken

Eine weitere Richtungsanzeige wäre über eine sogenannte Dopplerpeilung möglich, wie sie im Amateurfunk für "Fuchsjagden" verwendet wird. In diesem Fall müssten die Kunden unseres Geräts lediglich eine Amateurfunkprüfung je nach verwendetem Frequenzbereich machen. Da diese Dopplerpeilung jedoch wahrscheinlich nur schlecht mit den kurzwelligen Funkfrequenzen funktionieren dürfte, wäre das Device etwas grösser, aber die 4 halbmeterlangen Antennen kann man ja gut als Hutersatz tragen. Ausserdem können wir dann die bereits kommerziell erhältlichen Geräte verwenden, die es zwischen 400 und 6000 US$ kosten... Mmh, vielleicht wäre dann eine GPS-Shield oder iPhone doch etwas preiswerter :-)
Es gibt auch eine Positionsbestimmung per WLan der Humboldt-Universität in Berlin namens MagicMap (Ganauigkeit im Meterbereich, also ausreichend für unseren Zweck), allerdings müssen zu diesem zweck mindestens drei Accesspoints vorhanden sein - und deren Position bekannt sein, man kann also nicht einfach die Wlan-Shields der Arduinos bei einer großen Anzahl Personen gegenseitig nutzten, allerdings müsste es funktionieren, wenn wenigstens 3 eine Kombination aus WLan und GPS an ihrem Gerät haben. Hier könnte man wieder einen Grund für zwei Preisklassen haben. Die billige funktioniert nur, wenn entweder genügend Personen mit der teureren GPS-Klasse in der Nähe sind oder der Veranstalter/in der Umgebung entsprechende Access-Points mit bekanntem Standort in der Nähe sind. Gibt man mehr Geld aus, kann einem das egal sein.
Da aber die die WLan-Shields auch wieder nicht ganz billig sind, bleibt die xbee-Lösung mit Richtfunkpeilung immer noch die bessere Variante, wenn sie denn dann irgendwie funktionieren sollte.

Mittwoch, 23. Juni 2010

Grundüberlegungen für den FriendLocator - Teil 2

Da das, wenn auch einfach zu erstellende und anzusteuernde LED-Display nicht unbedingt das hübschste ist, haben wir uns noch ein paar Überlegungen zu Alternativen gemacht.
Eine Alternative ist die Verwendung eines LCD-Displays, beispielsweise die Verwendung (zu Testzwecken) von alten Handydisplays, da zu kaufende leider deutlich zu gr0ß sind. Hier wird aber die Ansteuerung/Kontaktierung aufgrund der fehlenden Dokumentation/Miniaturisierung nicht einfach werden.

Ein ganz lustige Alternative wäre, angesichts der Community im Netz und den Möglichkeiten, die das FabLab bietet, ein Analoganzeige im Steampunkstil zu machen. Dies kommt der Kompassfunktion entgegen, ist also aus intuitiver Sicht leicht zu verstehen.
Realisiert werden kann dies, indem die entsprechende Anzeigenadel/-pfeil entweder durch einen Steppermotor (zu groß und aufwendig ansteuerbar) oder einfach über Magnetfelder - also zwei kleine über Kreuz angeordnete Elektromagnete ausgerichtet wird. Die Entfernung kann dann durch Zittern der Nadel angezeigt werden: Starkes Zittern bedeutet weite Enfernung und damit schlechtes Ausrichten, je näher - und damit stärker - das Signal ist, desto besser (und ruhiger) wird die Nadel ausgerichtet.

Zur Wahl des anzuzeigenden Freundes (oder auch der zu sendenden Botschaft) können dann verdrehbare Aussenringe (veränderliche Widerstände) dienen, auf denen die entsprechenden Freunde/Botschaften markiert sind. D.h. man würde beispielsweise den Freund und die zu sendende Botschaft nach "Norden" (also eine bestimmte Position) drehen und mit einem OK-Button betätigen. Alternativ kann auch nur ein Ring verwendet werden, und beispielsweise durch drücken des einen (oberen) Tasters der Empfänger und mit dem zweiten (unteren) Taster die Botschaft ausgewählt werden. Zur Anzeige leuchtet dann der entsprechende Taster als Indikator auf, und der Pfeil zeigt auf die entsprechende Ringposition.
(Die verrücktere, völlig übertriebende Fassung wäre natürlich, das sich dann die Ringe automatisch in die entsprechende Anzeigeposition drehen, das wäre naürlich vom Effekt her großartig, aber leider sehr aufwendig einzubauen, schlecht zu miniaturisieren, damit teuer und zusätzlich wahrscheinlich enorm störanfällig - mit anderen Worten: Genau das will ich haben :-)

Diese Variante ist dann allerdings nicht gut modifizierbar - also im Bezug auf andere Botschaften, neue Freunde etc.
Hierfür könnte man zwar einen "Buchstabenring" verwenden, bei dem nacheinander die Namen/Botschaften buchstabiert werden (z.B. aufleuchten), aber das ist aufwendig zu implementieren und nicht besonders nutzerfreundlich.
Alternativ könnten auch (vor allem zum Hinzufügen und Finden neuer Freunde) eine Art Lochkarten verwendet werden: Auf Folie gedruckte oder mit dem Lasercutter geschnittene Visitenkarten, die individuell verziert werden können und an einem Rand eine Lochreihe (also unbedruckte abwechselnd mit bedruckten Stellen) haben, die vom Locator beim Einschieben in eine entsprechende Öffnung mit einer Lichtschranke als Barcode ausgelesen werden, und so einen Freund zu internen Liste hinzufügen, bzw. dessen Position im eingesteckten Zustand anzeigen.
In diesem Fall gibt es gleich zwei Sammeloptionen: Zum einen kann das Armband entsprechend der Veranstaltung (wenn verliehen) oder des Besitzers designt werden, zum anderen können aber auch die Einsteckkarten als Sammelobjekte gestaltet werden.
Für die Botschaften müsste man sich dann auf einen bestimmten Standardsatz an Botschaften einigen, hier kann man sich beispielsweise an den beliebtesten SMS-Nachrichten orientieren. Für individuellere und längere Botschaften würde dann doch besser das Handy dienen und auch besser geeignet sein. Wir müssen uns also später noch überlegen, inwieweit die Nachrichten überhaupt einfach zu implementieren und zu bedienen sind, also ob dies überhaupt ein sinnvolles Zusatzfeature ist.

Hier folgt ein erster Entwurf des Steampunk-Armbandes:

Dienstag, 22. Juni 2010

Technikgedanken

Hier jetzt etwas konkretere Überlegungen zu Positionsbestimmung:
Kostengünstiger als ein XBee-Modul sind ganz geöhnliche Funktransceiver und -Receiver (9 € zusammen). Diese haben jedoch den Nachteil, da immer nur ein Tranceiver senden darf, was sich für geringe Personenmengen über ein Protokoll regeln liesse (Vor dem Senden wird zuerst nachgeschaut, ob bereits jemand sendet). Für grosse Personenmengen, was ja das Ziel ist, dürfte dies jedoch angesichts der relativ geringen Datenraten keine gute Lösung darstellen, zum Testen der eigentlichen Positionsbestimmung sind diese jedoch aufgrund des geringeren Preises und der Trennung zwischen Sendeeinheit (Kugelstrahler) und Empfangseinheit (Gerichteter Empfänger) besser geeignet.
Möglichkeiten, um die Antenne zu einer gerichteten Antenne umzubauen sind:
- Metallröhrchen um Antennendraht herum (wie bei den berühmten Pringles-WLan-Richtfunkstrecken), was jedoch aufwendig und damit eigentlich auch teuer ist. Allerdings könnte man versuchen, eine Koaxialleitung dafür zu missbrauchen. Der Platzbedarf ist damit aber trotzdem zu groß
- Parabolspiegel (erst recht unbezahlbar und zu groß)
- Panelantenne, welche durch Interferenz verschiedener Einzelantennen in einer Ebene eine Richtcharakteristik entwickeln. Hier ist zwar der Platzbedarf gering (gefräste Platine), aber der Entwicklungs- und Beschaltungsaufwand viel zu hoch.
- Patchantenne: Ein Kupferrechteck der Länge Lambda/2 dient als Antenne, die dahinterliegende Metallschicht als Reflektorfläche (was dann auch die Einzelelemente einer Panelantenne sind). Gegenüber der Panelantenne ist die Richtcharakteristik zwar geringer, dafür aber der Herstellungsaufwand bedeutend einfacher. Dies wäre damit das für unsere Zwecke naheliegenste Design.
Als Empfangsantenne dient somit eine Platine, auf der in verschiedene Richtungen eine Lambdqa/2 lange Antenne mit dahinter liegender Abschirmung freigeäzt/gefräst ist.

Da bereits der einfache Hertz'sche Dipol eine gewisse Richtcharakteristik hat, ist es allerdings sinnvoll, zunächst einmal das Sende- und Empfangsverhalten der "normalen" Antenne zu untersuchen, bevor wir uns weiter mit den komplexeren Antennen auseinandersetzen.

Grundüberlegungen für den FriendLocator - Teil 1

Für den FriendLocator brauchen wir im Wesentlichen zunächst ein Anzeigeelement und irgendetwas, womit wir die Position bestimmen können.
Ein einfaches und kostengünstiges Anzeigelement ist eine LED-Matrix, die sich auch sehr gut über einen Arduino ansteuern lässt. Hier müssen wir im Grunde nur bestimmen, aus wievielen Punkten die Anzeigefläche bestehen soll, und ob sie annähernd kreis - also achteckförmig sein soll, oder aber eher länglich. Während ersteres der Form eines Radars eher entspricht, kann mit letzterem Text besser dargestellt werden. Verschiedene Beispiele sind im Folgenden aufgeführt
Text kann dabei vor allem als Laufschrift dargestellt werden, so das man auch mit einer kleinen Anzeigefläche auskommt. In den vier rechten Displays sind dabei unten rechts der Beginn einer TEST-Botschaft angezeigt. Links daneben ist ein Radarsignal zu sehen, also Richtungsangaben, wobei durch die Länge der Striche (hier ein oder zwei Punkte) die Entfernung angedeutet werden kann. Rechts oben ist dann eine Anzeige, in welcher Richtung ein WC zu finden ist, und daneben eine Analoguhr zu sehen. Eine weitere Alternative zur Anzeige von Text als Lauflicht sind natürlich Animationen durch abwechselnd eingeblendete Bilder.

Zur Lokalisierung kann im einfachsten Fall (vom Arbeitsaufwand her) ein GPS-Empfänger verwendet werden, was jedoch verhältnismäßig teuer ist.
Ideal wäre es, ihn durch eine Lokalisierung über das Funkmodul zu ersetzen. Dabei könnte die Entfernung möglicherweise über die Signalstärke bestimmt werden. Zur Richtungsbestimmung müsste dann eine Art Richtfunk verwendet werden, wozu mehrere Antennen, welche eine Richtcharakteristik haben, über einen Multiplexer abwechselnd an das Funkmodul angeschlossen werden. Das wird eine der ersten Techniken sein, die wir testen müssen.

Auch die Möglichkeit, während einer Veranstaltung neue Freunde hinzuzufügen, sollte über das Armband einfach möglich sein (was dann ausserdem auch leicht vom Veranstalter genutzt werden kann, um Informationen einzuspeisen (WC-Standorte :-)).

Somit könnte man natürlich auch sein Zelt, Fahrrad, Auto, usw. mit einem Locator ausstatten und diesen damit gleichzeitig als Lokalisator für wichtige Dinge nutzen, falls man sie verliert, oder nicht mehr weiss, wo sie sind (Mein Freund, das Zelt, mein Freund, das Bier :-) ).
Falls ein GPS-Sensor verwendet werden wird, könnte man auch Positionen einspeichern, was im Gegensatz zu den zusätzlichen Locatoren keine Zusatzkosten verursachen würde und in gewissen Fällen (Zelt auf dem Festivalgelände) dennoch ausreichen würde.

Zur Verwaltung seiner Freundelisten soll später eine eigene Website bzw. ein Java-Applet dienen. Weiterhin sollte entweder - falls es preiswert genug wird - das Gehäuse entsprechend der Veranstaltung designed werden, oder aber zumindest entsprechende aufsteckbare Hüllen genutzt werden.

Eine erste Überlegung zum Interface des FriendLocators:

Ein Display (wie oben beschrieben), zwei Buttons (jeweils links/rechts oder oben/unten vom Display) zum durchscrollen der verschiedenen möglichen Ziele.

Auf dem Display wird ein Pfeil angezeigt, der zum aktuellen Ziel zeigt. Wenn ein Richtungsbutton gedrückt wird, erscheint zuerst der Name des Ziels, dessen Position bisher angezeigt wurde. Wird während der Namensanzeige ein weiteres mal ein Richtungsbutton gedrückt, wechselt das Gerät zum nächsten Ziel. Wird dann für x Sekunden kein Button mehr gedrückt, wechselt die Anzeige wieder auf den Pfeilmodus. Optimal wäre es, wenn auch während der Namensanzeige immer noch ein Punkt am Rand bliebe, der anzeigt, wo sich das aktuell ausgewählte Ziel gerade befindet. So könnte man sich auch schnell einen Überblick verschaffen.

Eine Alternative wäre es, den Pfeil ganz weg zu lassen und nur den Punkt zu nutzen. Damit könnte man auch den sonst nötigen Timeout vermeiden, der Nutzer verwirren könnte. Navigation durch eine Menschenmenge kann schon so verwirrend genug sein, da sollte das Interface nicht auch noch zur Verwirrung beitragen.

Eine zusätzliche Überlegung wäre das Versenden von kurzen, vordefinierten Nachrichten ("Bring Bier mit" ;) ), die über ein Menü ausgewählt werden könnten. Einige Botschaften könnten direkt auf dem Gerät vorprogrammiert sein, andere könnte man über das bereits angesprochene Applet selbst definieren. Wie genau dieses Feature angewählt und verwendet werden soll, muss noch geklärt werden.

Willkommen zum FriendLocator-Blog

Auf diesem Blog werden wir in den nächsten Wochen die Ideen und Fortschritte zu dem Abschlussprojekt unseres Softwarepraktikums bei der Media Computing Group dokumentieren.
Die Aufgabenstellung war, ein auf eine Anwendung reduziertes, mobiles Gerät zu entwickeln. Unsere Idee war nun, ein Gerät zu entwickeln, mit dem man auf öffentlichen Großveranstaltungen seine Freunde aufspüren kann.
Wer schon einmal auf einem Festival oder einem größeren Public Viewing war, wird wissen, wie schwer es sein kann, trotz zuvor festgelegter Treffpunkte seine Freunde zu finden. Natürlich ließe sich dies auch mit einem Smartphone machen ("There's an app for that!"®), aber wer möchte schon in größeren Menschenmengen mit seinem Smartphone in der Hand durch die Gegend laufen? Zu groß ist die Gefahr, angerempelt zu werden und damit in sekundenschnelle etwa 500€ in Elektroschrott umzuwandeln.
Der Gedanke war nun, mehrere kleine Geräte zu entwickeln, die sich bequem per Armband am Handgelenk tragen lassen und miteinander kommunizieren können. Kommt der Träger eines solchen Gerätes nun in die Nähe eines seiner Freunde, der ebenfalls ein solches Gerät trägt, weißt das Gerät die Träger darauf hin, das sich ein Freund in der Nähe befindet und weist die Richtung zu ihm. In welchem Umkreis dies funktioniert, muss noch getestet werden, sobald wir uns für eine Technologie entschieden haben. Aktuell ist der Plan, zur Kommunikation XBee-Module zu verwenden. Verschiedene Quellen sprachen von bis zu mehreren Kilometern Reichweite. Selbst, wenn man eine weniger optimistische Schätzung annimmt, sollte man zumindest auf einem größeren Platz noch in der Lage sein, sich zu finden. Das werden wir aber noch zu einem späteren Zeitpunkt ausgiebig testen.
Dieses Konzept könnte (so es sich denn preiswert genug umsetzen lässt) auch für die Organisatoren von Großveranstaltungen interessant sein. So könnte man diese Geräte auch gegen einen Pfand ausgeben und wichtige Orte auf dem Veranstaltungsgelände direkt mit einprogrammieren - Damit könnte das Gerät auch genutzt werden um anstatt des Weges zum nächsten Freund den Weg zum nächsten Bierstand oder WC zu weisen.
Wohin der Benutzer gerade geführt wird, kann er über ein sehr einfach gehaltenes Display einstellen. Offensichtlich sollte es das Ziel sein, das hierzu benötigte Interface möglichst einfach zu halten.