Wiki

Reso-nance numérique | Arts et cultures libres

Outils du site


projets:artdevivre: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:artdevivre:accueil [2019/12/18 16:52]
laurent [Matériaux]
projets:artdevivre:accueil [2019/12/19 15:05] (Version actuelle)
laurent [Description]
Ligne 4: Ligne 4:
   * Date : décembre / 2019   * Date : décembre / 2019
   * Licence : libre !   * Licence : libre !
-  * Contexte :  +  * Fichiers : {{ :projets:artdevivre:piano.zip |code Arduino}}  
-  * Fichiers : code Arduino  +  * Lien : [[https://www.lartdevivre.org/165-rien-n-arrive-et-ca-arrive-souvent|page du spectacle]]
-  * Lien : lien vers un site éventuellement+
  
  
Ligne 14: Ligne 13:
 ===== Description ===== ===== Description =====
 Dans le cadre de la création de son spectacle **Rien n'arrive ! Et ça arrive souvent !**, la compagnie [[https://www.lartdevivre.org/|l'Art de Vivre]] nous a confié la fabrication d'un contrôleur MIDI utilisant des leviers pour déclencher des sons. Dans le cadre de la création de son spectacle **Rien n'arrive ! Et ça arrive souvent !**, la compagnie [[https://www.lartdevivre.org/|l'Art de Vivre]] nous a confié la fabrication d'un contrôleur MIDI utilisant des leviers pour déclencher des sons.
-L'association [[https://laissezpasser.fr/|laisser passer]] nous a permis d'extraire de leur matériaux portuaires à recycler huit leviers articulés en aluminium qui seront la base du contrôleur. +L'association [[https://laissezpasser.fr/|Laisser Passer]] nous a permis d'extraire de leur matériaux portuaires à recycler huit leviers articulés en aluminium qui seront la base du contrôleur.  
-Nous avons conçu autours de ces leviers les pièces nécessaires à leur nouveau fonctionnement (butées avant et arrières et le ressort de rappel, maintien des boutons poussoirs) +Ces huit levier ON/OFF actionnerons des sons, un neuvième levier gradué permettra de régler un volume ou des effets et deux entrées pour pédale d'expression ou switch en complétera le jeu. 
-Enfin, un cadre en acier maintenant solidement le tout à été fabriqué en profilé d'acier 4mm soudé.+Les pièces nécessaires à ce fonctionnement (butées avant et arrières et le ressort de rappel, maintien des boutons poussoirs...ont été conçues autour de ces leviers et découpé au LFO. Enfin, un cadre maintenant solidement le tout à été fabriqué en acier soudé.
  
 ===== Matériaux ===== ===== Matériaux =====
-Leviers : récupération portuaire issu de Laissez Passer +  * Leviers : récupération portuaire issu du stock de [[https://laissezpasser.fr/|Laisser Passer]] 
-Socle : profilé en L acier 4mm +  Socle : profilé en L acier 4mm, boulons en U 
-Électronique : arduino Leonardo, boutons étanches de récupération, potentiomètre+  * Mécanique : PVC 10mm et PVC 5mm usiné à la fraiseuse numérique 
 +  Électronique : arduino Leonardo, boutons étanches de récupération, potentiomètre
  
  
Ligne 29: Ligne 29:
  
 Pour lire les valeurs brutes et calibrer les entrées analogiques, un **define** en première ligne peut être dé-commenté. Il transforme alors le port USB de l'arduino Leonardo non plus en périphérique MIDI mais en port série, permettant de lire sur le moniteur série d'Arduino les valeurs brutes et mise à l'échelle MIDI des capteurs telles qu'elles sont envoyées en mode normal.  Pour lire les valeurs brutes et calibrer les entrées analogiques, un **define** en première ligne peut être dé-commenté. Il transforme alors le port USB de l'arduino Leonardo non plus en périphérique MIDI mais en port série, permettant de lire sur le moniteur série d'Arduino les valeurs brutes et mise à l'échelle MIDI des capteurs telles qu'elles sont envoyées en mode normal. 
 +<WRAP center round important 60%>
 +Les **#define** sont parfois ignorés pour les cartes Leonardo, Due et Micro par le pré-processeur des versions récentes d'arduino.
 +le code téléchargeable en en-tête n'en possède pas pour rester compatible avec toutes les versions d'IDE d'Arduino.
 +</WRAP>
 +
 Le code du projet peut être consulté ci-dessous : Le code du projet peut être consulté ci-dessous :
 ++++ arduinoLeonardo.ino| ++++ arduinoLeonardo.ino|
-<code cpp>//#define SERIAL +<code cpp>//#define CALIBRATION 
-#if !defined(SERIAL)+#ifndef CALIBRATION
   #include "MIDIUSB.h"   #include "MIDIUSB.h"
 #endif #endif
Ligne 62: Ligne 67:
 }; };
  
-digital digitals[] = { {"A0", 33, 2, true, DEBOUNCE, 0}, {"F0", 29, 3, true, DEBOUNCE, 0}, {"D0", 26, 4, true, DEBOUNCE, 0}, {"G0", 31, 5, true, DEBOUNCE, 0}, +digital digitals[] = { {"A0", 33, 2, true, DEBOUNCE, 0}, {"F0", 29, 3, true, DEBOUNCE, 0}, 
-                       {"E0", 28, 6, true, DEBOUNCE, 0}, {"B0", 35, 7, true, DEBOUNCE, 0}, {"C0", 24, 8, true, DEBOUNCE, 0}, {"Bb0", 34, 9, true, DEBOUNCE, 0},};+                       {"D0", 26, 4, true, DEBOUNCE, 0}, {"G0", 31, 5, true, DEBOUNCE, 0}, 
 +                       {"E0", 28, 6, true, DEBOUNCE, 0}, {"B0", 35, 7, true, DEBOUNCE, 0}, 
 +                       {"C0", 24, 8, true, DEBOUNCE, 0}, {"Bb0", 34, 9, true, DEBOUNCE, 0},}; 
 +                       
 unsigned int digitalsCount = sizeof(digitals)/sizeof(digital); unsigned int digitalsCount = sizeof(digitals)/sizeof(digital);
  
Ligne 76: Ligne 84:
     analogs[i].currentValue = map(analogRead(analogs[i].pin), analogs[i].calibMin, analogs[i].calibMax, 0, 127);     analogs[i].currentValue = map(analogRead(analogs[i].pin), analogs[i].calibMin, analogs[i].calibMax, 0, 127);
   }   }
-  #if defined(SERIAL)+  #ifdef CALIBRATION
     Serial.begin(115200);     Serial.begin(115200);
     delay(100);     delay(100);
Ligne 91: Ligne 99:
     //if (analogs[i].lastValue != analogs[i].currentValue) {     //if (analogs[i].lastValue != analogs[i].currentValue) {
       if (analogs[i].lastValue < analogs[i].currentValue - analogs[i].deadBand || analogs[i].lastValue > analogs[i].currentValue + analogs[i].deadBand) {       if (analogs[i].lastValue < analogs[i].currentValue - analogs[i].deadBand || analogs[i].lastValue > analogs[i].currentValue + analogs[i].deadBand) {
-        #if defined(SERIAL)+        #ifdef CALIBRATION
           Serial.println(analogs[i].name + ": RAW"+String(analogRead(analogs[i].pin))+", SCALED : "+ String(analogs[i].currentValue));           Serial.println(analogs[i].name + ": RAW"+String(analogRead(analogs[i].pin))+", SCALED : "+ String(analogs[i].currentValue));
         //analogs[i].lastValue = analogs[i].currentValue;         //analogs[i].lastValue = analogs[i].currentValue;
Ligne 109: Ligne 117:
     // input has been pulled LOW     // input has been pulled LOW
     if (currentState == LOW && digitals[i].lastState == HIGH && millis() - digitals[i].lastTriggered > digitals[i].debounce) {     if (currentState == LOW && digitals[i].lastState == HIGH && millis() - digitals[i].lastTriggered > digitals[i].debounce) {
-      #if defined(SERIAL)  +      #ifdef CALIBRATION 
         Serial.println(digitals[i].name+":ON");         Serial.println(digitals[i].name+":ON");
       #else       #else
Ligne 119: Ligne 127:
     // input has been pulled HIGH     // input has been pulled HIGH
     if (currentState == HIGH && digitals[i].lastState == LOW && millis() - digitals[i].lastTriggered > digitals[i].debounce) {     if (currentState == HIGH && digitals[i].lastState == LOW && millis() - digitals[i].lastTriggered > digitals[i].debounce) {
-      #if defined(SERIAL)+      #ifdef CALIBRATION
         Serial.println(digitals[i].name+":OFF");         Serial.println(digitals[i].name+":OFF");
       #else       #else
Ligne 128: Ligne 136:
     digitals[i].lastState = currentState;     digitals[i].lastState = currentState;
   }   }
-  #if !defined(SERIAL)+  #ifndef CALIBRATION
     MidiUSB.flush();     MidiUSB.flush();
   #endif   #endif
Ligne 134: Ligne 142:
 } }
  
-#if !defined(SERIAL)+#ifndef CALIBRATION
   void noteOn(byte pitch, byte velocity) {   void noteOn(byte pitch, byte velocity) {
     midiEventPacket_t noteOn = {0x09, 0x90 | CHANNEL, pitch, velocity};     midiEventPacket_t noteOn = {0x09, 0x90 | CHANNEL, pitch, velocity};
Ligne 153: Ligne 161:
 ++++ ++++
 ===== Photos ===== ===== Photos =====
-Autres photos, galerie, ... 
  
 +{{gallery>?&crop&lightbox}}
/home/resonancg/www/wiki/data/attic/projets/artdevivre/accueil.1576684369.txt.gz · Dernière modification: 2019/12/18 16:52 de laurent