Interfacegestaltung SOSE 2010

Ardu and Ino play the game!

Posted: Juli 26th, 2010 | Author: martin | Filed under: Allgemein | No Comments »

Nach einer spannenden Semester sind wir nun froh, dass wir ein nettes, interaktives Spiel mit zwei selbstentwickelten Controllern geschaffen haben!

How it works?
Bei „A little ShoeGame“ treten zwei Spieler gegeneinander an. Beide Spieler stehen mit ihren Füßen auf jeweils einer selbstentwickelten Controller-Platte aus Holz. Fußspuren auf der Controller-Platte geben dem Spieler die Position vor, die zum Spielen des Spiels eingenommen werden soll. Unter den Fußspuren, im Zehenbereich der Füße, befinden sich pro Controller zwei quadratische Drucksensoren. Diese Sensoren besitzen eine sehr flache Bauform und sind in der Lage den Druck der Spieler in bis zu tausend Stufen zu erfassen. Die vier Drucksensoren sind mit einem Arduino Microcontroller (arduino.cc) verbunden. Auf dem  Microcontroller läuft ein Programm, welches die Werte der Sensoren erfasst und sie an den Computer schickt. Auf dem Computer nimmt das in der Sprache „Processing“ (processing.org) programmierte Spiel die Werte der Drucksensoren entgegen. Abhängig vom Druck, den ein Spieler mit dem rechten oder linken Fußes ausübt, ändert sich die Richtung seiner Kurve. Die Kurve bewegt sich grundsätzlich mit konstanter Geschwindigkeit fort. Das Spiel beginnt mit einem „Welcome-Screen“. Hier bestätigen beide Spieler mit einer kurzen Druckgeste, dass Sie bereit sind. Berührt ein Spieler fünfmal die Bildschirmbegrenzungen, die Kurve des Gegners oder die eigene Kurve so hat er verloren. Wenn dies der Fall ist, wird der Punktestand angezeigt und der Sieger wird geehrt.

project:
Angefangen haben wir mit einer blinkenden LED, die wir an den Arduino Microcontroller angeschlossen. Anfangs haben wir viel Zeit damit verbracht uns die Basics von Arduino anzueignen. Dies hat sich gelohnt, da wir im späteren Projektverlauf davon profitieren konnten. Der Bau der Controller-Platten hat ziemlich viel Zeit in Anspruch genommen. Es galt viel zu experimentieren, zu löten, zu verkabeln, etc. Es gab viele Fragen bezüglich der Wahl der Drucksensoren. Welche Drucksensoren sind geeignet? Welche Größe müssen die Sensoren haben? Welche Empfindlichkeit ist gut, etc? Immer wieder haben wir Prototypen gebastelt, dann getestet und anschließend optimiert. Arduino und Processing waren absolutes Neuland für uns, aber wir haben in der kurzen Projektzeit gute Erfahrungen mit den neuen Werkzeugen gemacht und viel gelernt.

media night:
Auf der MediaNight der Hochschule der Medien wurde das Spiel der Öffentlichkeit vorgestellt. Die Begeisterung, der Ansturm und das Feedback bezüglich des kleinen interaktiven Spiels haben uns begeistert. Spannend war es zu beobachten, dass nicht jeder Spieler sofort die Steuerung der Kurve im Griff hatte. Warum konnten nicht alle Spieler die Kurve gut steuern. Gibt es hier vielleicht doch noch etwas Optimierungsbedarf?

Video Shoe Gaming @medianight (5MB)

Video Shoes only @medianight (5MB)

result:
Das Projekt hat uns in guter Art und Weise herausgefordert. Es gab einige kleine Hürden über die wir hüpfen mussten, aber unser finales Konzept konnten wir verwirklichen! Generell darf man gespannt sein, ob es in Zukunft mehr Geräte geben wird die durch das Ausüben von Druck bedient werden können. Wir denken, dass Interaktion mittels Druck noch viel spannendes, unentdecktes, maybe zu erforschendes Potential bietet!


Ardu und Ino sind Freunde

Posted: Juni 28th, 2010 | Author: victoria | Filed under: Allgemein | No Comments »

28. Juni 2010.

Nun ist es soweit. Unser kleines Projekt ist fast fertig und die MediaNight naht. Bis dahin müssen wir noch einige Feinheiten erledigen.

Der Prototyp wurde nun umgebaut. Wir haben 2 schöne Platten, auf denen unsere Sensoren und die Fußabdrücke befestigt sind. Die einzelnen Kabel haben Platz in einem geschirmten, vieradrigen Kabel gefunden. Der Arduino wohnt nun in einer kleinen Tupperdose und kann über Bananenstecker bequem mit den Platten verbunden werden.

Was heute noch getan werden musste, war das Screendesign. Die Kurven wurden leicht dicker, die Farben wurden angepasst (Kurvenfarbe und Fußabdruck auf der Platte sind genau gleich), die Lücken in den Kurven wurden etwas vergrößert, damit man da leichter durchflitzen kann, die Geschwindigkeit wurde erhöht (so macht es mehr Spaß ;) ) und der Hintergrund ist hell geworden.

Nun gibt es auch einen Startscreen. Jeder Spieler muss mit einem Fuß auf die Platte drücken, damit das Spiel losgehen kann.

Am 1. Juli ist die MediaNight in der HdM und da werden wir unser Spiel präsentieren und freuen uns sehr drauf. Da wir unser kleines Spiel auf einem MAC zeigen wollen, haben wir Processing und Arduino auf so einer weißen Kiste mit angeknabbertem Apfel installiert. Processing und Arduino sind Java basiert. Es gab keine Probleme bei der WIN -> MAC Portierung. Lediglich der Name der seriellen Schnittstelle musste im Processing Code angepasst werden.

So jetzt genug Text, man sieht sich bei einem kleinen Duell auf der Media Night, immer Ausschau nach diesem Schild halten …


Sensoren und Prototyp

Posted: Juni 14th, 2010 | Author: victoria | Filed under: Allgemein | No Comments »

14. Juni 2010. Den Prototypen erstellen.

Anhand unserer Skizze haben wir einen Prototypen (erst mal nur für einen Spieler) gebaut.

Skizze Aufbau Arduino

Skizze Aufbau Arduino

Dafür habe wir den Arduino wie immer an den Computer angeschlossen und die Sensoren auf eine  Holzplatte nebeneinander geklebt. Über die Sensoren  haben wir aus Papier ausgeschnittene Schuhsohlen befestigt. Diese zeigen dem Spieler, wo er mit den Schuhen stehen soll :-)

Nun ist es so, dass wir verschiedene Sensoren zur Verfügung gestellt bekommen haben bzw. selber welche hatten. Jeder Sensor ist anders von der Größe und der Drucksensibilität.  Für unser Spiel brauchen wir allerdings vier gleiche Drucksensoren. Doch welche nehmen wir? Die kleinen sehr empfindlichen, die großen weniger oder sehr empfindlichen…Hierfür heißt es einmal die verschiedenen Sensoren austesten.

Die Tests haben gezeigt, dass man die großen sensiblen Sensoren nehmen sollte, weil der Spieler das Spiel mit seinen Füßen (und Schuhen) steuert und schlecht erfassen kann, wo  genau der Drucksensor sich befindet und wie viel Druck er gerade ausübt. Bei Conrad, dem Elektronikladen unseres Vertrauens konnten wir die passenden Drucksensoren finden und über die Hochschule bestellen.

Unseren Prototypen habe wir gleich von den ersten Testpersonen testen lassen ;-) Das Ergebnis: Spaß und Begeisterung.

Video Prototyp


Druckgestenerkennung

Posted: Mai 17th, 2010 | Author: admin | Filed under: Allgemein | No Comments »

17. Mai 2010. Gestenerkennung programmieren

Die Erkennung von Gesten für die verschiedenen Funktionen (Ein/Aus, Play/Pause, nächster Titel, vorheriger Titel) basierend auf den Messreihen war nicht einfach. Wir erstellten mit der Arduinosprache einige kleine Programme, welche die verschiedenen Gesten erkennen sollten. Nach vielen Versuchen mussten wir leider feststellen, dass es uns nicht möglich war zuverlässig Druckgesten zu erkennen. Ein Problem ist, dass man nur mit viel Übung über die Füße welche die Drucksensoren bedienen konstante, wiederkehrende Gesten erzeugen kann. Ein Benutzer müsste vermutlich erst einen längeren Lernprozess durchlaufen, um den Player bedienen zu können. Mit sehr viel Zeit und einem komplexeren Algorithmus wäre es vermutlich möglich Druckgesten zuverlässig zu erkennen.

Bei unserem initialen Brainstorming kam die Idee auf ein kleines Spiel mit dem Name “Achtung die Kurve” . Wir entschlossen uns Abschied von der MP3-Playersteuerung zu nehmen und die  “Achtung die Kurve” Idee zu realisieren. Über die Drucksensoren, die in Schuhen verbaut sind, sollen zwei Spieler ihre Kurven steuern können.

Da die Arduinosprache mit der Sprache Processing verwandt ist und die Zukunft von Flash ungewiss ist :-) , entschlossen wir uns die “Achtung die Kurve” Variante in Processing umzusetzen. Nichts wie ran, die Uhr tickt …


Mustergesten erstellen

Posted: Mai 4th, 2010 | Author: victoria | Filed under: Allgemein | No Comments »

4. Mai 2010. Gesten machen und messen

Nun sind wir so weit gekommen, dass wir die verschiedenen von uns ausgedachten Gesten verfeinern können. Doch wie machen wir das am besten? Arduino ist wie immer an den Computer angeschloßen und ich mache die Testgesten. Aber nicht nur eine, sondern gleich viele hintereinander. Daraus errechnen wir  dann den Durchschnittswert und legen die Bereiche für jede Geste genau fest. Die ausgegebenen Daten habe wir in eine Excel-Tabelle gespeichert und uns die Grafiken ausgeben lassen. Und so sieht es aus:

Was wir hier sehen sind die einzelnen Gesten für die jeweiligen Funktionen und die gemessenen Werte. Deutlich sichtbar ist hier, dass die Werte in den einzelnen Gesten immer ähnlich sind bzw. gleich verlaufen. Jedoch wird nicht immer gleich viel Druck ausgeübt. Die schwarzen Linien sind den von uns gewählte eingegrenzte Bereich.


Ardu und Ino und Flash

Posted: April 23rd, 2010 | Author: victoria | Filed under: Allgemein | No Comments »

23. April 2009. Arduino meets Flash. Oder Flash meets Arduino?

Als nächstes kam von von Herrn Tille die Idee, mit den Werten, die vom Arduino ausgegeben werden, etwas anzustellen: “Wie wäre es mit einem Effekt in Flash?!” – Gute Idee, Herr Tille, das machen wir doch mal gleich. Wir erstellen einen Kreis, welcher größer werden soll, wenn man doller auf die Drucksensoren drückt.

Damit Arduino und Flash über die serielle Schnittstelle kommunizieren können, sind folgende Schritte notwendig:
1.) Code auf dem Arduino ausführen, der Daten über die serielle Schnittstelle sendet:
void setup(void) {
Serial.begin(9600);
}
void loop(void) {
Serial.begin(9600); // serielle Schnittstellen oeffnen
Serial.print("Hallo Ardu"); // Daten senden
}
2.) Socket-Server besorgen, der Daten von der seriellen Schnittstelle empfängt  und diese dann über einen Netzwerk Socket anderen Anwendungen (z.B. Flash) zur Verfügung stellt. Wir haben hierfür den freierhältlichen Server: tinkerproxy verwendet.
http://tinkerit.googlecode.com/files/tinkerproxy-2_0.zip
In der Konfigurationsdatei serprox.cfg des Servers, haben wir über die Variable:
comm_ports=1,2,4
den von Arduino genutzten COM-Port angegeben. Die Variable
net_port_x (x=Nummer desCom-Ports)
gibt die Nummer des verwendeten Netzwerk Sockets (5534) an.

3.) Eine Klasse für Flash besorgen, welche die über den Netzwerk Socket versendeten Daten in Flash verfügbar macht. Hier haben wir folgendes Beispieldateien genutzt:
http://tinkerit.googlecode.com/files/example_as2.zip
http://tinkerit.googlecode.com/files/example_as3.zip

4.) Klasse im Flash-Code nutzen
var SerialEvent = function (datain:Object) {
var str:String = datain.data; // get an incoming data
trace(str);
}
// create object for serial communication
var SerialCommunication:SerialPort = new SerialPort(5334);
// implement listener that fires an event when data is received form serial
SerialCommunication.addEventListener("onReceiveData",SerialEvent);


Ran an die Drucksensoren

Posted: April 19th, 2010 | Author: victoria | Filed under: Allgemein | No Comments »

Treffen 19. April 2010.

Heute haben wir es uns als Ziel genommen mehr auf die Drucksensoren einzugehen und dort weiter zu machen, wo wir letztens aufgehört haben.

Wie wir gesehen haben, gibt der Arduino uns Werte aus. Diese Werte werden in einem bestimmten Takt/Einheit gemessen und ausgegeben. So sehen wir, was eigentlich passiert, wenn Jemand auf den Drucksensor drückt. Nun ist es so, dass der zeitliche Bereich, indem der Drucksensor gedrückt wird, natürlich festgelegt werden muss. Das heißt, dass wir dem Ardu sagen müssen, er soll erst eine Funktion ausführen, sobald der Nutzer x Zeit gedrückt hat und nicht sofort, wenn er nur versehentlich drauf tippt. Dies haben wir mit einer if-Anweisung gelöst. Hat auch super funktioniert.  Sobald der Nutzer also  den Drucksensor 8 Einheiten lang drückt (ca. 3 Sekunden), wird “Arduino: Hallo” ausgegeben. Der Wert ist natürlich noch nicht genau. Anhand von Nutzertest und durchs Ausprobieren müssen wir ihn noch anpassen.

Nun war unser Gedanke, dass wir zwei Drucksensoren anschließen und sobald Drucksensor A 8 Einheiten lang gedrückt wird, wird “AAAAA” ausgegeben. Beim Drucksensor B wird dann “BBBBB” ausgegeben und sobald beide zusammen gedrückt werden dann “ABABABAB”. Was der Sinn davon ist? Nun ja, wir wollen ja, dass man mit dem Arduino bestimmte Dinge steuern kann, wie beispielsweise einen MP3-Player. Und je nachdem welchen Schuh man drückt, wird ein bestimmtes Ereignis ausgelöst.

Dabei ist uns aufgefallen, dass wenn man die beiden Drucksensoren leicht Zeitverschoben drückt, was ja total normal ist und oft/immer der Fall ist, dann überlappen sich die 8 Einheiten der beiden Drucksensoren mit einer leichten Verschiebung und es kommt nicht zu einem gemeinsamen 8-Einheiten-Drücken und wird somit auch kein Ereignis ausgelöst.

Zwei Drucksensoren auf genau 8 Takte festgelegt

Was machen wir also dagegen? Wir fixieren die Zeit nicht auf genau 8 Einheiten, sondern geben noch etwas Leerlauf und verändern unseren Wert von 8 Einheiten auf “Wert zwischen 8 und 13″. Nun funktioniert es ja schon gleich wunderbar :)

zwei Drucksensoren an den Arduino angeschlossen


Was macht unser Arduino?! – Themenfindung

Posted: April 18th, 2010 | Author: victoria | Filed under: Allgemein | No Comments »

Nach einem Brainstorming haben wir folgende Ideen für unser Arduino-Projekt gesammelt:

1. Schuhe, die miteinander sprechen können. Besipiel: zwei Leute haben die “sprechenden Schuhe an” und befinden sich in der Stadt. Der Abstand der Schuhpaare wird gemessen und ein Ton ausgegeben, sobald diese sich nah sind.

2. Mit den Schuhen malen. Es gibt einen abgemessener Bereich in den man mit seinen Schuhen, die mit dem Arduino verbunden sind, rumlaufen kann. Die Koordinaten der Schuhe werden an einen Computer gesendet, der mit einem Display verbunden ist. Am Display wird anhand der Koordinaten eine Linie gemalt. So ergibt sich, wenn die Person in diesem Bereich rumläuft, ein Muster. Möglich wäre es, dass verschiede Personen mit solchen Schuhen rumlaufen und jede Person eine andere Farbe und evtl. andere Strichstärke am Display malt. So ergibt sich ein künstlerisches Gebilde.

3. Schuhe machen Geräusche. Abhängig von der Oberfläche , auf denen man mit den Schuhen läuft, machen die Schuhe ein anderes Geräusch.

4. Seilspringen. An den Schuhen sind Sensoren, die die Koordinaten an eine Leinwand übertragen. Auf der Leinwand ist das Seil, zu dem man spring, abgebildet.

5. Spiel: Achtung die Kurve. So wie im Thema 2 laufen die Personen mit den Schuhen in einem bestimmten Bereich, der die Koordinaten an eine Leinwand überträgt und daraus Linien macht. Die Personen dürfen die Linien bzw. Kurven der anderen Spieler nicht berühren. Beim Berühren der Linie eines anderen Mitspielers hat man ein Leben verloren und die Schuhe vibrieren.

6. MP3 mit den Schuhen steuern. An den Schuhen (wo auch sonst :-) ) sind Drucksensonren befestigt. Diese sind mit einem Arduino verbunden und übertragen die Daten an den MP3-Player. Mit den verschiedenen Schuhbewegungen bedient man den MP3-Player.

Read the rest of this entry »


Step #1 – Arduino talk to us

Posted: April 16th, 2010 | Author: victoria | Filed under: Allgemein, Ardulearning | No Comments »

Treffen 16. April 2010. Wir fangen mal klein an, sagen “Hallo World” in der Arduinosprache und tasten uns langsam voran.

Der Arduino ist mit dem Laptop verbunden. Ein LED-Lämpchen als Ausgabesignal ist an dem Arduino gesteckt. Die Arduino-App ist installiert. Soweit alles easy ;-)

Die ersten Berührungen mit dem Ardu sehen nun so aus: das Lämpchen soll im sekundentakt blinken.

MOVIE: Unser erster “Hallo World”-Blink

MOVIE: “Hallo World”-Blink mit einem Breadboard

Arduino sagt: "Hallo World"Code "Hello World"

Arduino sagt: “Hallo World”

breadboard

und nun mit dem breadboard

Das hat doch schon mal super geklappt. Kriegen wir es auch mit zwei Lämpchen hin, die abwechselnd blinken?!  - Klaro :-)

MOVIE: Zwei blinkende LED-Lämpchen

Dann versuchen wir es nun mit einem Drucksensor. Abhängig von der Druckkraft auf den Drucksensor verändert sich die Leuchtkraft des Lämpchens. Mehr Druck = mehr Licht. Das war die Theorie und hier die Praxis:

Drucksensor

Steuerung des Lichts mithilfe eines Drucksensors

MOVIE: Steuerung LED-Lämpchen mithilfe eines Drucksensors

Die Werte, die vom Drucksensor und dem LED-Lämpchen ausgegeben werden, werden mit “Ardu spricht:” bzw. “LED spricht:” getracet. Mit diesen Werten können wir sehen, wie Druck des Sensors und das Lämpchen im Verhältnis zueinander stehen und sich verhalten. Soweit so gut. Damit arbeiten wir nächstes mal weiter…


Hello ardu where is ino

Posted: April 6th, 2010 | Author: admin | Filed under: Allgemein | No Comments »

Hello everyone, this is a nice blog about ardu and ino. I don’t know whats going on here but take a look when we develop something that is maybe working under your feet …