Direkt zum Hauptinhalt

MidiFlower - Musik mit Pflanzen

Wir haben im Juli 2025 ein Kit für eine MidiFlower erhalten. Basierend auf der französischen Originaldokumentation hier eine eingedeutschte Kopie:

Capteur_BioData_pour_ESP32_-_PCB_MidiFlower_cablage_midiflower_1_.png

Schritt 1 - Anschließen des ESP32 an den Sensor

  • Verbinden von GND vom Sensor mit einem GND-Pin des ESP32
  • Verbinden von 5V des Sensors mit einem 5V-Pin des ESP32
  • Verbinden von 3,3V- oder 2,5V-Pin des Sensors mit dem GPIO18-Pin des ESP32
  • Verbinden der Pflanze mit dem Anschluss des Sensors, der einen Baum darstellt

Schritt 2 - Programmierung des ESP32

Sie können das vorherige Tutorial fortsetzen, in dem angegeben ist, wie Sie das Programm in den ESP32 hochladen können

2 verschiedene Programme für ESP32 finden sich hier:

Eine Verwendung mit dem neuen Raspberry PI PICO findet sich hier:

Weitere Projekte, die die Verwendung des Sensors veranschaulichen, finden sich ebenfalls hier:

Far-Feuille-Eu – Durch die elektrische Aktivität einer Pflanze erzeugte Schall- und Lichtwellen

Quelle: Far-Feuille-Eu - Son et lumière généré par l'activité électrique d'une plante

3D-Druck Dateien

Schritt 1 – Biodata-Sensor bauen

Je nach Ihrer Erfahrung benötigen Sie zwischen einer Stunde und einem halben Tag, um den Biodatensensor zusammenzubauen, zu testen und in Betrieb zu nehmen, mit dem jede Bluetooth-Synthesizer-Anwendung mit einer Pflanze verbunden werden kann.

 

Beginnen Sie mit der Anleitung von Stéphane Godin und bauen Sie diesen Sensor.

Schritt 2 – Starten Sie den 3D-Druck

Mesurez votre pot de fleur et les dimensions nécessaires pour pouvoir intégrer votre plante, puis allez chercher le fichier pour le socle, et le fichier pour le dôme.

Passen Sie die Abmessungen und die Ausrichtung an, um zwei Ausdrucke vorzubereiten. Der Sockel kann im Vergleich zu den anderen Abmessungen X und Y um 50 % in der Z-Achse verkleinert werden, um das Modell zu „verdichten”. Der Druckvorgang kann sehr lange dauern. Die Volumen sind relativ dünn, sodass Sie eine hohe Füllrate (>50 %) festlegen können. Starten oder planen Sie Ihre 3D-Drucke und fahren Sie mit dem Rest dieses Tutorials fort.

Schritt 3 – Fertigen Sie die Reflektoren an

Sie benötigen eine Schere, Klebestift und Aluminiumfolie. Schneiden Sie kleine Streifen aus, die den Mustern des Sockels folgen.bHier hat das Team von Far-Feuille-Eu auch einen Rand am unteren Rand der Kuppel angebracht, ähnlich einem reflektierenden „Saturnring”. Kartonbasis und Aluminiumfolie. Kleben Sie Ihre Reflektoren sorgfältig in die Rillen des Sockels. Sie können auch versuchen, einen reflektierenden Ring am unteren Rand der Kuppel anzubringen.

grafik.png

Schritt 4 – Löten und verbinden Sie die RGB-LEDs

Wie im Quellcode von Schritt 5 zu sehen ist, müssen die RGB-LEDs an die nummerierten Pins des ESP32 Controllers angeschlossen werden. Es müssen jedoch auch drei mit drei RGB-LEDs verlötete Bänder hergestellt werden, die an die ESP32-Karte angeschlossen werden. Dies kann anhand der Prototyping-Platine erfolgen, die zur Herstellung des Biodatensensors verwendet wird.

Auf dem Prototyping-Board muss ein Widerstand von 220 K pro Farbstift auf RGB-LEDs vorgesehen werden. Die Masse der LEDs ist mit GND des ESP32 verbunden. Diese Anleitung kann Ihnen helfen, wenn Sie noch nie eine RGB-LED an einen Arduino angeschlossen haben.

Die drei LEDs dieses Prototyps sind wie folgt verdrahtet:

#define PIN1_RED 25 // GIOP25
#define PIN1_GREEN 26 // GIOP26
#define PIN1_BLUE 27 // GIOP27
#define PIN2_RED 35 // GIOP35
#define PIN2_GREEN 32 // GIOP32
#define PIN2_BLUE 33 // GIOP33
#define PIN3_RED 36 // GIOP36
#define PIN3_GREEN 39 // GIOP39
#define PIN3_BLUE 34 // GIOP34

Wenn Sie die Anleitung zur Herstellung des Sensors von Stéphane Godin befolgt haben, verwenden Sie dasselbe ESP32-wroom-Modul. Das letzte Bild zeigt Ihnen, wo Sie Ihre LEDs anschließen müssen. Sie können alle Massen der LEDs mit der Masse (GND) der ESP32-Karte verbinden. Anschließend können Sie Tests durchführen, müssen aber noch Ihre LED-Bänder in die Kuppelstruktur integrieren, beispielsweise mit Klebeband.

Wenn Ihnen das gelingt, haben Sie die Kuppel der Far-Feuille-Eu gebaut!

grafik.png grafik.png

Schritt 5 – Arduino Quellcode integrieren und ESP32-Modul flashen

Nachfolgend finden Sie den von Jacques während des Hackathons entwickelten Quellcode.

Sie können diese .ino-Datei auch herunterladen und mit der Arduino-Software öffnen, wobei Sie dieselben Einstellungen wie in der Anleitung von Stéphane Godin verwenden, und sie dann an den ESP32 zu laden.

#define PIN1_RED 25 // GIOP25
#define PIN1_GREEN 26 // GIOP26
#define PIN1_BLUE 27 // GIOP27
#define PIN2_RED 35 // GIOP35
#define PIN2_GREEN 32 // GIOP32
#define PIN2_BLUE 33 // GIOP33
#define PIN3_RED 36 // GIOP36
#define PIN3_GREEN 39 // GIOP39
#define PIN3_BLUE 34 // GIOP34

#define R_channel 0
#define G_channel 1
#define B_channel 2

#define pwm_frequency 5000 // frequence pwm
#define pwm_resolution 8 // 8 bit resolution

//##############################
void setup()
{
  pinMode(PIN1_RED,   OUTPUT);
  pinMode(PIN1_GREEN, OUTPUT);
  pinMode(PIN1_BLUE,  OUTPUT);

  pinMode(PIN2_RED,   OUTPUT);
  pinMode(PIN2_GREEN, OUTPUT);
  pinMode(PIN2_BLUE,  OUTPUT);

  pinMode(PIN3_RED,   OUTPUT);
  pinMode(PIN3_GREEN, OUTPUT);
  pinMode(PIN3_BLUE,  OUTPUT);


  ledcAttachPin (PIN1_RED, R_channel);
  ledcAttachPin (PIN1_GREEN, G_channel);
  ledcAttachPin (PIN1_BLUE, B_channel);

  ledcAttachPin (PIN2_RED, R_channel);
  ledcAttachPin (PIN2_GREEN, G_channel);
  ledcAttachPin (PIN2_BLUE, B_channel);
  
  ledcAttachPin (PIN3_RED, R_channel);
  ledcAttachPin (PIN3_GREEN, G_channel);
  ledcAttachPin (PIN3_BLUE, B_channel);
  
  ledcSetup(R_channel, pwm_frequency,pwm_resolution);
  ledcSetup(G_channel, pwm_frequency,pwm_resolution);
  ledcSetup(B_channel, pwm_frequency,pwm_resolution);

}

void loop()
{
          //Correspondance des frequences des notes en hertz (octave à 0) et la couleurs
          Serial.println (note.value); 
          if (note.value == 36) //Do
          {
          setColor(237, 0, 0); // RGB_Ecarlate
          }
          else if (note.value == 37) //Do# 
          {
          setColor(255, 0, 0); //RGB rouge
          }
          else if (note.value == 38) //Ré_Orange
          {
          setColor(255, 165, 0); //RGB_Ornage
          }
          else if (note.value == 39) //Ré#_Jaune
          {
          setColor(255, 255, 0); //RGB_Jaune
          }
          else if (note.value == 40) //Mi_Citron 
          {
          setColor(0, 255, 0); //RGB_Citron
          }
          else if (note.value == 41) //Fa_Vert
          {
          setColor(0, 128, 0); //RGB_Vert
          }
          else if (note.value == 42) //Fa#_Turquoise
          {
          setColor(0, 206, 209); //RGB_Turquoise
          }
          else if (note.value == 43) //Sol
          {
          setColor(0, 255, 255); //RGB_Cyan
          }
          else if (note.value == 44) //Sol#_Indigo 
          {
          setColor(75, 0, 130); //RGB_Indigo
          }
          else if (note.value == 45) //La_Bleu
          {
          setColor(0, 0, 255); //RGB_Bleu
          }
          else if (note.value == 46) //La#_Pourpre 
          {
          setColor(176, 224, 230); //RGB_Pourpre
          }
          else if (note.value == 47) //Si
          {
          setColor(255, 0, 255); //RGB_Mangenta
          }
 }

void setColor(int R, int G, int B) 
{
ledcWrite(R_channel,R);
ledcWrite(G_channel,G);
ledcWrite(B_channel,B);

}

Schritt 6 – Ton- und Lichttests

  1. Sie müssen auf einem Mobiltelefon mit Bluetooth eine kostenlose Synthesizer-App installieren. Zum Beispiel Garage Band für iPhone oder Midi Synth für Android.
  2. Aktivieren Sie dann Bluetooth in den Einstellungen Ihres Smartphones.
  3. Starten Sie schließlich die Synthesizer-App und aktivieren Sie die Auswahl einer Bluetooth-Midi-Quelle.
  4. Wählen Sie „far-feuille-eu”. Sie sollten nun mit der MIDI-Quelle verbunden sein und den Klang der Pflanze hören können.
  5. Durch die Einstellung der Klänge, die den MIDI-Kanälen 1 bis 3 zugewiesen sind, mit dem Synthesizer können Sie die Atmosphäre stark beeinflussen. Die Noten und der Rhythmus werden durch den Arduino-Quellcode definiert.