Ci-dessous, les différences entre deux révisions de la page.
| 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 23:47] resonance [Exemples] |
projets:c12:accueil [2016/10/27 00:17] (Version actuelle) resonance [Description] |
||
|---|---|---|---|
| Ligne 11: | Ligne 11: | ||
| {{projets: | {{projets: | ||
| - | Contrôleur Midi DIY avec 12 touches. On utilise ici un module très simple | + | Contrôleur Midi DIY avec 12 touches. On utilise ici un module très pratique |
| - | ===== Matériaux | + | |
| - | * Arduino | + | ===== Matériel |
| - | * Module 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, |
| + | * Une planche | ||
| + | |||
| + | |||
| + | |||
| + | |||
| ===== Tutoriel ===== | ===== Tutoriel ===== | ||
| + | **Connectique** | ||
| + | {{: | ||
| + | |||
| + | <WRAP center round important 80%> | ||
| + | |||
| + | **Souder les composants** | ||
| + | {{: | ||
| + | |||
| + | **Couper les fils et souder les touches de scotch** | ||
| + | {{: | ||
| + | |||
| + | **On peut graver au laser sur le bois les bords des touches** | ||
| + | {{: | ||
| + | |||
| + | **Ta da !** | ||
| + | {{: | ||
| + | |||
| + | |||
| + | ==== Code ==== | ||
| + | * Convertir une UNO ou une Leonardo en contrôleur Midi comme expliquée ici sur la page [[logiciels: | ||
| + | * Télécharger et installer la bibliothèque permettant de communiquer avec le MP121 : [[https:// | ||
| + | * Téléverser le code Leonardo (pour une UNO il suffit de télécharger la bibliothèque MIDI et de remplacer les " | ||
| + | |||
| + | ++++ Code C12-Leonardo | | ||
| + | <code cpp> | ||
| + | /* | ||
| + | * Midi Controller with 12 capacitive sensors | ||
| + | * Hardware : Arduino Leonardo (TeeOnArdu) + MPR121 | ||
| + | * | ||
| + | * See more : http:// | ||
| + | | ||
| + | |||
| + | #include < | ||
| + | #include " | ||
| + | |||
| + | // Setup | ||
| + | Adafruit_MPR121 cap = Adafruit_MPR121(); | ||
| + | int touchCtl[] = {6, | ||
| + | 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)) ) { | ||
| + | | ||
| + | } | ||
| + | // if it *was* touched and now *isnt*, alert! | ||
| + | if (!(currtouched & _BV(i)) && (lasttouched & _BV(i)) ) { | ||
| + | | ||
| + | } | ||
| + | } | ||
| + | |||
| + | // reset our state | ||
| + | lasttouched = currtouched; | ||
| + | } | ||
| + | |||
| + | while (usbMIDI.read()) { | ||
| + | // ignore incoming messages | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | ++++ | ||
| + | |||
| + | ===== Utilisation ===== | ||
| + | Un exemple de réception dans Pure Data. Les capteurs envoient le nombre 127 s'ils sont touchés, sinon c'est 0. | ||
| + | {{: | ||
| ===== Exemples ===== | ===== Exemples ===== | ||