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

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
projets:c12:accueil [2016/10/26 22:55]
resonance [Tutoriel]
projets:c12:accueil [2016/10/27 00:17] (Version actuelle)
resonance [Description]
Ligne 11: Ligne 11:
 {{projets:c12:accueil:dsc_6741.jpg?800|C12}} {{projets:c12:accueil:dsc_6741.jpg?800|C12}}
  
-Contrôleur Midi DIY avec 12 touches. On utilise ici un module très simple à connecter à l'Arduino, le module MPR121 qui permet de +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. 
  
-===== Matériaux ===== + 
-  * Arduino UNO ou Leonardo que l'on convertit en contrôleur Midi, voir la méthode expliquée ici +===== Matériel ===== 
-  * Module MPR121 / https://github.com/adafruit/Adafruit_MPR121+  * Arduino 
 +  * Module MPR121 
   * Scotch aluminium ou cuivre   * Scotch aluminium ou cuivre
-  * Matériels de prototypage : plaque, soudure, fils, connecteurs, ...+  * Matériels de prototypage : plaque, soudure, des fils, connecteurs, ... 
 +  * Une planche 
 + 
 + 
 + 
 + 
  
 ===== Tutoriel ===== ===== Tutoriel =====
 +**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 ===== ===== Exemples =====
 {{youtube>DxWZUTnEvhs?medium}} {{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 =====
/home/resonancg/www/wiki/data/attic/projets/c12/accueil.1477515349.txt.gz · Dernière modification: 2016/10/26 22:55 de resonance