lightning over ... Design Strategien mit, f端r und durch Licht
FantaLab Arduino Workshop
Methodische Gestaltungs端bungen im 2. Studienjahr Industriedesign Burg Giebichenstein Kunsthochschule Halle Wintersemester 2015/16
lightning over ... Design Strategien mit, für und durch Licht
Arduino Workshop mit Max von Elverfeldt Liebe TeilnehmerInnen, am Montag startet unser fantastologisches Labor rund um das Thema Arduino, Elektronik und Physical Computing. In der nächsten Woche lernen wir gemeinsam Elektronik zu programmieren, zu hacken und werden eigene kleine Installationen erstellen. Hier noch die wichtigsten Infos vorab, damit wir mehr Zeit zum Basteln haben. Wir treffen uns Montag 10:00 in Eurem Projektraum. Bitte bringt dann einen Computer mit und installiert vorher die Arduino und die Teensy Software – in der Reihenfolge. 1 – Arduino Software https://www.arduino.cc/en/Main/Software 2 – Teensy Software https://www.pjrc.com/teensy/loader.html Wer einen Lötkolben besitzt, darf diesen gerne mitbringen. Kleine Aufgabe zu Montag: Viele Musikprogramme können mit der Tastatur gesteuert werden. Ein paar Beispiele dafür finden sich hier. http://www.hongkiat.com/blog/virtual-instrument-web-browser/ Jeder bringt bitte ein eigenes Beispiel für ein solches Musik programm mit. Soweit so gut. Ich freu mich sehr auf die Woche. Liebe Grüße, Max
3
4
mega Entwurf: Anna Wanitschke, Marc Wejda, Ulrike Silz
In unserem Arduino- Workshop haben wir eine Fahrradbeleuchtung mit System entwickelt: Sobald man sich bei Dunkelheit nahe am Fahrrad bewegt, schalten Lichtund Bewegungssensor das Vorderund Rücklicht ein. Beim Abbiegen können über die Druckknöpfe am Lenker Blinklichter aktiviert werden. Sobald man bremst, dimmt ein weiteres Rücklicht ein und falls jemand zu dicht auffährt, wandelt sich diese LED in ein Warnblinklicht um.
Lightning over – FantaLab / Arduino-Workshop
5
Die Bilder zeigen unteranderem den rechten Blinker (o.l.) am Linker und das eindimmende Bremslicht (o.r.) in der Testphase. Auf dem unteren Bild ist das Einbinden des Entfernungssensors in das System zu sehen.
6
mega Entwurf: Anna Wanitschke, Marc Wejda, Ulrike Silz
int vlicht = 12; //Licht Vorne int lichts = A1; //Licht Sensor int lichtsState = 0; //Status Licht int beweg = 3; //Bewegungssensor, vorher 0 int bewegState = 0; // //int distanz = 0; //Status Distanz unsigned int val = 0; int links1 = 4; //Blinker Links int ltaster = 5; //Taster Links int ltasterState = 0; //Status Taster Link int rechts1 = 19; //Blinker Rechts int rtaster = 18; //Taster Rechts int rtasterState = 0; //Status Taster Rechts int brems = A6; //Bremslicht int bremstaster1 = 9; //Taster Bremse1 int bremstaster2 = 8; //Taster Bremse 2 int bremstaster1State = 0; //Status Taster Bremse 1 int bremstaster2State = 0; //Status Taster Bremse 2 boolean bremsLeuchte = false; int rlicht1 = 6; //RLicht1 int rlicht2 = 3; // - „ int rlicht3 = 2; // - „ int rlicht4 = 1; // - „ int trig = 22; int echo = 21; long duration, distance; void setup() { // put your setup code here, to run once: pinMode (vlicht, OUTPUT); pinMode (lichts, INPUT); pinMode (beweg, INPUT); // pinMode (distanz, OUTPUT); pinMode (links1, OUTPUT); pinMode (ltaster, INPUT); pinMode (rechts1, OUTPUT); pinMode (rtaster, INPUT); pinMode (brems, OUTPUT); pinMode (bremstaster1, INPUT); pinMode (bremstaster2, INPUT); pinMode (rlicht1, OUTPUT); pinMode (rlicht2, OUTPUT); pinMode (rlicht3, OUTPUT); pinMode (rlicht4, OUTPUT); pinMode(trig, OUTPUT); pinMode(echo, INPUT); Serial.begin (9600); } void loop() {
//Lichtsensor lichtsState = analogRead (lichts); //Blinker links und rechts ltasterState = digitalRead(ltaster); rtasterState = digitalRead(rtaster); //Bewegungssensor bewegState = digitalRead(beweg); //Lichtsensor lichtsState = analogRead(lichts); //Bremslicht bremstaster1State = digitalRead (bremstaster1); bremstaster2State = digitalRead (bremstaster2); //Entfernungssensor digitalWrite(trig, LOW); delayMicroseconds(2); digitalWrite(trig, HIGH); delayMicroseconds(10); digitalWrite(trig, LOW); duration = pulseIn(echo, HIGH); distance = (duration / 2) / 29.4; if (distance >=100 || distance <=0){ Serial.println („out of range“); } else { Serial.print(distance); Serial.print(„cm“); } delay (100); //Ausgabe Serial.println(„ ---- EINGABEN -----“); Serial.print(„Lichtsensor: „); Serial.println(lichtsState); Serial.print(„Blinken Links: „); Serial.println(ltasterState); Serial.print(„Blinken Rechts: „); Serial.println(rtasterState); Serial.print(„Bremsen Links: „); Serial.println(bremstaster1State); Serial.print(„Bremsen Rechts: „); Serial.println(bremstaster2State); Serial.print(„Entfernung: „); Serial.println(distance); Serial.print(„Beweg: „); Serial.println(bewegState); //Bedingungen //Lichtsensor if (lichtsState >= 600 ) { //
Lightning over – FantaLab / Arduino-Workshop
//Vorderlicht, Bremslicht, Rücklicht allesAn(); if (ltasterState == LOW) { //Wenn..., dann blinkLinks(); } if (rtasterState == LOW) { //Wenn..., dann blinkRechts(); } if (bremstaster1State == LOW || bremstaster2State == LOW) { bremsLichtAn(); }
if (bremstaster1State == HIGH && bremstaster2State == HIGH) { bremsLichtAus(); } if (distance < 200 && bremsLeuchte != true) { bremsBlinker(); } } else { //...sonst allesAus(); } } void allesAn() { digitalWrite (vlicht, HIGH); digitalWrite (rlicht1, HIGH); digitalWrite (rlicht2, HIGH); digitalWrite (rlicht3, HIGH); digitalWrite (rlicht4, HIGH);
7
} void allesAus() { digitalWrite (links1, LOW); digitalWrite (rechts1, LOW); digitalWrite (ltaster, LOW); digitalWrite (vlicht, LOW); digitalWrite (rlicht1, LOW); digitalWrite (rlicht2, LOW); digitalWrite (rlicht3, LOW); digitalWrite (rlicht4, LOW); digitalWrite (brems, LOW); digitalWrite (links1, LOW); digitalWrite (rechts1, LOW); } void blinkLinks() { digitalWrite(links1, HIGH); delay(250); digitalWrite(links1, LOW); delay(250); } void blinkRechts() { digitalWrite(rechts1, HIGH); delay(250); digitalWrite(rechts1, LOW); delay(250); } void bremsLichtAn() { Serial.println(„bremsLichtAn“); if (bremsLeuchte == false) { for (int i = 0; i <= 255; i++) { analogWrite(brems, i); delay(5); } bremsLeuchte = true; } } void bremsLichtAus() { Serial.println(„bremsLichtAus“); if (bremsLeuchte == true) { for (int i = 255; i >= 0; i--) { analogWrite(brems, i); delay(5); } bremsLeuchte = false; } } void bremsBlinker() { analogWrite(brems, 255); delay(distance * 2); analogWrite(brems, 0); delay(distance * 2); }
8
Jumping Lights Entwurf: Jakob M端ller, und Luisa Krause
Lightning over â&#x20AC;&#x201C; FantaLab / Arduino-Workshop
9
10
Jumping Lights Entwurf: Jakob Müller und Luisa Krause
Licht. Interaktion. Spaß. Ein Spiel: Bei dieser Installation geht es um den Betrachter. // Hier kommt der besucher ins Spiel: Er gibt den Impuls, bedient mit seinem Körpereinsatz den Schalter: Ein Trampolin. Acht Scheinwerfer, Trampolin, Kabel, Relais, Sensoren ... Je nach Höhe und somit Intensität des Sprungs leuchten verschiedene Lampen, in vier Stufen. Hat man eine Höhenstufe erreicht, blinkt solange die jeweils nächste, bis auch diese Höhe erreicht ist. Gedacht ist dieses Spiel für zwei Personen, die jeweils auf einem Trampolin springen. Sie können gegeneinander oder auch miteinander spielen. Bei synchronem Springen der Spieler blinken die Leuchten und die Farben werden gewechselt.
Lightning over – FantaLab / Arduino-Workshop
11
Aufbau Arduino Quellcode int LightcolorPin1 = 14; int LightcolorPin1 = 15;
int LightcolorPin1 = 16; int LightcolorPin1 = 17;
int LightcolorPin1 = 18;
int LightcolorPin1 = 19;
int LightcolorPin1 = 20; int LightcolorPin1 = 21; int SensorPin1 = 8;
int SensorPin2 = 9; int RelayPin1 = 0; int RelayPin2 = 1;
int RelayPin3 = 2;
int RelayPin4 = 3; int RelayPin5 = 4;
int RelayPin6 = 5;
int RelayPin7 = 6; int RelayPin8 = 7; void setup() {
pinMode(RelayPin1, OUTPUT);
pinMode(RelayPin2, OUTPUT); pinMode(RelayPin3, OUTPUT);
pinMode(RelayPin4, OUTPUT); pinMode(RelayPin5, OUTPUT);
pinMode(RelayPin6, OUTPUT); pinMode(RelayPin7, OUTPUT);
pinMode(RelayPin8, OUTPUT);
pinMode(LightcolorPin1, OUTPUT);
pinMode(LightcolorPin2, OUTPUT); pinMode(LightcolorPin3, OUTPUT);
pinMode(LightcolorPin4, OUTPUT); pinMode(LightcolorPin5, OUTPUT);
pinMode(LightcolorPin6, OUTPUT); pinMode(LightcolorPin7, OUTPUT);
pinMode(LightcolorPin8, OUTPUT); pinMode(SensorPin1, INPUT); } {
pinMode(SensorPin2, INPUT); void loop() digitalWrite(RelayPin1, HIGH); delay(5000);
digitalWrite(RelayPin1, LOW); delay(5000);
digitalWrite(RelayPin1, HIGH); delay(5000);
digitalWrite(RelayPin1, LOW); }
delay(5000);
Gesteuert wird die Installation durch ein Arduino Uno Board. Dieses wertet die Daten der Entfernungsmesssensoren, die sich unter den Trampolin befinden, aus und schaltet, je nach gemessenem Wert die Relais. An diesen haben wir 100 Meter Stromkabel angeschlossen welches, in vier Etappen, zu den einzelnen Scheinwerfern führt. Durch die vorherige Programmierung des Arduino werden so je nach Entfernung der Sprungfläche zum Sensor die verschiedenen Leuchten ein- bzw. ausgeschaltet.
12
safecycle Entwurf: Honkgi Keam, Ruben Strahl
Innerhalb einer Woche lernten wir nicht nur mit dem arduinokompatiblen Teensy 3.2 umzugehen und ihn zu programmieren, sondern entwickelten zusätzlich ein damit gesteuertes Gerät. Unsere Idee war es, einen Handprojektor zu bauen, der mit Hilfe von Schüttelbewegungen und einigen Lasern Texte per POV1 auf beliebige Flächen projezieren könnte. Schnell wurde uns klar, dass es für die zwei vorhandenen Tage ein sehr ehrgeiziges Projekt war, weshalb wir Kompromisse bezüglich der Größe und Leichtigkeit eingingen und mit rotierenden Spiegeln arbeiteten. Da wir jedoch aus ungeklärten Gründen einen Laser nach dem anderen zerstörten, blieb uns letztendlich nichts anderes übrig, als ein alternatives Projekt zu verwirklichen. Aufgrund unseres gesammelten Wissens schafften wir es zügig mit zwei Abstandssensoren, dem Teensy und vier LEDs ein Näherungswarnsystem für Fahrräder umzusetzen. Rechts ist der Aufbau im Inneren der auf der nächsten Seite zu sehenden Hülle ersichtlich. Sobald sich ein Auto seitlich von hinten nähert leuchtet auf der jeweiligen Seite des Lenkers eine gelbe und bei kritischem Abstand eine rote LED. Die Funktion ist ähnlich, wie man es am Rückspiegel einiger Autos findet.
1
Persistence of vision (auf deutsch Nachbildwirkung) bezeichnet ein mangelhaftes zeitliches Auflösungsvermögen des menschlichen Auges. Es wird beispielsweise mit LEDs bei Handventilatoren angewendet.
Lightning over – FantaLab / Arduino-Workshop
13
Oft wird man als Radfahrer im Straßenverkehr von Autos abgedrängt oder haarscharf überholt. Unser Näherungswarnsystem meldet sich nähernde Fahrzeuge per LED am Lenker und warnt diese mit lautem Piepen vor der Kollisionsgefahr. Zuvor scheiterten wir aus diversen Gründen daran einen handlichen Laserprojektor zu entwickeln.
14
Pr채sentation
Lightning over â&#x20AC;&#x201C; FantaLab / Arduino-Workshop
15
links: Ultraschallsensoren und Teensygehäuse unten: LED-Anzeige am Lenker
16
Zickige Lampe Entwurf: Benno Brucksch, Magdalene Neynaber, Kevin Strüber
Eine Lampe mit Charakter. Einem programmierten Charakter. Sie braucht Nähe. Wenn sie diese nicht bekommt, geht sie langsam aus und überschüttet sich zu allem Überfluss auch noch mit schwarzer Farbe. Dass sie sich selbst wieder reinigt, kommt für sie aber nicht in Frage. Wer Licht haben will, muss ab jetzt ran an die Arbeit, oder aber die ganze Zeit der Lichtquelle die volle Aufmerksamkeit schenken.
Das Arduino Programm gepaart mit ein paar unzuverlässigen Hardwareteilen (Entfernungsmesser, Dimmer) resuliert in der Einzigartigkeit unserer zickigen Lampe.
Lightning over â&#x20AC;&#x201C; FantaLab / Arduino-Workshop
17
18
Multimeter Entwurf: Hauke Odendahl, Leopold Zaumseil
Der MultiMeter ist ein Messegrät, welches anhand der eintreffenden Daten eine abstrakt ästhetische Grafik zeichnet. Er macht Alltäglichkeiten sichtbar und auf bildlicher Ebene erfahrbar. Durch das leicht programmierbare Teensy können viele verschiedene Sensoren mit dem MultiMeter kombiniert werden. So kann das Gerät schnell an neue Situationen angepasst werden. Einfache Filzstifte übertragen durch vertikale und horizontale Bewegungen die Daten auf die Papierrolle. Diese bewegt sich für einen festgelegten Zeitraum kontinuierlich nach unten. Das entstandene Diagramm soll weniger eine wissenschaftliche Datenerhebung als viel mehr eine ästhetische Visualisierung von alltäglichen Daten sein. Es gibt einen visuellen Eindruck über das was an einem bestimmten Ort über einen gewissen Zeitraum hinweg passiert ist.
Lightning over â&#x20AC;&#x201C; FantaLab / Arduino-Workshop
19
Erste Entwurfszeichnungen
20
Licht, Bewegung, Ber端hrung.
Lightning over â&#x20AC;&#x201C; FantaLab / Arduino-Workshop
21
grafische Visualisierung der Messdaten
22
Lumensammler Entwurf: Marius M端hleisen, Max Stalter
Lightning over â&#x20AC;&#x201C; FantaLab / Arduino-Workshop
23
24
Lumensammler Entwurf: Marius M端hleisen, Max Stalter
Lightning over – FantaLab / Arduino-Workshop
25
linke Seite: Der Lumensammler in Aktion diese Seite: erste Tests des Programms
Der Lumensammler sammelt zusammen mit seinem Träger Sonnenlicht. Wenn man ihn nach oben klappt zeigen die LEDs an, wie viel Licht man an diesem Tag schon gesammelt hat. Am Ende des Tages zeigen die LEDs die Tagesbilanz an. Der Lumensammler verweist so darauf, genügend Sonnenlicht zu tanken. # QuantifiedSelf Der Lumensammler entstand während eines einwöchigen Einführungskurs in die Programmiersprache Arduino. Er besteht lediglich aus LEDs, einem Lichtwiderstand, einigen Widerständen, einem Kippschalter, Batterien und dem Arduino-Chip mit der Programmierung.
26
Glühwurm Entwurf: Paulina Gellert, Anna Herbert
Kann Technik Emotionen auslösen? Können wir emotionale Bindungen zu technischen Gegenständen entwickeln? Diese Fragen haben uns dazu inspiriert, einen interaktiven Leuchtkörper zu entwickeln, der auf unsere Bewegungen reagiert und zugleich auch einen gewissen Eigensinn aufweist.
Lightning over – FantaLab / Arduino-Workshop
27
Licht mit Charakter
Der Leuchtkörper reagiert auf eine sich nähernde oder zurückweichende Person. Die von einem Ultraschallsensor gemessene Entfernung gibt einen Befehl an den Motor um die Leuchte auf – oder abzuwickeln. Die Leuchte weicht zurück, versteckt sich, oder kommt neugierig auf dich zu. Sie spielt mit dir – bekommt einen eigenen Charakter.
Der technische Aufbau besteht aus einem Teensyboard, Ultraschallsensor und einem Motor. Der Leuchtkörper wurde aus einer alten Nähmaschinenglühbirne.
28
Impressum
lightning over ... Design Strategien mit, für und durch Licht Methodische Gestaltungsübungen im 2. Studienjahr Industriedesign Burg Giebichenstein Kunsthochschule Halle
Layout
Projektteilnehmer Texte, Fotos, Grafiken
Projektteilnehmer Projektbetreuung
Prof. Guido Englich Fynn Freyschmidt SolidWorks Workshop
Steffen Herm
Arduino Workshop
Max von Elverfeldt Premiere Workshop
Martin Schapp Studierende
Benno Brucksch, Paulina Gellert, Leonard Helm, Anna Herbert, Hongki Keam, Luisa Krause, Marius Mühleisen, Jakob Müller, Magdalene Neynaber, Hauke Odendahl, Ulrike Silz, Max Stalter, Ruben Strahl, Kevin Strüber, Anna Wanitschke, Marc Wejda, Leopold Zaumseil Herausgeber
id-neuwerk Design Education Research Prof. Guido Englich Burg Giebichichenstein Kunsthochschule Halle 2016
lightning over ... Design Strategien mit, f端r und durch Licht Methodische Gestaltungs端bungen im 2. Studienjahr Industriedesign Burg Giebichenstein Kunsthochschule Halle Wintersemester 2015/16