Différences
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 | ||
tirer-lacher_dmx [2019/08/01 20:16] Mushussu Tag0 Added: sylvain |
tirer-lacher_dmx [2019/10/23 05:44] Mushussu [Code gachette] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Tirer - Lacher en DMX ====== | ||
+ | C'est une pièce d'étude pour un tirer-lâcher contrôler par DMX. Il pourra être utilisable horizontalement et verticalement. | ||
+ | ===== Matériel ===== | ||
+ | * 1 Moteur Fermeture Centralisée | ||
+ | * 3 Vis CHC ISO 4762 M3X45 classe 8.8 brut | ||
+ | * 3 Ecrous ISO 4032 M3 classe 8 brut | ||
+ | |||
+ | ===== Pièce 3D ===== | ||
+ | Le support : | ||
+ | |||
+ | {{::support_tirer-lacher.png?300|}} | ||
+ | |||
+ | Pour réaliser l'extrusion suivant un chemin, j'ai utilisé la bibliothèque [[https://github.com/JustinSDK/dotSCAD|dotSCAD]]. | ||
+ | |||
+ | ==== Code Support ==== | ||
+ | <code c> | ||
+ | include <Gachette.scad>; | ||
+ | |||
+ | $fn = 100; | ||
+ | |||
+ | // Socle | ||
+ | difference() { | ||
+ | translate([0, 0, -8]) cube([200, 48, 8]); | ||
+ | // Trou moteur | ||
+ | translate([26, 24, -8]) union() { | ||
+ | hull() { | ||
+ | translate([18, 0, 0]) cylinder(d = 30, h = 8); | ||
+ | translate([20, 0, 0]) cylinder(d = 30, h = 8); | ||
+ | } | ||
+ | translate([0, -8, 0]) cube([18, 16, 8]); | ||
+ | } | ||
+ | // Trous de fixation | ||
+ | translate([15, 24, -8]) cylinder(d = 4, h=8); | ||
+ | translate([100, 24, -8]) cylinder(d = 4, h=8); | ||
+ | translate([160, 24, -8]) cylinder(d = 4, h=8); | ||
+ | } | ||
+ | |||
+ | // Accroches de l'actionneur | ||
+ | translate([14, 0, 0]) { | ||
+ | difference() { | ||
+ | union() { | ||
+ | cube([74, 9, 24]); | ||
+ | translate([8, 0, 24]) rotate([-90, 0, 0]) cylinder(d = 16, h = 9); | ||
+ | translate([66, 0, 24]) rotate([-90, 0, 0]) cylinder(d = 16, h = 9); | ||
+ | } | ||
+ | translate([8, 0, 24]) rotate([-90, 0, 0]) cylinder(d = 3.2, h = 9); | ||
+ | translate([8, 0, 24]) rotate([-90, 0, 0]) cylinder(d = 6, h = 3); // Tête de vis | ||
+ | translate([66, 0, 24]) rotate([-90, 0, 0]) cylinder(d = 3.2, h = 9); | ||
+ | translate([66, 0, 24]) rotate([-90, 0, 0]) cylinder(d = 6, h = 3); // Tête de vis | ||
+ | } | ||
+ | | ||
+ | translate([0, 39, 0]) difference() { | ||
+ | union() { | ||
+ | cube([74, 9, 24]); | ||
+ | translate([8, 0, 24]) rotate([-90, 0, 0]) cylinder(d = 16, h = 9); | ||
+ | translate([66, 0, 24]) rotate([-90, 0, 0]) cylinder(d = 16, h = 9); | ||
+ | } | ||
+ | translate([8, 0, 24]) rotate([-90, 0, 0]) cylinder(d = 3.2, h = 9); | ||
+ | translate([8, 6, 24]) rotate([0, 90, 90]) scale([1.05, 1.05, 1]) resize([0,0,3], auto=[false,false,true]) EmpreinteEcrou(3) ; | ||
+ | |||
+ | translate([66, 0, 24]) rotate([-90, 0, 0]) cylinder(d = 3.2, h = 9); | ||
+ | translate([66, 6, 24]) rotate([0, 90, 90]) scale([1.05, 1.05, 1]) resize([0,0,3], auto=[false,false,true]) EmpreinteEcrou(3) ; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // Butee | ||
+ | translate([136, 12, 0]) difference() { | ||
+ | union() { | ||
+ | cube([6, 24, 36]); | ||
+ | translate([0, 12, 36]) rotate([0, 90, 0]) cylinder(d = 24, h = 6); | ||
+ | translate([-12, 24, 0]) rotate([0, 0, -90]) Prisme(24, 12, 29); // Renfort | ||
+ | } | ||
+ | translate([0, 12, 36]) rotate([0, 90, 0]) cylinder(d = 13, h = 6); | ||
+ | } | ||
+ | |||
+ | // Supports gachette | ||
+ | translate([186, 0, 0]) difference() { | ||
+ | union() { | ||
+ | cube([14, 18.5, 28]); | ||
+ | translate([7, 0, 28]) rotate([-90, 0, 0])cylinder(d= 14, h=18.5); | ||
+ | translate([-20, 18.5, 0]) rotate([0, 0, -90]) Prisme(18.5, 20, 28); // Renfort | ||
+ | } | ||
+ | translate([7, 0, 28]) rotate([-90, 0, 0]) cylinder(d= 3.2, h=18.5); | ||
+ | translate([7, 0, 28]) rotate([-90, 0, 0]) cylinder(d= 6, h=3); // Tête de vis | ||
+ | } | ||
+ | |||
+ | translate([186, 29.5, 0]) difference() { | ||
+ | union() { | ||
+ | cube([14, 18.5, 28]); | ||
+ | translate([7, 0, 28]) rotate([-90, 0, 0])cylinder(d= 14, h=18.5); | ||
+ | translate([-20, 18.5, 0]) rotate([0, 0, -90]) Prisme(18.5, 20, 28); // Renfort | ||
+ | } | ||
+ | translate([7, 0, 28]) rotate([-90, 0, 0]) cylinder(d= 3.2, h=18.5); | ||
+ | translate([7, 15.5, 28]) rotate([0, 90, 90]) scale([1.05, 1.05, 1]) resize([0,0,3], auto=[false,false,true]) EmpreinteEcrou(3) ; | ||
+ | } | ||
+ | |||
+ | //translate([193, 23, 28]) rotate([-90, 0, 180]) gachette(); | ||
+ | |||
+ | module EmpreinteEcrou(d) { | ||
+ | valeurs = [[[2.34, 5.5], 3]]; | ||
+ | for (i = [0:len(valeurs) - 1]) { | ||
+ | if (valeurs[i][1] == d) { | ||
+ | h = valeurs[i][0][0]; | ||
+ | e = valeurs[i][0][1] * 2 / sqrt(3); | ||
+ | rotate_extrude(convexity = 10, $fn = 6) square([e/2, h]); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | module Prisme(p, l, h){ | ||
+ | polyhedron( | ||
+ | points=[[0,0,0], [p,0,0], [p,l,0], [0,l,0], [0,l,h], [p,l,h]], | ||
+ | faces=[[0,1,2,3],[5,4,3,2],[0,4,5,1],[0,3,4],[5,2,1]] | ||
+ | ); | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | ==== Code gachette ==== | ||
+ | <code java> | ||
+ | include <rotate_p.scad>; | ||
+ | include <polysections.scad>; | ||
+ | include <path_extrude.scad>; | ||
+ | |||
+ | $fn = 100; | ||
+ | gachette(); | ||
+ | |||
+ | module gachette() { | ||
+ | myPoints = [ [0, -5], [5, -5], [5, 5], [0, 5] , for(t = [90: 2: 270]) [5 * cos(t), 5 * sin(t)] ]; | ||
+ | myPath = [ for(t = [120:1:360]) [exp(0.57 * t * PI / 180) * cos(t), exp(0.57 * t * PI / 180) * sin(t)] ]; | ||
+ | translate([0, -3, 0]) difference() { | ||
+ | union() { | ||
+ | path_extrude(myPoints, myPath); | ||
+ | // Queue | ||
+ | translate([40.279, -2.5, 0]) rotate([0, 0, 0]) rotate_extrude(angle=160, convexity=10) translate([5, 0, 0]) union() { | ||
+ | circle(d=10); | ||
+ | translate([-5, -5, 0]) square(size=[5, 10]); | ||
+ | } | ||
+ | // Tête | ||
+ | translate([0, 3, -5]) cylinder(d = 14, h = 10); | ||
+ | translate([0, 3, -5]) rotate([0, 0, 40.56]) translate([-4.5, 0, 0]) cube([4.67, 6.998, 10]); | ||
+ | translate([-10, -4, -5]) cube([10, 4, 10]); | ||
+ | } | ||
+ | translate([0, 3, -5]) cylinder(d = 3.2, h = 10); | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
+ | ===== Électronique ===== | ||
+ | La commande de l'actionneur s'effectue en appliquant du 12v aux bornes de celui-ci. | ||
+ | Un pont en H est utilisé (L293D). | ||
+ | ===== Liens ===== | ||
https://www.alarm-discount.com/verrouillage-centralise/72-moteurs-de-centralisation-5-fils.html | https://www.alarm-discount.com/verrouillage-centralise/72-moteurs-de-centralisation-5-fils.html | ||
- | {{tag>sylvain}} | + | {{tag> openscad sylvain }} |
+ | |||
+ | https://www.locoduino.org/spip.php?id_article=213&page=imprime | ||
+ | |||
+ | AEC-Q100 Motor Driver, Pont en H SOIC 16. 15A 41 V, VNH | ||
+ | Code commande RS 164-7017 Référence fabricant VNH7070ASTR Marque STMicroelectronics | ||
+ | |||
+ | https://openclassrooms.com/fr/courses/2778161-programmez-vos-premiers-montages-avec-arduino/3285355-le-moteur-a-courant-continu-partie-2-le-pont-en-h-et-les-circuits-integres | ||
+ | |||
+ | https://wiki.mchobby.be/index.php?title=Pont-H_L293D |