21.09.2014 Aufrufe

Portfolio

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Vivien Bardosi<br />

Svenja Dittrich<br />

Lukas Ponikowski<br />

<strong>Portfolio</strong><br />

Interface Design I & II<br />

Inhalt<br />

Einführung in die Arduino-Welt .............................................................................................................. 2<br />

Ideenfindung ........................................................................................................................................... 2<br />

Spielprinzip .............................................................................................................................................. 3<br />

Wer ist BMO? .......................................................................................................................................... 3<br />

Umsetzung .............................................................................................................................................. 4<br />

Resultat ................................................................................................................................................... 7<br />

Programmcode ....................................................................................................................................... 8<br />

Quellen .................................................................................................................................................... 9<br />

1


Einführung in die Arduino-Welt<br />

In den ersten Stunden des Blockseminars wurden wir mit dem Arduino Mikrocontroller vertraut<br />

gemacht und erhielten eine Einführung in ElektrSotechnik, in der wir mit Widerständen, LEDs und<br />

Servos umzugehen lernten. Mithilfe der Arduino Library for Processing wurde uns außerdem die<br />

Möglichkeit eröffnet, das Arduino-Board in der Programmiersprache Processing zu programmieren.<br />

So konnten wir bereits in den ersten Semestern erlangtes Wissen direkt auf das Blockseminar<br />

übertragen.<br />

Ideenfindung<br />

Kurz darauf galt es sich als Gruppe Gedanken über eine Projektidee zu machen. Das Arduino-Board<br />

sollte den Kern des Projekts darstellen. Bei der Ideenfindung haben wir großen Wert auf<br />

fortlaufende Interaktion mit dem Benutzer gelegt. Nachdem wir die Idee eines über Gamepads<br />

gesteuerten elektro-mechanischen Fußballkickers aufgrund der Umsetzbarkeit wieder verwarfen,<br />

hat sich das Geschicklichkeitsspiel „Heißer Draht“ als gute Idee erwiesen.<br />

2


Spielprinzip<br />

Beim „Heißen Draht“ geht es darum, einen Stab mit einer Drahtöse durch einen Parcours aus<br />

gebogenem Draht zu führen. Dabei darf die Öse den Draht nicht berühren. Der Einfachheit halber<br />

haben wir uns für die umgekehrte Variante entschieden, in der ein leitender Stab dauerhaft mit dem<br />

Draht verbunden sein muss. Wird der Draht los gelassen, ist das Spiel zu Ende.<br />

Wer ist BMO?<br />

Bei der gestalterischen Umsetzung unseres Projekts bedienten wir uns an<br />

der US-amerikanischen Zeichentrickserie „Adventure Time“, die seit 2010<br />

auf Cartoon Network ausgestrahlt wird. In der Serie wird neben den<br />

beiden Protagonisten Finn und Jake, ihre sprechende Videokonsole BMO<br />

(Beemo) thematisiert. BMO wurde programmiert, um Gefühle zu<br />

empfinden und Spaß verstehen zu können. Sie bildet die Vorlage für die<br />

Gestaltung unseres Projekts.<br />

3


Umsetzung<br />

Der Nachbau von BMO erfolgte mithilfe zweier Keilrahmen, die wir für das Gerüst verwendeten. Die<br />

Rahmen wurden auseinander gebaut, zu einem Holzgestell zusammen genagelt und anschließend<br />

mit dünnen MDF-Platten versehen.<br />

Mithilfe von Acrylfarbe haben wir der Konstruktion den passenden Anstrich in BMO-Optik verliehen.<br />

Die Level stickten wir mit dünnem Kupferdraht durch die MDF-Platte. Eingebaute Glühbirnen sollten<br />

dem Spieler signalisieren, in welchem Level er sich befindet.<br />

Beim Level-Design achteten wir auf einen angemessenen Schwierigkeitsgrad, indem wir Hindernisse<br />

einbauten. Mithilfe von Servos haben wir z.B. Abschnitte installiert, die auf und ab wippten. In<br />

4


gepflegter Adventure-Manier wurde außerdem ein Level umgesetzt, in dem es galt drei Schalter zu<br />

drücken, bevor man fortfahren konnte. Außerdem sollte der Spieler in einem in einem der Level den<br />

kleinen Mini-BMO mit einem am Stab befestigten Haken „retten“ und in einen dafür vorgesehenen<br />

Korb fallen lassen.<br />

Das Spiel integrierten wir daraufhin in das Display von BMO, von wo aus der Großteil der Interaktion<br />

mit dem Spieler stattfinden sollte.<br />

5


Als besondere Herausforderung hat sich das Kabelmanagement auf der Rückseite des Spielfelds<br />

herausgestellt. Um die vielen LEDs und Servos steuern zu können, sind eine Menge Kabel notwendig<br />

gewesen, die ebenfalls auf dem Steckboard untergebracht werden mussten.<br />

BMO wurde zuletzt noch um eine Vorrichtung erweitert, die das Spielfeld vor Spielbeginn verdeckte.<br />

Bei Münzeinwurf sollte diese Klappe dann mechanisch herunter gefahren werden. Aufgrund des<br />

knappen Zeitrahmens haben wir diese Idee allerdings nicht mehr im Programmcode umsetzen<br />

können. Insgesamt haben wir uns deshalb auf die wesentliche Spielfunktion beschränkt.<br />

6


Resultat<br />

7


Programmcode<br />

import org.firmata.*;<br />

import cc.arduino.*;<br />

import processing.serial.*;<br />

import cc.arduino.*;<br />

Arduino arduino;<br />

void setup()<br />

{<br />

size(360,200);<br />

arduino = new Arduino(this, "/dev/cu.usbmodem1411", 57600);<br />

}<br />

arduino.pinMode(9, Arduino.INPUT); // level 1<br />

arduino.pinMode(7, Arduino.INPUT); // level 2<br />

arduino.pinMode(8, Arduino.INPUT); // level 3<br />

arduino.pinMode(6, Arduino.INPUT); // level 4<br />

arduino.pinMode(3, Arduino.OUTPUT); // LED level 1<br />

arduino.pinMode(5, Arduino.OUTPUT); // LED level 2<br />

arduino.pinMode(4, Arduino.OUTPUT); // LED level 3<br />

arduino.pinMode(2, Arduino.OUTPUT); // LED level 4<br />

void draw()<br />

{<br />

}<br />

if (arduino.digitalRead(9) == 1){ // level 1<br />

arduino.digitalWrite(3, Arduino.HIGH); // LED level 1<br />

} else {<br />

arduino.digitalWrite(3, Arduino.LOW); // LED level 1<br />

}<br />

if (arduino.digitalRead(7) == 1){ // level 2<br />

arduino.digitalWrite(5, Arduino.HIGH); // LED level 2<br />

} else {<br />

arduino.digitalWrite(5, Arduino.LOW); // LED level 2<br />

}<br />

if (arduino.digitalRead(8) == 1){ // level 3<br />

arduino.digitalWrite(4, Arduino.HIGH); // LED level 3<br />

} else {<br />

arduino.digitalWrite(4, Arduino.LOW); // LED level 3<br />

}<br />

if (arduino.digitalRead(6) == 1){ // level 4<br />

arduino.digitalWrite(2, Arduino.HIGH); // LED level 4<br />

} else {<br />

arduino.digitalWrite(2, Arduino.LOW); // LED level 4<br />

}<br />

8


Quellen<br />

http://2.bp.blogspot.com/-<br />

o4bo40gAoHc/TkLLQ7UfDsI/AAAAAAAAAwM/jKf6irTi1Sc/s1600/beemo.png<br />

http://i1106.photobucket.com/albums/h376/masalya9940/beemo_dancing_by_norrlingd5afmpo_zps90296e75-1_zps208021b7-1_zps34ad7b87.jpg<br />

http://playground.arduino.cc/interfacing/processing<br />

http://de.adventuretime.wikia.com/wiki/BMO<br />

http://de.wikipedia.org/wiki/Adventure_Time_%E2%80%93_Abenteuerzeit_mit_Finn_und_Jake<br />

9

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!