Wiki

Reso-nance numérique | Arts et cultures libres

Outils du site


projets:malinette:hardware: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:malinette:hardware:accueil [2016/06/24 23:08]
resonance [Boîte pédagogique v1]
projets:malinette:hardware:accueil [2016/12/13 16:07] (Version actuelle)
resonance [Code]
Ligne 1: Ligne 1:
 ====== Malinette Hardware ====== ====== Malinette Hardware ======
    
-===== Boîtier =====+===== Malinette v1 - pédagogique =====
  
-==== Boîte USB ==== +==== Boîtier ==== 
-  * Fichiers de fabrication (contreplaqué de 3mm) :{{:projets:malinette:hardware:malinette-usb-box.zip|}} (24/06/16)+  * Voir la page [[projets:malinette-laserbox:accueil|Malinette - boîte]] 
 +{{:projets:boite-malinette-laser:boitemalinette.jpg?800|}} 
 +==== Électronique ==== 
 +Arduino Roméo v2, plaque à essai et capteurs/actionneurs DfRobot
  
-{{:projets:malinette:hardware:img_0340.jpg?300 |}} +==== Code ==== 
-{{:projets:malinette:hardware:img_0348.jpg?300 |}} +Installer Arduino et téléverser l'exemple > Firmata > StandardFirmata 
-{{:projets:malinette:hardware:malinetteusbshield-box.jpg?300|}}+===== Malinette v2 - USB/MIDI - Arduino ===== 
 +Une interface physique et électronique qui communique en MIDI et permet la connection de capteurs et d'actionneurs avec des connecteurs USB, pour être compatible avec le projet [[projets:brutbox:accueil|BrutBox]].
  
-Export d'inkscape vers DFX : décocher POLYLINE 
-{{:projets:malinette:hardware:malinette-usb-box-v1-export-inkscape.png?600|}} 
  
-Réglages RdWorks pour la découpe laser+{{:projets:malinette:hardware:img_0340.jpg?800|}} 
 + 
 +==== Boîtier ==== 
 +  * Fichiers de fabrication (découpe laser avec du contreplaqué de 3mm) :{{:projets:malinette:hardware:malinetteusbbox.zip|}} (07/16) 
 +{{:projets:malinette:hardware:dsc_6006.jpg?300 |}} 
 +{{:projets:malinette:hardware:malinetteusbshield-box.jpg?300 |}} 
 +{{:projets:malinette:hardware:img_0348.jpg?300|}} 
 +// 
 +// 
 + 
 +Export d'**Inkscape** vers DFX : décocher POLYLINE 
 +{{:projets:malinette:hardware:malinette-usb-box-v1-export-inkscape.png?300|}} 
 + 
 +Réglages **RdWorks** pour la découpe laser
 {{:projets:malinette:hardware:malinette-usb-box-v1-rdworks.png?600|}} {{:projets:malinette:hardware:malinette-usb-box-v1-rdworks.png?600|}}
  
-==== Boîte pédagogique v1 ==== 
-  * Voir la page [[projets:malinette-laserbox:accueil|Malinette - boîte]] 
-{{:projets:boite-malinette-laser:boitemalinette.jpg?800|}} 
  
-===== Électronique ===== +==== Électronique ==== 
-==== Arduino USB Shield ==== +  * Fichiers **KiCad**, **Cambam**, **Svg** et **GCode** : {{:projets:malinette:hardware:malinetteusbshield.zip|}} 07/2016
-Un shield pour utiliser des connecteur USB (comme la brutbox). +
-  * Fichiers KiCad : {{:projets:malinette:hardware:arduino-usb-v3.zip|}} 02/2016+
  
-{{:projets:malinette:hardware:img_20160213_054204.jpg?200 |}} +Carte double face avec connecteurs USB. Par défaut 4 capteurs analogiques et 12 sorties sont possibles. En plaçant les jumpers vers le bas, il est possible d'utiliser les 2 autres capteurs à la place de certaines sorties. 
-{{:projets:malinette:hardware:img_20160213_061711.jpg?200 |}} + 
-{{:projets:malinette:hardware:img_20160213_062851.jpg?200|}}+{{:projets:malinette:hardware:img_20160213_054204.jpg?300 |}} 
 +{{:projets:malinette:hardware:img_20160213_061711.jpg?300 |}} 
 +{{:projets:malinette:hardware:img_20160213_062851.jpg?300|}}
 // //
 // //
  
-==== Version Teensy ==== 
-L'avantage d'utiliser teensy en midi = pas de drivers à installer = pratique dans les écoles ! 
  
-  * [[projets:malinette:teensy4malinette:accueil|Teensy4Malinette]] Recherches et images +==== Code ====
- +
-===== Firmware ===== +
- +
-==== Arduino Malinette Midi ====+
   * Fichiers (Arduino et Pure Data) : {{:projets:malinette:hardware:malinette_midi.zip|}}   * Fichiers (Arduino et Pure Data) : {{:projets:malinette:hardware:malinette_midi.zip|}}
 +
 +L'Arduino communique en Midi. Pour installer le firmware Midi, suivre les instructions de la page [[logiciels:arduino-midi:accueil|Arduino et MIDI]]. Avec Pure Data, on contrôle l'ouverture des entrées et le mode des sorties (digital, pwm, servo). Si vous voulez utiliser plusieurs, il faudra peut-être changer le canal Midi dans le code, au début du fichier.
  
 {{:projets:malinette:hardware:malinette-midi-puredata.png|}} {{:projets:malinette:hardware:malinette-midi-puredata.png|}}
  
-Pour installer le firmware Midi, voir la page consacrée à [[logiciels:arduino-midi:accueil|Arduino et MIDI]]. 
  
 ++++ Code Arduino Uno : malinette_midi_uno.ino | ++++ Code Arduino Uno : malinette_midi_uno.ino |
Ligne 56: Ligne 63:
  * Reso-nance Numérique  * Reso-nance Numérique
  * 24/06/16  * 24/06/16
 + 
 + * modif : 13/12/2016
  */  */
  
Ligne 68: Ligne 77:
  
 const int offsetAna = 20; // > ctlout 20 to control ana const int offsetAna = 20; // > ctlout 20 to control ana
-const int offsetOut = 30; // > ctlout 30 to control ana+const int offsetOut = 30; // > ctlout 30 to control out
  
 const long interval = 30; // sampling rate const long interval = 30; // sampling rate
  
 // SENSORS // SENSORS
-int anaState[anaNb]; // Analog on/off (O or 1);+int anaState[anaNb]; // analog on/off (O or 1);
 int anaValues[anaNb]; // current analog values int anaValues[anaNb]; // current analog values
 int anaLastValues[anaNb]; // previous analog values int anaLastValues[anaNb]; // previous analog values
Ligne 89: Ligne 98:
 { {
   // Setup output pins (start from 2)   // Setup output pins (start from 2)
-  for (int i = 2; i < (outNb - 2); i++) {+  for (int i = 2; i < outNb; i++) {
     pinMode(i, OUTPUT);     pinMode(i, OUTPUT);
   }   }
Ligne 182: Ligne 191:
  * Reso-nance Numérique  * Reso-nance Numérique
  * 24/06/16  * 24/06/16
 + 
 + * modif : 13/12/16
  */  */
  
Ligne 211: Ligne 222:
 { {
   // Setup output pins (start from 2)   // Setup output pins (start from 2)
-  for (int i = 2; i < (outNb - 2); i++) {+  for (int i = 2; i < outNb; i++) {
     pinMode(i, OUTPUT);     pinMode(i, OUTPUT);
   }   }
Ligne 295: Ligne 306:
 ++++ ++++
  
-==== Teensy Malinette Midi ==== +====Malinette v3 - USB/MIDI - Teensy =====
-  * Fichiers (Arduino et Pure Data) : {{:projets:malinette:teensy_malinette.zip|}}+
  
-**Pure Data** +==== Boîtier ==== 
-{{:projets:malinette:teensy-malinette.png|}}+En cours
  
 +==== Électronique ====
 +  * Ancienne version : [[projets:malinette:teensy4malinette:accueil|Teensy4Malinette]]
  
-++++ Code Arduino : teensy_malinette.ino | +==== Code ==== 
-<code cpp> +  * Ancienne version : [[.:teensy-midi-pd:|]] 
-// TEENSY - MALINETTE +  * Nouvelle versionprendre le code de la Malinette v2 avec la carte Leonardocela devrait marcher.
-// Control inputs and outputs with MIDI messages +
-// 30/05/2015 - http://reso-nance.org +
- +
-#include <Servo.h> //servo library +
- +
-// Pins +
-int anaPins[] {16,17,18,19,20,21}; // analog pins +
-int outPins[] {9,10}; // output pins +
-const int anaNb 6; // number of inputs +
-const int outNb 2; // number of outputs +
- +
-// Midi Mapping +
-int anaCtl[] {5,4,3,2,1,0}; // controller in +
-int outCtl[] {50, 51}; // controller out +
-int anaStateCtl[] {20, 21} ; // sensor on (20), sensor off (21) +
-int outStateCtl[] {60, 61}; // controller out modes (0,1,2,3) (none, digital, pwm, servo) +
- +
-// Ana Sensors +
-int anaState[anaNb]; // state on/off +
-const int channel = 1; +
-int anaValues[anaNb]; // current analog values +
-int anaLastValues[anaNb]; // previous analog values +
- +
-// Sampling rate +
-const long interval = 30; +
-unsigned long currentMillis; +
-unsigned long previousMillis = 0; +
- +
-// Output +
-Servo servo0,servo1; +
-int outState[outNb]; // states stop, digital, pwm, servo +
- +
-void setup() {  +
-  for (int i = 0; i < outNb; i++) { +
-    pinMode(outPins[i], OUTPUT); +
-  } +
-  usbMIDI.setHandleControlChange(OnControlChange); +
-}  +
- +
-void loop() { +
-  currentMillis = millis(); +
-  if(currentMillis previousMillis >= interval) +
-      previousMillis = currentMillis; +
-      for (int i = 0; i < anaNb; i++) { +
-          if(anaState[i] == 1)  { // check first if the sensor is on +
-              anaValues[i] = analogRead(anaPins[i])  / 8 ; +
-              if (anaValues[i] != anaLastValues[i]) { +
-                  usbMIDI.sendControlChange(anaCtl[i], anaValues[i], channel); +
-                  anaLastValues[i] = anaValues[i]; +
-   } +
-          } +
-       } +
-    } +
-     +
-  //Discard incoming MIDI messages. +
-  while (usbMIDI.read()) { +
-  } +
-+
- +
-// Receive Midi Control Change +
-void OnControlChange(byte channel, byte control, byte value) { +
-    +
-   // Analog sensors on/off +
-   if (control == anaStateCtl[0] ) {anaState[-value+(anaNb-1)= 0;} +
-   else if (control == anaStateCtl[1) {anaState[-value+(anaNb-1)] = 1;} +
-    +
-   // Set Outputs Values +
-   else if (control == outCtl[0] ) {setOutValue(0, value, servo0);} +
-   else if (control == outCtl[1] ) {setOutValue(1, value, servo1);} +
- +
-   // Set Outputs States (none, digital, pwm, servo) +
-   else if (control == outStateCtl[0] ) {setOutState(0, value, servo0);} +
-   else if (control == outStateCtl[1] ) {setOutState(1, value, servo1);} +
-+
- +
-// Set outputs +
-void setOutValue(int outId, int value, Servo servo) { +
-  int state = outState[outId]; +
-  if( state == 1) { // digital mode +
-       if(value == 0) {digitalWrite(outPins[outId]LOW);} +
-       if(value >= 1) {digitalWrite(outPins[outId]HIGH);} +
-     } else if( state == 2){ // pwm mode +
-        analogWrite(outPins[outId], map(value,0,127,0,255)); +
-     } else if( state == 3){ // servo mode +
-        if (servo.attached()) {servo.write(map(value,0,127,0,180));+
-     } +
-+
- +
-void setOutState(int outId, int value, Servo servo) { +
-  // Check last state to turn off +
-  if ( outState[outId] == 1) {digitalWrite(outPins[outId], LOW);} +
-  else if ( outState[outId] == 2) {analogWrite(outPins[outId], 0);} +
-   +
-  if (value == 3) { +
-      if (!servo.attached()) {servo.attach(outPins[outId]);+
-  } else { +
-    if (servo.attached()) {servo.detach();+
-  } +
-   +
-  outState[outId] = value; +
-+
-</code> +
-++++ +
/home/resonancg/www/wiki/data/attic/projets/malinette/hardware/accueil.1466802491.txt.gz · Dernière modification: 2016/06/24 23:08 de resonance