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…

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