Catégories
Liens
Ceci est une ancienne révision du document !
Contrôleur MIDI réalisé avec six capteurs piézo-électriques. L'idée est de tout pouvoir le reproduire dans un fablab et d'avoir un contrôleur MIDI assez peu cher et configurable. Avec les piézo
Voir aussi notre page sur les Capteurs DIY.
// P6 project // http://reso-nance.org/wiki/projets/p6/accueil // Moule 3D pour un capteur piézo-électrique // Moulage en silicone // mars 2016 // Variables $fn=80; // résolution epaisseur=3; interieur=6; // Affichage de l'objet p6_mold(); // Objet 3D module p6_mold(){ container(); piezo(); } // Modules module container(){ difference(){ cylinder(r = 26, h = epaisseur+interieur); translate([0,0,epaisseur]) cylinder(r = 23, h = interieur+1); } } module piezo(){ cylinder(r = 23, h = epaisseur); cylinder(r = 20, h = epaisseur + 3); cylinder(r = 14, h = epaisseur + 4); // pour les fils //translate([14,0,0]) cylinder(r = 2, h = epaisseur + interieur); rotate([90,0,0]) translate([-2,7,0]) cube([4,2,20]); }
/* * P6 project * Teensy MIDI with 6 analog sensors * */ boolean DEBUG = false; // Analog sensors int anaPins[] = {21,20,19,18,17,16}; // analog pins const int anaNb = 6; int anaValues[anaNb]; // current analog values int anaLastValues[anaNb]; // previous analog values // MIDI const int channel = 1; int anaCtl[] = {1,2,3,4,5,6}; // midi mapping // Sampling rate const long interval = 30; unsigned long currentMillis; unsigned long previousMillis = 0; void setup() { if (DEBUG) Serial.begin(9600); } void loop() { currentMillis = millis(); if(currentMillis - previousMillis >= interval) { previousMillis = currentMillis; for (int i = 0; i < anaNb; i++) { anaValues[i] = analogRead(anaPins[i]) / 4 ; if (anaValues[i] != anaLastValues[i]) { usbMIDI.sendControlChange(anaCtl[i], anaValues[i], channel); if (DEBUG)Serial.print(anaValues[i]); if (DEBUG)Serial.print("\t"); anaLastValues[i] = anaValues[i]; } } if (DEBUG)Serial.println(); } // MIDI Controllers should discard incoming MIDI messages. while (usbMIDI.read()) { } }