LightBall

Aus toolbox_interaktion
Wechseln zu: Navigation, Suche

Idee


Die Grundidee unserer Gruppe war, ein Spiel zu entwickeln in dem man mit einem Movinghead einen Lichtstrahl auf die Wand projiziert, der sich wie ein Ball verhält. Dieser kann mit Sensoren die als interaktive Schläger agieren zusammenarbeiten. Wenn die Sensoren auf den Lichtstrahl treffen begibt sich der Ball in einem Bogen auf die andere Seite des Spielfeldes.


Der Spielaufbau:


LightBall Spielaufbau.jpg


Erste Ansätze


Die ersten Schritte bestanden aus dem Versuch alle einzelnen Komponenten in so wenig Umgebungen wie möglich zu verbinden damit die Arbeit möglichst unkompliziert gestaltet werden kann. Auf Empfehlung eines Komillitonen fiel die Wahl schließlich auf Eclipse, EyesWeb und DMXControl.

Die Grundidee lag darin, durch den Einsatz von Infrarotsensoren ein schwarzes Bild zu bekommen auf dem die Infrarot-Leuchten weiß abgebildet werden. Von diesen weißen Punkten wollten wir die X- und Y-Koordinate berechnen um diese über OSC unseren Programmcode zu senden.


Hier unsere Grundidee als UseCase-Diagramm:


LightBall UseCase.jpg


Der Technische Aufbau:


LightBall Technik.jpg


Umsetzung


Begonnen haben wir mit einem Framegrabber (Kameratyp über Optionen von Webcam auf Infrarot-Kamera ändern) dessen Bild wir erst von RGB auf schwarz-weiß wandeln. Dies ist nötig damit wir das Bild anschließend binarisieren können. Mit den Patches „Blobs“ und „SelectBlob“ wird jetzt der größte abgeschlossene Bereich, in diesem Fall unsere Infrarot-LEDs, selektiert und mit dem Patch „DrawBlobs“ auf dem Bild erzeugt. Von diesem „Blob“ lassen wir uns nun den Schwerpunkt ausgeben und zerlegen diesen in seine X- und Y-Koordinate, die wir dann in OSC einspeisen.

Hier unsere EyesWeb Umsetzung:

LightBall eyesweb.jpg


Eyesweb-Patch


Hier die Umsetzung der Spielelogik und OSC-Schnittstellen in Eclipse:

Code


Der Moving Head wir über ein per USB an den Rechner angeschlossenes DMX-Interface gesteuert. Hierfür sind zwei Kanäle am Moving Head („Pan“ und „Tilt“ = Drehung auf zwei Achsen) verantwortlich. Eine DMX-Steuerungs-Software setzt die vom Java-Programm stammenden OSC Daten in Daten um, die der Moving Head versteht. So hat jede X- und Y-Position des Balls auf dem Spielfeld einen bestimmten Wert von „Pan“ und „Tilt“ im Moving Head. Diese Umrechnung konnten wir leider nicht mehr umsetzen, da es uns an Zeit gefehlt hat, eine OSC-Sender zu programmieren, der die Daten passend an die DMX-Software schickt.


Die Umsetzung von DMX:


LightBall DMX.jpg


Fazit


- Das Spielprinzip genauer formulieren um Missverständnissen vorzubeugen

- Mehrere Zwischenziele festlegen

- Bessere Absprache der Aufgaben, um doppeltes Arbeiten zu vermeiden