Die Grundidee

Datenaustausch über USB-Sticks ist eine praktische Sache: Als stiller Begleiter sind sie immer dabei, große Datenmengen können immer in der Hosentasche transportiert werden, an jeden Rechner angeschlossen und darauf übertragen werden. Was aber, wenn kein Rechner zur Hand ist? Was, wenn man sich zufällig in der Tram, im Café oder auf der Straße trifft jemandem wichtige Daten geben möchte?

Nicht jeder besitzt einen Laptop, bzw. nicht immer möchte man seinen Laptop bei sich haben, ‚nur‘ um Daten auszutauschen – Wäre es da nicht wünschenswert, die Datein direkt tauschen zu können? Hier kommt mein Konzept vom direkten Datenaustausch mittels koppelbarer, über gestik gesteuerte USB-Sticks zum Einsatz:

Die Grundidee ist, USB-Sticks, wie wir sie kennen, ein ‚greifbares‘ Interface zu geben um darüber einen direkten Austausch zu ermöglichen. Wie, wenn man jemanden zur Begrüßung die Hand gibt und es zu einem Austausch von Informationen in Form eines Gespräches kommt, soll hier ein direktes verbinden von zwei USB-Sticks (die je einen Ein- und Ausgang haben) einen Austausch von Daten ermöglichen. Dies geschieht auf zwei verschiedenen Wegen. Durch ‚Wisch-Gesten‘ von einem Stick auf den Anderen können Datein einzeln auf einen Stick verschoben werden, durch Neigen der verbundenen Sticks sind ganze Backups möglich, wobei alle Datein von einem Stick auf den anderen ‚fallen‘.

Die Grundliegende Hardware der Prototypen ist entsprechend wie folgt aufgebaut:

  • USB-Ein- und Ausgang zur Verbindung der zwei USB-Sticks
  • Eine 8er LED Zeile als Indikator für 8 Datein/Ordner, die sich auf dem Stick befinden,
  • Auf jedem Stick ein Neigungssensor zum Abfragen der Position, ob der Stick also ‚unten‘ als Empfänger der Daten oder ‚oben‘ als Sender der Daten angesehen werden soll.
  • Dazu auf jeden Stick ein Lichtsensor, der die Wischgeste auf dem Gehäuse registriert um die einzelne Datenübertragung auszulösen.

Durch diesen Lösungsansatz wird Datenaustausch zwischen personen im öffentlichen Raum, wenn kein Rechner zur Hand ist, stark vereinfacht. Technische Anforderungen werden minimiert, das direkte Tauschen von Daten mit eingängigen Gesten verinfacht.

Der Aufbau

Zunächst habe ich die grundliegende Hardware im Fritzing gelayouted - mit hilfe von Stefan Herman konnte das ganze dann auf eine Platinengröße zusammengerückt werden, die einen USB Stick ähnlichen Formfaktor erlaubt.

Neben den genannten Elementen gibt es noch:

  • Shiftregister zum Ansteuern mehrerer LEDs über weniger Ausgänge am Arduino angesteuert werden können

  • Kondensator

  • Wiederstände

  • USB Ein und Ausgangs-Stecker als Schalter zum Registrieren ob die Sticks verbunden sind

  • Verschiedene Kabel und Steckverbindungen

  • (Ggf. Buttons für Funktionen)

Bildschirmfoto 2012-03-07 um 15.53.24.png
Bildschirmfoto 2012-03-07 um 15.54.26.png

Bei ersten Hardwaretests ist dann aufgefallen, dass das ursprünglich zum simulieren der Wischgesten gekaufte SoftPot Potentiometer unbrauchbare Werte ausgibt und so eine Nutzung für das erkennen von Wischgesten unbrauchbar macht. Entsprechend wurde das Potentiometer durch die Lichtsensoren ausgetauscht.

Das Löten selber, dafür, dass ich es vorher noch nicht richtig gemacht hatte - bis auf den Keyboard Hack, ging mit anfänglicher Hilfestellung von Stefan sehr gut von der Hand, auch wenn es sicherlich schneller gehen kann. Zudem hat es sich bei einigen Teilen um SMD Bauteile gehandelt, die das Löten noch ein wenig erschwert haben. Bis auf einen kleinen Fehler – nämlich verkehrt herum eingelötete LED Zeilen, die dann abgeknipst werden, die Überreste herausgelötet und dann neu eingelötet wurden mussten – problemlos.

IMG_1639.jpg

Die Software

Der erste Prototyp auf dem Breadboard basierte auf nur 8 LEDs – also nur halb so viel wie im finalen Prototypen. Hierfür habe ich dann entsprechend verschiedene Programme geschrieben. Eine Startsequenz registriert das Umgebungslicht und errechnet anhand dieser Werte, wann der Lichtsensor eine Wischgeste erkennen soll um einzelne Datein herüberzuschieben. Ist der Stick entsprechend kalibriert (2 Sekunden) blinken alle LEDs einmal auf und der Stick ist einsatzbereit. Danach eine Routine, die auf beiden Sticks, also Sender und Empfänger, die Anzahl der LEDs anschaltet, die Datein und/oder Ordner darstellen, für den Fall, das die Sticks verbunden sind – dies geschieht über die USB Stecker die als Schalter dienen.

Als Eingabemethode gibt es wie erwähnt zwei Möglichkeiten. Der erwähnte Lichtsensor Kontakt, der die jeweils letzt Datei auf den anderen Stick herübergleiten lässt, oder ein Kippen, welches durch die Neigungssensoren registriert wird: Hier werden alle Datein von einem auf den anderen Stick übertragen, sie fallen also optisch gesehen von einem Stick auf den anderen herunter.

Nachdem die Software soweit problemlos funktionierte, und die Hardware fertig gelötet war, kam es aber dann zum Übertragen des Codes auf das Shift Register – stand heute - ohne Erfolg, sodass mein Prototyp zur Zeit ohne Funktion ist.

Probleme

Neben der angesprochenen Unerfahrenheit beim Löten und generell mit Elektronik, die zum Beispiel zu Flüchtigkeitsfehlern mit der LED Zeile geführt hat (erst eine falsche Größe, dann musste eine gekaufte modifiziert werden, dann neu eingelötet werden), stellt das Hauptproblem der falsch eingeschätzte Grad an Komplexität des Shift Registers da. Nachträglich betrachtet ärgert mich das sehr, da es zur Demonstration der Interface Idee nicht zwingend nötig gewesen wäre, so der Prototyp aber im Moment nicht funktionstüchtig ist. Hätte ich mich mit weniger LEDs befasst, wäre der Prototyp voll funktionsfähig geworden, gerade weil die Software wirklich gut auf dem Breadboard funktioniert hat. Ein einfaches Gehäuse hätte den Prototypen dann abgerundet.

Problematik des Prototypen und Ausblick

Die Funktionsweise des Prototypen ist relativ beschränkt. Befasst man sich mit Dateisystemen und der nötigen Interaktion, so sollten mindestens Grundfunktionen wie Kopieren, Ausschneiden, Einfügen neben einem einfachen Verschieben, bzw dem Erstellen von Backups, möglich sein um tatsächlich einem realistischen Einsatzgebiet stand zu halten. Auch dadurch, dass USB-Sticks heute schon so weit verbreitet sind und in ihrem Anschaffungspreis so günstig zu haben sind, oftmals werden brauchbare Größen schon als Werbegeschenke ‚verramscht‘, ist die Bereitschaft in ein neues Produkt mit der erweiterten Funktionalität des Prototypen zu investieren vermutlich gering.

Fazit

Insgesamt hat mir der Kurs sehr gut gefallen. Ein Kurs, der sehr Zeit- und Kostenaufwändig ist, in dem man aber dadurch, dass man mehr oder weniger in kaltes Wasser geworfen wird, eine Menge lernt wenn man es möchte. Rückblickend betrachtet: Ich hatte noch nie etwas gelötet oder mich so mit Elektronik befasst, geschweige denn funktionierenden Code geschrieben. Trotzdem war es mir möglich zumindest die Hardware fehlerfrei zu Konzipieren und mit Starthilfe von Stefan zu löten. Auch den Code für eine Variante mit weniger LEDs konnte ich ohne Hilfe komplett schreiben. Entsprechend schade finde ich es, dass der Prototyp als ein Teil des Projektes zur Zeit nicht funktioniert.

Nachträglich betrachtet glaube ich, dass der Zeitraum relativ knapp bemessen war für solch ein Projekt, gerade weil man einige Zeit brauchte sich in die Materie einzuarbeiten. Nichtsdestotrotz empfehle ich jedem diesen Kurs – Interfacedesign ist eben nicht nur Screendesign, und Computer sind nicht nur PCs, Macs und Smartphones!