Outils pour utilisateurs

Outils du site


wiki:flossmanuals:theremin:accueil

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
wiki:flossmanuals:theremin:accueil [2021/03/25 08:24]
tomaok02
wiki:flossmanuals:theremin:accueil [2021/05/23 19:58] (Version actuelle)
flora
Ligne 1: Ligne 1:
-====== Theremin ======+====== Théremine ======
  
-===== Un Capteur/Actionneur, une application ===== +  * Porteur(s) du projet : Flora Vander Poorte (DSAADG2), Damien MUTI (Prof. de Numérique)
-==== Capteur de distance : Thérémin ==== +
-  * Porteur(s) du projet : Flora Van Der Poort (DSAADG2), Damien MUTI (Prof. de Numérique)+
   * Date : 03/2021   * Date : 03/2021
   * Contexte : Macroprojet   * Contexte : Macroprojet
   * Fichiers :    * Fichiers : 
-    *  +  Liens : 
-  * Lien : +  * Capteurs Capteur de distance Ultrasonic Grove 
-    * +
  
-A remplir... +---- 
-===== Plusieurs Capteurs/Actionneurs, une application ===== + 
-==== Boîtier Interactif Apprendre la profondeur dans un tableau ==== +Pour faire un thérémine nous avons besoin de :  
-  * Porteur(sdu projet : Lise Irmann (DNMADE DG2), Damien MUTI (Prof. de Numérique+ 
-  * Date : 03/2021 +  * Carte Arduino Uno 
-  * Contexte : projet "Mallette pédagogiqueau Musée des Beaux Arts +  * Cable de branchement usb 
-  * Fichiers :  +  * Carte Seeduino  
-     +  * Capteur Grove Ultrasonic Ranger  
-  * Lien :+  * Fils de connexions 
 + 
 + 
 +Branchement de la carte :  
 + 
 +{{ :wiki:flossmanuals:theremin:165538734_891875244936260_1813560479436337167_n.jpg |}} 
 + 
 + 
 +Nous allons utiliser Arduino et Processing afin de réaliser notre Thérémine
 + 
 +Pour brancher la carte et commencer le programme, nous allons suivre ce tuto [[http://www.tonerkebab.fr/wiki/doku.php?id=wiki:tutoriels:arduino-capteurs:arduino-capteurs&s[]=grove|tuto capteur grove]].  
 + 
 + 
 +---- 
 + 
 + 
 +Faire un Thérémine avec le Leap Motion et Processing  
 + 
 +Le programme est assez facileil faut penser à télécharger les librairies : 
 + - sound  
 + - leap motion  
 + 
 +Ce programme permet de faire un thérémine similaire au vrai. Avec la main gauche vous allez pouvoir modifier le volume du son (horizontalement), et avec la main droite vous allez changer la hauteur du son (verticalement). Le programme permet une petite animation d'un fond coloré qui change en fonction des notes.  
 + 
 + 
 +==Voici le programme Processing :==   
 + 
 + 
 +<code> 
 +// Programme 2021  
 + 
 +import processing.sound.*; // librairie sound 
 +import de.voidplus.leapmotion.*; // libraire leap motion  
 + 
 +LeapMotion leap; 
 +Theremin leapTheremin; 
 + 
 +ArrayList<PVector> points;  
 +PVector handPos; // objet position main 
 + 
 +TriOsc tri; 
 + 
 +void setup () { 
 + 
 +  size(640,800); 
 + 
 +  leap new LeapMotion(this); 
 +  points new ArrayList<PVector>(); 
 + 
 +  tri new TriOsc(this);     
 + 
 +  leapTheremin new Theremin(tri); 
 + 
 +
 + 
 +void draw() { 
 + 
 +  leapTheremin.renderSound(); 
 + 
 +  for (Hand hand leap.getHands()) { 
 + 
 +      handPos hand.getPosition();  
 +      boolean handIsLeft hand.isLeft(); 
 +      boolean handIsRight hand.isRight(); 
 + 
 +      if (handPos.z <75) { 
 +       points = new ArrayList<PVector>()
 +       points.add(new PVector(handPos.x, handPos.y)); 
 +       background((handPos.x)/2.5,(width-handPos.x)/3,handPos.y-(height/3.5)); 
 +      } 
 + 
 +       if (hand.isRight()) {   //position de la main droite 
 +        leapTheremin.setPitch(); // objet change la hauteur  
 +   } 
 + 
 +      if (hand.isLeft()) { // position de la main gauche 
 +        leapTheremin.setVolume(); //objet change le volume  
 +      }    
 +   } 
 +
 + 
 +class Theremin { 
 + 
 +float freq; 
 +float amp; 
 +int sound; 
 + 
 +Theremin (TriOsc tri_g) { 
 + 
 +  setPitch(); 
 + 
 +  sound = 1; 
 + 
 +  tri = tri_g; 
 + 
 +
 + 
 +  void setPitch () { 
 + 
 +    for (int i = points.size()-1; i >= 0; i--) { 
 +    PVector p = points.get(i); 
 +    freq = map((height-handPos.y)+10, 0, height, 40, 880); //"antenne verticale", main qui contrôle la hauteur de la note 
 +    // la couleur s'associe avec la hauteur de la note - créer un dégradé  
 + 
 +    }    
 +  
 + 
 +  void setVolume() { 
 + 
 +    for (int i = points.size()-1; i >= 0; i--) { 
 +    PVector p = points.get(i); 
 +    amp = map(width-p.x, 0, width, 1, .01); //"antenne boucle", la main qui contrôle le volume 
 + 
 +    } 
 +  }
  
-A remplir...+  void renderSound() { 
 +    tri.freq(freq); 
 +    tri.amp(amp); 
 +    tri.play();
  
 +  }
 +}
 +</code>
  
  
wiki/flossmanuals/theremin/accueil.1616657075.txt.gz · Dernière modification: 2021/03/25 08:24 de tomaok02