Wiki

Reso-nance numérique | Arts et cultures libres

Outils du site


Panneau latéral

projets:light-synth:accueil

Ceci est une ancienne révision du document !


light-synth

  • Porteur du projet : fenshu resonance
  • Date : 09/07/2017/ - …
  • Licence : CC-by-sa-3.0
  • Description : synthé qui marche avec la lumiere
  • Fichiers sources : mettre un lien
  • Lien : mettre un lien

Note d'intention

Synthé qui marche avec la lumiere : Plusieurs pistes sont possible, notamment en changeant les frequences des pwm avec library tone…

light-synth

Notes techniques

Guide pas à pas et conseil pour la réalisation du projet.

code simple pour library tone (2 led branché en 9 et 10):

#include <Tone.h>
Tone freq1;
Tone freq2;
 
void setup()
{
  freq1.begin(9);
  freq2.begin(10);
}
 
void loop()
{
freq1.play(10, 300);
freq2.play(100, 30);
}

Code pour communiquer avec puredata COMPORT (2 led branché en 9 et 10):

Patch puredata :


String inputString = "";   // chaine de caractères pour contenir les données
boolean stringComplete = false;  // pour savoir si la chaine est complète
String fct ="";
String arg="";
int index;

#include <Tone.h>
Tone freq1;
Tone freq2;

void setup() {
  Serial.begin(9600);     // port série
  freq1.begin(9);
  freq2.begin(10);
}

void loop() {
  if (stringComplete) {
    //Serial.println(inputString); 
    index = inputString.indexOf(' '); // on récupère la position du séparateur (l'espace " ")
    fct = inputString.substring(0,index); // on coupe la chaine en deux : la fonction et l'argument
    arg = inputString.substring(index,inputString.length());
    
    if (fct == "LED10") {
      freq2.play(arg.toInt(),300);
    }
    else if (fct == "LED9") {
      freq1.play(arg.toInt(),300);   
    }

    inputString = "";            // vide la chaine
    stringComplete = false;
  }
}

/*
  SerialEvent est déclenché quand de nouvelles données sont reçues. 
  Cett routine tourne entre chaque loop(), donc utiliser un delay la fait aussi attendre
 */
void serialEvent() {
  while (Serial.available()) {
    char inChar = (char)Serial.read(); // Récupérer le prochain octet (byte ou char)
    inputString += inChar; // concaténation des octets
    if (inChar == '\n') {  // caractère de fin pour notre chaine
      stringComplete = true;
    }
  }
}

Matériaux et outils

Liste de matériel et outils nécessaires.

Photos

Code pour afficher les images du projet :

{{gallery>?&crop&lightbox}}
/home/resonancg/www/wiki/data/attic/projets/light-synth/accueil.1499598668.txt.gz · Dernière modification: 2017/07/09 13:11 de resonance