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 Prochaine révision Les deux révisions suivantes | ||
projets:malinette-brutbox:accueil [2016/01/30 12:59] resonance [Boite et decoupe laser] |
projets:malinette-brutbox:accueil [2016/02/28 17:13] resonance [Boite en bois et decoupe laser] |
||
---|---|---|---|
Ligne 23: | Ligne 23: | ||
{{: | {{: | ||
- | * Nom : BrutBox | + | * Nom : BrutBox |
* État de l'art : [[http:// | * État de l'art : [[http:// | ||
* Entrées : kinect, accéleromètre sans fil, neurosky (sans routage), capteur distance, piezo pince, micro, crayon graphite, conductivité corps (genre makey makey), webcam (face tracking, fiducials, ...), gros boutons, pavé XY façon kaospad, tapis XY | * Entrées : kinect, accéleromètre sans fil, neurosky (sans routage), capteur distance, piezo pince, micro, crayon graphite, conductivité corps (genre makey makey), webcam (face tracking, fiducials, ...), gros boutons, pavé XY façon kaospad, tapis XY | ||
Ligne 57: | Ligne 57: | ||
Nous utilisons pour le moment, la carte Teensy 2.0 qui permet de convertir en MIDI les données de nos capteurs. | Nous utilisons pour le moment, la carte Teensy 2.0 qui permet de convertir en MIDI les données de nos capteurs. | ||
En guise de connectique nous avons opté pour des connecteurs USB (pour éviter les faux contacts). | En guise de connectique nous avons opté pour des connecteurs USB (pour éviter les faux contacts). | ||
+ | |||
+ | |||
+ | **Gravure :**\\ | ||
+ | On fait de la gravure a l' | ||
+ | |||
+ | * **Fichier actuels :** (dxf+cambam+gcode) : {{: | ||
+ | * Fichiers anciens : {{: | ||
{{ : | {{ : | ||
- | {{: | ||
{{: | {{: | ||
{{: | {{: | ||
Ligne 65: | Ligne 71: | ||
- | ==== Firmware Teensy 2 ==== | + | |
+ | ==== Firmware | ||
+ | ++++ *teensy-8-floatsIN-MAKE-IT-BRUT.ino* | | ||
+ | <code cpp> | ||
+ | // the MIDI channel number to send messages | ||
+ | const int channel = 1; | ||
+ | |||
+ | // the MIDI continuous controller for each analog input | ||
+ | const int controllerA0 = 1; // | ||
+ | const int controllerA1 = 2; // | ||
+ | const int controllerA2 = 3; // | ||
+ | const int controllerA3 = 4; // | ||
+ | const int controllerA4 = 5; // | ||
+ | const int controllerA5 = 6; // | ||
+ | const int controllerA6 = 7; // | ||
+ | const int controllerA7 = 8; // | ||
+ | |||
+ | void setup() { | ||
+ | } | ||
+ | |||
+ | // 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; | ||
+ | int previousA6 = -1; | ||
+ | int previousA7 = -1; | ||
+ | |||
+ | elapsedMillis msec = 0; | ||
+ | |||
+ | void loop() { | ||
+ | // only check the analog inputs 50 times per second, | ||
+ | // to prevent a flood of MIDI messages | ||
+ | if (msec >= 50) { | ||
+ | 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; | ||
+ | int n6 = analogRead(A6) / 8; | ||
+ | int n7 = analogRead(A7) / 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; | ||
+ | } | ||
+ | |||
+ | if (n6 != previousA6) { | ||
+ | usbMIDI.sendControlChange(controllerA6, | ||
+ | previousA6 = n6; | ||
+ | } | ||
+ | if (n7 != previousA7) { | ||
+ | usbMIDI.sendControlChange(controllerA7, | ||
+ | previousA7 = n7; | ||
+ | } | ||
+ | |||
+ | |||
+ | } | ||
+ | |||
+ | // MIDI Controllers should discard incoming MIDI messages. | ||
+ | // http:// | ||
+ | while (usbMIDI.read()) { | ||
+ | // ignore incoming messages | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | ++++ | ||
+ | |||
+ | ==== Olds Firmwares | ||
* [[.: | * [[.: | ||
* Fichiers : ... | * Fichiers : ... | ||
Ligne 773: | Ligne 872: | ||
===== Logiciel ===== | ===== Logiciel ===== | ||
- | {{ : | + | {{: |
- | **Dernière version | + | **Dernière version |
- | Elle contient une séquence | + | Nouveautés : |
+ | * Partition commune entre les collections | ||
+ | * Sous menu dans le menu projet | ||
+ | * intégration de l'objet IN " | ||
+ | * intégration du bloc video dans les entrées bb | ||
- | * Basé sur la Malinette | + | !temporairement : les enregistrements Brutbox arrivent dans le dossier media/ |
+ | Cette version contient la séquence d'une dizaine d' | ||
+ | |||
+ | |||
+ | * Basé sur la Malinette et Pure Data Extended : https:// | ||
===== Boite en bois et decoupe laser ===== | ===== Boite en bois et decoupe laser ===== | ||
+ | < | ||
+ | Attention certains fichiers ont des problèmes d' | ||
+ | </ | ||
+ | |||
* {{: | * {{: | ||
- | * {{: | + | * {{: |
- | ==== Generateur | + | Nous avons utilisé un générateur |
- | y en a plein… mais celui-ci marche pas mal : http:// | + | |
- | ------ | + | |
==== Prototype 0.1 ==== | ==== Prototype 0.1 ==== | ||
* [[.: | * [[.: |