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):

On controle ainsi deux pins avec tone depuis Pure Data…

Patch puredata : voir fichier 4 dans la page ressource http://reso-nance.org/wiki/logiciels/serial/accueil?s[]=puredata&s[]=serial

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;
    }
  }
}

Boite a rythme a led

On fait clignoter 3 led a la noire, croche triolet, et on controle le temp avec un potentiometre et une photoresistance…

cliquer pour afficher le code

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.1500545953.txt.gz · Dernière modification: 2017/07/20 12:19 de resonance