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 | ||
projets:p6:accueil [2016/05/13 11:03] resonance [Description] |
projets:p6:accueil [2016/05/13 23:42] (Version actuelle) resonance [Boîtier] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== P6 ====== | ====== P6 ====== | ||
* Porteur du projet : Jérôme ([[user: | * Porteur du projet : Jérôme ([[user: | ||
- | * Date : 02/2016 - ... | + | * Date : 02/2016 - 06/16 |
* Licence : libre ! | * Licence : libre ! | ||
* Contexte : Projet de contrôleur MIDI | * Contexte : Projet de contrôleur MIDI | ||
- | * Fichiers : ... | + | |
+ | * [[materiel: | ||
+ | * [[materiel: | ||
+ | * [[materiel: | ||
+ | * Programmation avec une [[materiel: | ||
+ | | ||
Ligne 10: | Ligne 15: | ||
===== Description ===== | ===== Description ===== | ||
- | Contrôleur MIDI réalisé avec six capteurs piézo-électriques. | + | Contrôleur MIDI réalisé avec six capteurs piézo-électriques. |
+ | {{: | ||
+ | L' | ||
Voir aussi notre page sur les [[materiel: | Voir aussi notre page sur les [[materiel: | ||
- | ===== Schéma | + | ===== Circuit |
+ | Le circuit est vraiment très simple, il s'agit plus ici de proposer un kit modulaire qui facilite la connection et simple à fabriquer. Par exemple on pourrait imaginer mettre deux ou trois contrôleurs comme ceci pour augmenter le nombre de touches. | ||
+ | Avec deux résistances (1MΩ et 1KΩ) et une diode Zener 5V1, le signal d'un piézo peut être utilisé par un micro-contrôleur Arduino ou Teensy. Les résistances lissent un peu le signal et la diode limite la tension du capteur. Car ce type de capteur génère de l' | ||
+ | ==== Schéma ==== | ||
+ | {{: | ||
+ | |||
+ | |||
+ | ==== Carte ==== | ||
+ | {{: | ||
===== Moulage silicone ===== | ===== Moulage silicone ===== | ||
+ | Les capteurs piézo sont sensibles à la vibration de la surface sur laquelle ils sont posés. On peut les utiliser en tant que microphones. Un projet de cinq documentaires autour de la musique à Marseille utilise cette technique : [[http:// | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Dans un premier temps, il faut créer une forme très simple en 3D, voir six pour aller plus vite. | ||
{{: | {{: | ||
Ligne 65: | Ligne 85: | ||
++++ | ++++ | ||
+ | |||
+ | Ensuite, il faut déposer du silicone dans les trous de la forme et laisser sécher une journée. On peut imaginer colorer le silicone à cette étape. | ||
===== Boîtier ===== | ===== Boîtier ===== | ||
+ | Le boîtier est configurable avec OpenScad. L' | ||
- | ===== Code Arduino | + | {{: |
+ | |||
+ | |||
+ | |||
+ | ++++ Code OpenScad | | ||
+ | <code cpp> | ||
+ | /* | ||
+ | * P6 Box | ||
+ | * Laser cuttable box for 6 piezo sensors | ||
+ | * | ||
+ | * http:// | ||
+ | * GNU/GPLv3 license | ||
+ | */ | ||
+ | |||
+ | /////////////////////////////////////////////// | ||
+ | thickness | ||
+ | piezo_r | ||
+ | margin | ||
+ | nblayers | ||
+ | |||
+ | grid_unit | ||
+ | length | ||
+ | width = 2*grid_unit+margin;// | ||
+ | height | ||
+ | $fn = 90; | ||
+ | |||
+ | |||
+ | /////////////////////////////////////////////// | ||
+ | p6_3d(); // 3d view | ||
+ | //p6_dxf(); // export to dxf | ||
+ | |||
+ | |||
+ | /////////////////////////////////////////////// | ||
+ | module p6_dxf(){ | ||
+ | for (layer=[0: | ||
+ | // | ||
+ | x=(layer%2)*(width+margin); | ||
+ | y=round(layer/ | ||
+ | z=(layer*thickness)-height+1; | ||
+ | rotate([0, | ||
+ | // | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | |||
+ | |||
+ | module p6_3d(){ | ||
+ | | ||
+ | | ||
+ | // | ||
+ | // Holes | ||
+ | difference() { | ||
+ | plate(height); | ||
+ | plate_drills(3*thickness+0.05, | ||
+ | piezos(2*thickness); | ||
+ | wires(6*thickness); | ||
+ | pcb(); | ||
+ | translate([margin, | ||
+ | plate(4*thickness, | ||
+ | translate([margin, | ||
+ | text(" | ||
+ | plate_drills(4*thickness+0.05, | ||
+ | } | ||
+ | |||
+ | difference(){ | ||
+ | plate_drills(4*thickness, | ||
+ | plate_drills(4*thickness+0.05, | ||
+ | } | ||
+ | } | ||
+ | |||
+ | /////////////////////////////////////////////// | ||
+ | module piezos(h=thickness, | ||
+ | { | ||
+ | z = height - h; | ||
+ | for (row=[1: | ||
+ | for (col=[1: | ||
+ | translate([col*grid_unit-piezo_r , | ||
+ | cylinder(h=h+0.05, | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | module plate(h=thickness, | ||
+ | { | ||
+ | translate([mink_r, | ||
+ | { | ||
+ | cube([w-mink_r*2, | ||
+ | cylinder(r=mink_r, | ||
+ | } | ||
+ | } | ||
+ | |||
+ | module wires(h=thickness, | ||
+ | { | ||
+ | z = height - thickness - h; | ||
+ | for (row=[1: | ||
+ | for (col=[1: | ||
+ | translate([col*grid_unit-piezo_r-w/ | ||
+ | cube([w, | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | module pcb() | ||
+ | { | ||
+ | w=74; | ||
+ | l=65; | ||
+ | w2=24; | ||
+ | margin=5; | ||
+ | l2=15+margin; | ||
+ | translate([(width-w2)/ | ||
+ | difference(){ | ||
+ | translate([(width-w)/ | ||
+ | translate([(width-w+20)/ | ||
+ | } | ||
+ | } | ||
+ | |||
+ | module pcb_mount(){ | ||
+ | | ||
+ | l=65; | ||
+ | | ||
+ | translate([(width-w)/ | ||
+ | | ||
+ | translate([(width-w)/ | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | |||
+ | module plate_drills(h=thickness, | ||
+ | { | ||
+ | translate([width-10, | ||
+ | translate([margin+2, | ||
+ | } | ||
+ | </ | ||
+ | ++++ | ||
+ | ===== Firmware ===== | ||
+ | Voir la page [[materiel: | ||
+ | |||
+ | ++++ Code Arduino/ | ||
<code cpp> | <code cpp> | ||
/* | /* | ||
Ligne 118: | Ligne 277: | ||
} | } | ||
</ | </ | ||
+ | ++++ | ||
+ | |||
+ | |||
+ | ===== Logiciel ===== | ||
+ | Exemple de réception du MIDI dans Pure Data : | ||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | ===== Photos ===== | ||
+ | |||
+ | {{: | ||
+ | {{: | ||
+ | {{: | ||
+ | |||
+ | // | ||
+ | |||