Zum Inhalt springen
Anthrophobia

Anthrophobia – Licht- und Toninstallation – Ein Teensy-MIDI-Projekt

    Wir als Menschen interagieren mit Objekte aus sehr verschiedenen Gründen. Wir drücken den Schalter des Toasters herunter, um Weißbrot zu toasten, wir öffnen die Autotür, um zum Supermarkt zu fahren, wir drücken die Netflix-Taste, um unterhalten zu werden. Doch welchen Grund haben Objekte, um mit uns zu interagieren?

    Anthrophobia »The fear of People«beschäftigt sich genau mit dieser Frage. Es handelt sich um eine Licht- und Soundinstallation, die in der Dunkelheit schlummert und nicht gestört werden möchte. Nährt sich eine Person, reagiert sie aggressiv abweisend.

    So erhält das Objekt ein Wesensmerkmal und wird zum aktiven Darsteller.


    Sieh dir jetzt meinen neuen Arduino-Videokurs an: Jetzt ansehen!


    Funktionsweise

    Ein Infrarot-Entfernungssensor agiert als Input. Darüber wird dann das jeweilige Verhalten ausgelöst. Hierbei Leuchten die LEDs oder Lampen unterschiedlich auf und es wird per USB-Midi ein Midi-Signal an einen Computer oder Synthesizer gesendet.

    Bauteile

    Schaltplan

    Schaltung 1 zur Verwendung von LEDs.
    Schaltung 2 für 12V Lampen mit externem Netzteil. Die Lampen werden an die Schraubklemmen angeschlossen.

    Code

    /* Code für Anthrophobia – ein Teensy 3.2 MIDI-Interface */
    
    int theLedPins[] = {2,3,4,5,6,7};     // wo sind die LEDs angeschlossen
    int theNotes[] = {52,52,52,52,52,52,90,53};   // definiert, welche Noten gespielt werden
    int numOfLeds = 6;
    int sensorPin = A1;                   // wo ist der Sensor angeschlossen
    
    int myThresholds[] = {200,300};       // Stufen, an denen die Installation reagiert
    
    void setup() {
      Serial.begin(9600);
      for (int i=0; i<numOfLeds; i++){
        pinMode(theLedPins[i], OUTPUT);   // Leds als Output deklarieren
      }
    }
    
    
    void loop() {
      int myValue = analogRead(A1);  // auslesen des Sensors
    
      zeigeSensorwert(myValue); // zeigt Sensorwert als Textzeichen im Seriellen Monitor
      
      if (myValue < myThresholds[0]){
        Serial.println("Attractor Mode");
        if (random(100)%5==0){
          int theLED=random(6);
          digitalWrite(theLedPins[theLED], HIGH);
          usbMIDI.sendNoteOn(theNotes[theLED], 127, 1);
          delay(20);
          usbMIDI.sendNoteOff(theNotes[theLED], 127, 1);
          digitalWrite(theLedPins[theLED], LOW);  
        }
      } else if (myValue < myThresholds[1]){
        Serial.println("Detect Mode");
        usbMIDI.sendNoteOn(theNotes[6], 127, 1);
        for (int i=0; i<6; i++){
          digitalWrite(theLedPins[i], HIGH);
        }
        delay(1000);
        for (int i=0; i<6; i++){
          digitalWrite(theLedPins[i], LOW);
        }
        usbMIDI.sendNoteOff(theNotes[6], 127, 1);
        delay(random(5000));
      } else {
        Serial.println("Defense Mode");
        if (random(100)%5==0){
          int theLED1=random(6);
          int theLED2=random(6);
          while (theLED1==theLED2){
            theLED2=random(6);  
          }
          digitalWrite(theLedPins[theLED1], HIGH);
          digitalWrite(theLedPins[theLED2], HIGH);
          usbMIDI.sendNoteOn(theNotes[7], 127, 1);
          delay(random(500)+100);
          usbMIDI.sendNoteOff(theNotes[7], 127, 1);
          digitalWrite(theLedPins[theLED1], LOW);
          digitalWrite(theLedPins[theLED2], LOW);  
        }
      }
    
      delay(100);
    }
    
    
    void zeigeSensorwert(int theValue){
      Serial.print(theValue);Serial.print("\t");
      for (int i=0; i<theValue; i+=10){
        Serial.print('*');
      }
      Serial.println();  
    }

    Dieses Projekt ist von Paul Svoboda entwickelt worden, der es StartHardware freundlicherweise zur Verfügung gestellt hat. 

    Hier geht es zur Projektwebsite.


    Wenn dir das Projekt gefallen hat und du von weiteren interessanten Projekten inspiriert werden willst, sieh dir doch mal mein neues E-Book »Arduino Projekte Volume 1« an!

    • Die beliebtesten Arduino-Projekte von StartHardware
    • Inklusive Schaltplan, Beschreibung und Code
    • Arduino-Schnellstart-Kapitel
    • Kompakter Programmierkurs


    2 Gedanken zu „Anthrophobia – Licht- und Toninstallation – Ein Teensy-MIDI-Projekt“

    1. Also so wie in Bild 2 dargestellt, dürfte der Teensy bei Anschluss des externen Netzteils mit 12V gleich in Rauch aufgehen, denn der verträgt in der Version 3.2 lediglich 5V. Also das sollte vielleicht mal korrigiert werden. Und dann vermisse ich die Klangerzeugung, also weder bei der Hardware noch im Programm wird darauf eingegangen, obwohl das in der Projektbeschreibung explizit drin steht.
      Wäre schön, wenn mir das mal jemand erklären könnte. Danke

      1. Hallo Lupin, danke für deine Frage. 12 Volt wären für das Teensy wirklich zu viel. In der Schaltung werden mit den 12 V nur die Lampen aus Schaltung 2 betrieben. Das Teensy läuft weiterhin per USB. Die Klangerzeugung passiert per USB-Midi mittels einer Synthesizer-Software (z. B. Garage-Band, Ableton Live, Logic). Das habe ich jetzt alles noch mal explizit dazu geschrieben und auch den Projekttitel angepasst. Danke für deinen Hinweis und alles Gute, Stefan

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

     

    Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.