Wiki

Reso-nance numérique | Arts et cultures libres

Outils du site


projets:malinette: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:accueil [2015/07/21 18:54]
resonance [La Malinette]
projets:malinette:accueil [2018/01/18 13:02] (Version actuelle)
resonance ancienne révision (2017/03/20 10:55) restaurée
Ligne 1: Ligne 1:
 ======  La Malinette ====== ======  La Malinette ======
  
-  * Porteur du projet : [[:user:resonance:|reso-nance]] +  * Porteur du projet : [[:user:resonance:|Reso-nance numérique]]
-  * Contributeurs : [[http://reso-nance.org/malinette/fr/contribute|info contributeurs]]+
   * Date : 2012-...   * Date : 2012-...
   * Licence : GNU/GPL3   * Licence : GNU/GPL3
-  * Contexte : outil pédagogique, outil de prototypage rapide pour artistes +  * Contexte : Outil pédagogique, outil de prototypage rapide pour artistes 
-  * Fichiers : [[http://reso-nance.org/malinette/fr/download|téléchargement du logiciel]], [[http://framacalc.org/minimalinette|liste du matériel]] +  * Fichiers & infos : [[http://malinette.info|malinette.info]] 
-  * URL : [[http://malinette.info|malinette.info]] +
-  * TODO : [[.:todo|To do]] +
-  * IDEES : [[.:idees|Idées]] +
-  * TODO REGLAGES v0.9 : [[.:reglages-V0.9|reglages-V0.9]]+
 =====  Description ===== =====  Description =====
 **La Malinette** est un kit pédagogique sous licence libre pour découvrir et apprendre à construire des systèmes interactifs. Il comprend un logiciel et du matériel électronique avec une carte électronique Arduino Roméo et un ensemble de capteurs et d'actionneurs.  **La Malinette** est un kit pédagogique sous licence libre pour découvrir et apprendre à construire des systèmes interactifs. Il comprend un logiciel et du matériel électronique avec une carte électronique Arduino Roméo et un ensemble de capteurs et d'actionneurs. 
  
-{{:projets:malinette:malinette.png|}} +{{:projets:malinette:malinette-boite.jpg?800|}}
-===== Changements > 0.89 ===== +
-  * source bassdrum +
-  * audio-volume : inlet +
-  * video-motionblob : ajout 3eme sortie move : indique le niveau de mouvement... +
-  * video-motionstop : ajout des commandes : reset et depot ... +
-  * video-in > pix_rbga +
-  * 3d-transform > video-xyz +
-  * image-in +
-  * teensy-in, teensy-analog-in, teesy-digital-in +
-  * add bolpipe, audio-13eq +
-  * modif seq a 120ms, couleurs arduinos +
-  * une correction sur video-crop +
-===== Teensy ===== +
-  * [[.:teensy4malinette:]] 12/2014 +
- +
-==== Teensy for Malinette 05/2015 ==== +
-  * Fichiers (Arduino et Pure Data) : {{:projets:malinette:teensy_malinette.zip|}} +
- +
-**Pure Data** +
-{{:projets:malinette:teensy-malinette.png|}} +
- +
- +
-++++ Code Arduino : teensy_malinette.ino | +
-<code cpp> +
-// TEENSY - MALINETTE +
-// 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> +
-++++ +
  
 +===== Développement =====
 +  * [[.:malinette-v1|Malinette V1]], [[https://lite6.framapad.org/p/malinette|TODO Malinette Pad]], [[.:idees|Idées]]
 +  * [[.:hardware:|Malinette Hardware]] : boîtier, électronique et code Arduino/Teensy
  
 ===== Autres ===== ===== Autres =====
- 
   * [[.:site:|Site]]   * [[.:site:|Site]]
   * [[.:changes|Changements]]   * [[.:changes|Changements]]
  
  
-{{tag>[arduino malinette pédagogie]}} 
/home/resonancg/www/wiki/data/attic/projets/malinette/accueil.1437497647.txt.gz · Dernière modification: 2015/07/21 18:54 de resonance