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 | ||
logiciels:arduino-midi:accueil [2016/06/24 18:25] resonance [Flash atmega16u2] |
logiciels:arduino-midi:accueil [2016/10/25 19:04] (Version actuelle) resonance [1 - Installer TeensyDuino] |
||
---|---|---|---|
Ligne 3: | Ligne 3: | ||
Cette page est destinée à faire comprendre comment faire apparaître la carte Arduino comme un appareil midi via USB. Cette fonctionnalité est très utile car elle permet d' | Cette page est destinée à faire comprendre comment faire apparaître la carte Arduino comme un appareil midi via USB. Cette fonctionnalité est très utile car elle permet d' | ||
- | Seules les cartes | + | Seules les cartes |
+ | ===== Arduino Uno Midi ===== | ||
Ressources : | Ressources : | ||
* https:// | * https:// | ||
+ | * http:// | ||
* http:// | * http:// | ||
* https:// | * https:// | ||
Ligne 14: | Ligne 15: | ||
* https:// | * https:// | ||
- | ===== DFU-PROGRAMMER ===== | + | ==== 1 - DFU-programmer |
- | Sur les cartes Arduino | + | |
+ | {{: | ||
+ | |||
+ | Sur les cartes Arduino | ||
Sur UBUNTU/ | Sur UBUNTU/ | ||
Ligne 40: | Ligne 44: | ||
- | ===== FLASHER ===== | + | ==== 2 - Flash atmega16u2 |
Pour reprogrammer la puce, on parle de //flash//. | Pour reprogrammer la puce, on parle de //flash//. | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | Attention, pour les cartes UNO rev.1 il faut souder une résistance comme sur cette [[https:// | ||
+ | </ | ||
+ | |||
**1 - Reset**\\ | **1 - Reset**\\ | ||
Ligne 60: | Ligne 69: | ||
Ce n'est pas notre intention ici, mais vous pouvez revenir en arrière et remettre le programme par défaut, celui qui fait apparaître l' | Ce n'est pas notre intention ici, mais vous pouvez revenir en arrière et remettre le programme par défaut, celui qui fait apparaître l' | ||
- | Aller dans le répertoire de votre logiciel Arduino | + | Aller dans le répertoire de votre logiciel Arduino |
- | < | + | < |
Vous trouverez un fichier " | Vous trouverez un fichier " | ||
- | < | + | < |
Checking memory from 0x0 to 0xFFF... | Checking memory from 0x0 to 0xFFF... | ||
0% 100% Programming 0x1000 bytes... | 0% 100% Programming 0x1000 bytes... | ||
Ligne 76: | Ligne 85: | ||
Vous devriez pouvoir réutiliser l' | Vous devriez pouvoir réutiliser l' | ||
- | ===== MIDI FIRMWARE===== | + | ==== 3 - Flash atmega16u2 |
- | + | ||
- | ==== Flash atmega16u2 ==== | + | |
- Télécharger **MOCOLufa** et dézipper le: https:// | - Télécharger **MOCOLufa** et dézipper le: https:// | ||
Ligne 100: | Ligne 107: | ||
Car vous ne pouvez pas reprogrammer l' | Car vous ne pouvez pas reprogrammer l' | ||
- | ==== Programme Midi ==== | + | En tapant la commande " |
+ | {{: | ||
+ | |||
+ | ==== 4 - Programme | ||
- Télécharger : https:// | - Télécharger : https:// | ||
- Installer la bibliothèque **MIDI** dans votre dossier Arduino/ | - Installer la bibliothèque **MIDI** dans votre dossier Arduino/ | ||
Ligne 108: | Ligne 118: | ||
- Visualiser le résultat sur un logiciel Midi | - Visualiser le résultat sur un logiciel Midi | ||
+ | ===== Arduino Leonardo Midi ===== | ||
+ | |||
+ | La méthode est un peu plus simple car nous n' | ||
+ | |||
+ | Ressources : | ||
+ | * https:// | ||
+ | * http:// | ||
+ | * https:// | ||
+ | * https:// | ||
+ | |||
+ | ==== 1 - Installer TeensyDuino | ||
+ | |||
+ | Respectez la méthode d' | ||
+ | |||
+ | Attention, la version de TeensyDuino doit être compatible avec votre version d' | ||
+ | ==== 2 - Installer de nouvelles cartes ==== | ||
+ | Avec la nouvelle version d' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Ensuite, nous allons installer le paquet **Adafruit TeeOnArdu**, | ||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | ==== 3 - Sélectionner la bonne carte ==== | ||
+ | - " | ||
+ | - "USB Type > Midi" | ||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | ==== 4 - Programme Arduino ==== | ||
+ | N' | ||
+ | |||
+ | |||
+ | <WRAP center round info 60%> Une fois le programme téléversé dans la carte Arduino, il faudra appuyer sur le bouton Reset de la carte pour la reprogrammer, | ||
+ | |||
+ | |||
+ | ++++ Code Midi Leonardo et Teensy | | ||
+ | <code cpp>// the MIDI channel number to send messages | ||
+ | const int channel = 4; | ||
+ | |||
+ | // the MIDI continuous controller for each analog input | ||
+ | const int controllerA0 = 0; | ||
+ | const int controllerA1 = 1; | ||
+ | const int controllerA2 = 2; | ||
+ | const int controllerA3 = 3; | ||
+ | const int controllerA4 = 4; | ||
+ | const int controllerA5 = 5; | ||
+ | |||
+ | // store previously sent values, to detect changes | ||
+ | int previousA0 = -1; | ||
+ | int previousA1 = -1; | ||
+ | int previousA2 = -1; | ||
+ | int previousA3 = -1; | ||
+ | int previousA4 = -1; | ||
+ | int previousA5 = -1; | ||
+ | elapsedMillis msec = 0; | ||
+ | |||
+ | void setup() { | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | // only check the analog inputs 50 times per second, | ||
+ | // to prevent a flood of MIDI messages | ||
+ | if (msec >= 20) { | ||
+ | msec = 0; | ||
+ | int n0 = analogRead(A0) / 8; | ||
+ | int n1 = analogRead(A1) / 8; | ||
+ | int n2 = analogRead(A2) / 8; | ||
+ | int n3 = analogRead(A3) / 8; | ||
+ | int n4 = analogRead(A4) / 8; | ||
+ | int n5 = analogRead(A5) / 8; | ||
+ | // only transmit MIDI messages if analog input changed | ||
+ | if (n0 != previousA0) { | ||
+ | usbMIDI.sendControlChange(controllerA0, | ||
+ | previousA0 = n0; | ||
+ | } | ||
+ | if (n1 != previousA1) { | ||
+ | usbMIDI.sendControlChange(controllerA1, | ||
+ | previousA1 = n1; | ||
+ | } | ||
+ | if (n2 != previousA2) { | ||
+ | usbMIDI.sendControlChange(controllerA2, | ||
+ | previousA2 = n2; | ||
+ | } | ||
+ | if (n3 != previousA3) { | ||
+ | usbMIDI.sendControlChange(controllerA3, | ||
+ | previousA3 = n3; | ||
+ | } | ||
+ | if (n4 != previousA4) { | ||
+ | usbMIDI.sendControlChange(controllerA4, | ||
+ | previousA4 = n4; | ||
+ | } | ||
+ | if (n5 != previousA5) { | ||
+ | usbMIDI.sendControlChange(controllerA5, | ||
+ | previousA5 = n5; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // MIDI Controllers should discard incoming MIDI messages. | ||
+ | // http:// | ||
+ | while (usbMIDI.read()) { | ||
+ | // ignore incoming messages | ||
+ | } | ||
+ | }</ |