Wiki

Reso-nance numérique | Arts et cultures libres

Outils du site


projets:c12:accueil

Différences

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

Lien vers cette vue comparative

Prochaine révision
Révision précédente
projets:c12:accueil [2016/10/26 22:21]
resonance Créé depuis le formulaire projets:creer
projets:c12:accueil [2016/10/27 00:17] (Version actuelle)
resonance [Description]
Ligne 1: Ligne 1:
 ====== C12 ====== ====== C12 ======
   * Porteur du projet : Jérôme [[:user:resonance|resonance]]   * Porteur du projet : Jérôme [[:user:resonance|resonance]]
-  * Date : 26/10/2016/ - ...+  * Date : 26/10/2016
   * Licence : [[http://creativecommons.org/licenses/by-sa/3.0/legalcode|CC-by-sa-3.0]]   * Licence : [[http://creativecommons.org/licenses/by-sa/3.0/legalcode|CC-by-sa-3.0]]
-  * Description : Contrôleur Midi DIY avec 12 touches  +  * Description : Contrôleur Midi DIY avec 12 touches 
-  * Fichiers sources : //mettre un lien// +  * Fichiers sources : {{:projets:c12:c12_files.zip|}}
-  * Lien //mettre un lien//+
  
 {{tag>midi, arduino, diy, controleur}} {{tag>midi, arduino, diy, controleur}}
  
 ===== Description ===== ===== Description =====
-Contrôleur Midi DIY avec 12 touches  
- 
 {{projets:c12:accueil:dsc_6741.jpg?800|C12}} {{projets:c12:accueil:dsc_6741.jpg?800|C12}}
  
-===== Matériaux ===== +Contrôleur Midi DIY avec 12 touches. On utilise ici un module très pratique à connecter à l'Arduino, le module MPR121 qui permet de capter des zones par effet capacitif. Grâce à cet effet, n'importe quelle matière un peu conductrice peut devenir un bouton par exemple. C'est l'exemple connu des interfaces Makey Makey. On a ainsi un contrôleur MIDI vraiment pas cher et très personnalisable.  
-Liste de matériel et composants nécessaires.+ 
 + 
 +===== Matériel ===== 
 +  * Arduino 
 +  * Module MPR121  
 +  * Scotch aluminium ou cuivre 
 +  * Matériels de prototypage : plaque, soudure, des fils, connecteurs, ... 
 +  * Une planche 
 + 
 + 
 + 
 + 
  
 ===== Tutoriel ===== ===== Tutoriel =====
-Guide pas à pas pour la réalisation du projet.+**Connectique** 
 +{{:projets:c12:mpr12-wiring.png?600|}} 
 + 
 +<WRAP center round important 80%>Attention, sur une Leonardo les pins SDA et SCL sont respectivement les sorties numériques D2 et D3, et non pas A4 et A5 comme pour une UNO.</WRAP> 
 + 
 +**Souder les composants** 
 +{{:projets:c12:dsc_6736.jpg?600|}} 
 + 
 +**Couper les fils et souder les touches de scotch** 
 +{{:projets:c12:dsc_6737.jpg?600|}} 
 + 
 +**On peut graver au laser sur le bois les bords des touches** 
 +{{:projets:c12:c12-layout.png?600|}} 
 + 
 +**Ta da !** 
 +{{:projets:c12:dsc_6743.jpg?600|}} 
 + 
 + 
 +==== Code ==== 
 +  * Convertir une UNO ou une Leonardo en contrôleur Midi comme expliquée ici sur la page [[logiciels:arduino-midi:accueil|Arduino et MIDI]] 
 +  * Télécharger et installer la bibliothèque permettant de communiquer avec le MP121 : [[https://github.com/adafruit/Adafruit_MPR121|Adafruit_MPR121]] 
 +  * Téléverser le code Leonardo (pour une UNO il suffit de télécharger la bibliothèque MIDI et de remplacer les "usbMIDI" par "MIDI"
 + 
 +++++ Code C12-Leonardo | 
 +<code cpp> 
 +/* 
 + * Midi Controller with 12 capacitive sensors 
 + * Hardware : Arduino Leonardo (TeeOnArdu) + MPR121 
 + * 
 + * See more : http://reso-nance.org/wiki/projet/c12/ 
 + */  
 + 
 +#include <Wire.h> 
 +#include "Adafruit_MPR121.h" 
 + 
 +// Setup 
 +Adafruit_MPR121 cap = Adafruit_MPR121(); 
 +int touchCtl[] = {6,11,12,3,4,9,10,1,2,7,8,5}; // midi note in mapping 
 +const int channel = 1; // midi channel 
 +uint16_t lasttouched = 0; 
 +uint16_t currtouched = 0; 
 +elapsedMillis msec = 0; 
 + 
 +void setup() { 
 +  if (!cap.begin(0x5A)) { 
 +    while (1); 
 +  } 
 +
 + 
 +void loop() { 
 +  if (msec >= 20) { // sampling rate 
 +    msec = 0; 
 +    currtouched = cap.touched(); 
 +    for (uint8_t i=0; i<12; i++) { 
 +        // it if *is* touched and *wasnt* touched before, alert! 
 +        if ((currtouched & _BV(i)) && !(lasttouched & _BV(i)) ) { 
 +           usbMIDI.sendControlChange(touchCtl[i], 127, channel); 
 +        } 
 +        // if it *was* touched and now *isnt*, alert! 
 +        if (!(currtouched & _BV(i)) && (lasttouched & _BV(i)) ) { 
 +           usbMIDI.sendControlChange(touchCtl[i], 0, channel); 
 +        } 
 +    } 
 + 
 +    // reset our state 
 +    lasttouched = currtouched; 
 +  } 
 + 
 +  while (usbMIDI.read()) { 
 +    // ignore incoming messages 
 +  } 
 +
 +</code> 
 +++++ 
 + 
 + 
 +===== Utilisation ===== 
 +Un exemple de réception dans Pure Data. Les capteurs envoient le nombre 127 s'ils sont touchés, sinon c'est 0. 
 +{{:projets:c12:c12-pd.png|}} 
 + 
 +===== Exemples ===== 
 +{{youtube>DxWZUTnEvhs?medium}} 
 + 
 +[[https://learn.adafruit.com/metal-inlay-capacitive-touch-buttons|{{:projets:c12:screen-shot-2015-03-13-at-11.10.05-am.png?400|}}]]  
 +[[https://learn.adafruit.com/metal-inlay-capacitive-touch-buttons|metal-inlay-capacitive-touch-buttons]]
  
 ===== Photos ===== ===== Photos =====
-Code pour afficher les images du projet : + 
-<code>{{gallery>?&crop&lightbox}}</code>+{{gallery>?&crop&lightbox}}
  
  
  
/home/resonancg/www/wiki/data/attic/projets/c12/accueil.1477513277.txt.gz · Dernière modification: 2016/10/26 22:21 de resonance