Incom ist die Kommunikations-Plattform der Fachhochschule Potsdam

In seiner Funktionalität auf die Lehre in gestalterischen Studiengängen zugeschnitten... Schnittstelle für die moderne Lehre

Incom ist die Kommunikations-Plattform der Fachhochschule Potsdam mehr erfahren

Blockseminar Workshop mit Arduino, SoSe/2016

Blockseminar Workshop mit Arduino, SoSe/2016

In diesem Kurs ging es um das arbeiten mit aktuellen Physical–Computing Technologien, wie Arduino und P5js. Zum Abschluss baute jeder an einem eigenen kleinen Physical-Computing Prototypen. Für dieses Projekt wurde mit Arduino, einer selbstgebauten LED Matrix (200-LEDs) und einem gehackten Sega Controller ein kleines Computer Spiel gebaut.

Workshop Beschreibung

Die Interface-Werkstatt bündelt unterschiedliche Prototyping-Technologien. Zum einen können in der Werkstatt raumgreifende Interaktionskonzepte oder IOT Anwendungen entwickelt und mit Hilfe von aktuellen Physical-Computing Technologien wie z.B. Arduino, Fritzing oder Raspberry Pi umgesetzt werden. Darüber hinaus können Interessierte verschiedene stationäre und mobile Multitouch-Systemen für ihre Projekte einsetzen.

Phase 1 | JavaScript und P5js

In der ersten Phase des Kurses ging es erstmal darum alle Kursteilnehmer auf einen ähnlichen Wissensstand zu bringen. Begonnen wurde mit Variablen und es endete mit großen Funktionen und Schleifen. So manchem rauchte der Kopf am Ende des Tages.

Um das arbeiten mit JavaScript näher bringen, wurde als Hilfsmittel, um direkt ein visuelles Ergebnis zu haben die Java Script Library P5js verwendet. Dazu gab es kleine Aufgaben die gelöst werden mussten. Zwei Ergebnisse daraus sind hier als GIFs zu sehen.

Die Beispiele zeigen die Ergebnisse aus der P5js Übung zu „Bewegten Partikeln“ und „Loops mit Partikeln“. Sie sollte das arbeiten mit „Visical-Computing“ näher bringen.

P5-prozessing.gifP5-prozessing.gif
P5-prozessing02.gifP5-prozessing02.gif
movedPartikel.gifmovedPartikel.gif
partikel2.gifpartikel2.gif

Phase 2 | Arduino und Programmierung

Nach den ersten drei Tagen mit Java Script Code begannen wir mit dem Arduino Board zu arbeiten. Hier wurde gezeigt, wie dieses zu benutzen war und auch wie man lötete. Hinzukam wie das Arduino Board zu programmieren war.

Die Übungsaufgaben waren interessant und zeigten Basis Befehle, um später alleine mit dem Board arbeiten zu können. Dazu gehörten z.B. das Ansprechen einer LED oder das Empfangen von Signalen von Sensoren.

Diese Aufgaben hatten jetzt einen Schwierigkeitsfaktor mehr. Bei Fehlern konnte entweder, der Code falsch, oder die Drähte und Bauteile auf dem Arduino Board nicht richtig angeschlossen sein. Hier also immer besonders sorgfältig arbeiten.

Eine interessante Aufgabe war z.B. eine LED zum Leuchte zu bringen, wenn man über eine Fernbedienung ein Infrarot Signal sendete.

IMG_20160219_124122.jpgIMG_20160219_124122.jpg
IMG_20160219_124141.jpgIMG_20160219_124141.jpg

Phase 3 | Selbstständiges Projekt

Nachdem alle im Kurs in der ersten Woche mit P5js und Ardunio vertraut waren, ging es nun in der abschließenden Aufgabe darum ein eigenes Projekt mit Arduino oder P5js zu verwirklichen. Dieses sollte am Ende des Kurses mit einem funktionsfähigen Prototypen präsentiert werden. Es war möglich in einzel oder in Teamarbeit ein Projekt zu entwicklen.

Für dieses Projekt, bildete Jens und Sofia zusammen eine zweier Gruppe. Sofia fand die Idee mit LEDs zu arbeiten sehr interessant und hatte sich zu beginnen ein Tetris Spiel mit Arduino überlegt. Um mit LEDs zu arbeiten hatten wir durch die Übungen aus dem Kurs, Erfahrung sammeln können.

Um diese Idee mit dem Tetris Spiel zu verwirklichen, baute Sofia eine eigene LED Matrix über das Wochenende und suchte einen passenden Controller der leicht zu hacken war. Sie fand einen vom Hersteller Sega. Als weiteres Material wurde kein Arduino UNO sondern ein Arduino DOU benutzt, um die ausreichende Rechenleistung zu haben.

Bauprozess

Bild1.jpgBild1.jpg
Bild2.jpgBild2.jpg
Bild3.jpgBild3.jpg
Bild4.jpgBild4.jpg
Bild5.jpgBild5.jpg

Wenn Code auf ein Model trifft

Artboard 1.pngArtboard 1.png
Artboard 2.pngArtboard 2.png

Damit eine LED auf dem Board angesteuert werden kann, braucht jede LED Matrix eine x- und y-Koordinate. So auch dieses Model.

Die Herausforderung war jetzt, wie erzeugt man so ein Koordinaten System? Im Vorgefertigten Code vom Hersteller der LEDs gab es ein Beispiel auf das zugegriffen werden konnte, aber unser Model war leider anders aufgebaut. Die Anordnung der Lampen war aus Materialgründen in S-Kurven verbaut worden und nicht wie in der Anleitung. Auf Bild 2, sind die Bauvarianten A und B zu sehen. Wir hatten Variante B, da diese am Material schonendsten war.

Die Lösung um auf der Fläche etwa korrekt zu bewegen war Mathematik. Sofia schrieb einen mathematischen Algorithmus der dafür sorgte, dass die Anordnung jeder zweiten Vertikalen Reihe sich spiegelte und negativ anordnete. Damit konnte jetzt ein Koordinatensystem gebaut werden. Der Index dieser Matrix begann links unten in der Ecke mit x=0 und y=0.

Bis dahin hatten wir noch kein einziges mal eine LED getestet, es blieb also bis zum Schluss spannend, ob alle Kabel richtig war. Zur Erleichterung funktionierte es.

Anschließend wurde getestet, wie eine einzelne LED angesprochen und bewegt wurde. Zuerst bewegte sich ein kleines Quadrat nur von links nach rechts. Dann bewegte es sich im Kreis am Rand entlang. Anschließend experimentierten wir mit der Größe und der Farbe.

Dann kamen weitere Figuren hinzu, die sich gleichzeitig bewegten.

Der Zwischenstand nach zwei Tagen war, etwas bewegte sich und es konnte die Farbe beliebig ändern. Es fehlte jetzt nur das man mit dem Sega Controller eine Figur steuern konnte.

Hier für fand Sofia einen Code von einen gehackten Sega Controller passend für Arduino. Dann musste herausgefunden werden, an welchen Port die Kontakte und Anschlüsse kamen. Dies war knifflig, da es viele unterschiedliche Beispiele im Internet gab. Das passende Beispiel ist hier in der Doku festgehalten. Mit Klebeband wurden die passenden Kabel fixiert.

Für erste Bewegungsversuche brauchten wir nur: Up, Down, Right, Left. Für diese vier Richtungen brauchten wir 7 Anschlüsse zum Arduino Board.

Das fertige Ergebnis ist im GitHub Projekt zu finden.

Kontroller Hacking

SegaJoypadPinout_zpskpu3auvi.jpgSegaJoypadPinout_zpskpu3auvi.jpg
IMG_2993 Kopie.jpgIMG_2993 Kopie.jpg

Bild 1, Anleitung für die Anschlüsse am Sega Controller. Bild 2, Kabelsalat am Arduino Board.

Das Spiel "Frog"

Da wir leider nur 3 Tage zum fertigstellen des Prototypen hatten, musste ein anderes Spiel mit den vorhandenen Elementen gebaut werden. Wir hatten bis jetzt zwei Figuren die sich von selbst bewegten und eine gesteuerte Figur durch den Sega Controller.

So wurde aus dem geplanten Tetris unser Spiel Frog.

In Frog steuert man einen kleinen Frosch (grünes Quadrat) der die Straße überqueren möchte, ohne von den Autos (andere bewegende Quadrate) berührt zu werden. Bei einer Kollision würde das Spiel Reseten und neu starten.

Fazit

Der Kurs war lehrreich und spannend. Mit Arduino zu arbeiten war sehr interessant und anregend sich auch weiterhin nach dem Kurs mit Arduino zu beschäftigen. Mann muss aber auch sagen, dass ohne ein bisschen Programmierer Erfahrung zu haben der Kurs ansonsten sehr schwer wird.

Fachgruppe

Werkstattpraxis

Art des Projekts

Studienarbeit im ersten Studienabschnitt

Betreuung

foto: Fabian Morón Zirfas

Entstehungszeitraum

Sommersemester 2016

Keywords