servomoteur_lineaire
Ceci est une ancienne révision du document !
Table des matières
Élaboration d'un servomoteur linéaire
Présentation
Code OpenSCAD
$fn = 100; servomoteur(); module servomoteur() { color("black") moteur(); color("red") translate([-70, -9, -5.6]) fader1(); // y = 8.2 translate([15, 0, 0]) poulie(); translate([-150, 0, 5]) poulieLibre(); color("red") translate([-155, 7.5, -10]) rail(); // Couroie color("black") translate([0, 0, 6.5]) difference() { hull() { translate([15, 0, 0]) cylinder(d = 13, h = 6); translate([-150, 0, 0]) cylinder(d = 13, h = 6); } translate([0, 0, -1]) hull() { translate([15, 0, 0]) cylinder(d = 10, h = 8); translate([-150, 0, 0]) cylinder(d = 10, h = 8); } } color("red") translate([-36, -1, -2]) chariot(); color("white") translate([46, 0, 0]) rotate([0, 0, 180]) piece(); color("pink") translate([-5.25, 11.3, 10]) rotate([0, -90, 0]) cylinder(d = 5, h = 200); // Tige } module fader1() { color("white") translate([0, 0, -6.1]) import("RSA0N11S9A0K.stl"); } module piece() { // Plaque moteur translate([-4, -16, 0]) difference() { translate([0, -1, 0]) cube([50, 33, 4]); translate([11, 7, -1]) cylinder(d = 3.2, h = 10); translate([11, 25, -1]) cylinder(d = 3.2, h = 10); translate([44, 7, -1]) cylinder(d = 3.2, h = 10); translate([44, 25, -1]) cylinder(d = 3.2, h = 10); translate([35, 16, -1]) cylinder(d = 14, h = 20); // Espace poulie } // Support fixation translate([-4, -20, 4]) prisme(4, 32, 14); translate([20, -20, 4]) prisme(4, 32, 14); translate([-4, 12, 0]) difference() { cube([28, 4, 18]); translate([21, 20, 7]) rotate([90, 0, 0]) cylinder(d = 3.2, h = 40); translate([7, 20, 14]) rotate([90, 0, 0]) cylinder(d = 3.2, h = 40); } // Support rail translate([46, -16, -14]) difference() { translate([0, -1, 0]) cube([137, 19, 4]); for (i = [0 : 10]) { translate([12.5 + i * 15, 8.5, -1]) cylinder(d = 2.2, h = 7); } } // Support potentiomètre translate([46, 14, -14]) cube([137, 2, 11]); translate([46, 2, -14]) cube([137, 2, 11]); translate([46, -17, -14]) cube([4, 33, 18]); translate([46, 16, -14]) difference() { // Support potentiomètre translate([0, -14, 7.82]) cube([140, 14, 3.18]); translate([14, -8.5, 7]) cube([112, 3, 6]); translate([10, -7, 10.9]) visFraisee(3, 15, 10); translate([130, -7, 10.9]) visFraisee(3, 15, 10); } // Extrémité translate([182, -16, 0]) difference() { union() { // Bloc translate([0, -1, -14]) cube([24, 26, 18]); translate([0, 25, -3]) rotate([0, 90, 0]) cylinder(d = 14, h = 24); translate([0, 0, -14]) cube([24, 32, 11]); // Coulisse tige //translate([0, 0, 0]) cube([24, 9, 10]); //translate([0, 4.5, 10]) rotate([0, 90, 0]) cylinder(d = 9, h = 24); // Support poulie hull() { translate([9, 3, 10]) rotate([0, 90, 0]) cylinder(d = 14, h = 15); translate([9, 25, 10]) rotate([0, 90, 0]) cylinder(d = 14, h = 15); } translate([9, -4, -4]) cube([15, 36, 14]); // Support fixation translate([9, 25, 17]) rotate([0, 0, -90]) prisme(4, 11, 18); translate([9, 7, 17]) rotate([0, 0, -90]) prisme(4, 11, 18); translate([20, 3, 17]) cube([4, 22, 18]); } translate([-1, 4.7, 10]) rotate([0, 90, 0]) cylinder(d = 5.2, h = 40); // Insertion tige translate([8, 9, 4]) cube([20, 14, 11]); // Insertion poulie translate([-1, 4, -10]) cube([40, 9, 10]); // Passage de rail // Axe poulie L : 20 translate([14, 16, -3]) cylinder(d = 3.2, h = 33); translate([14, 16, 13]) cylinder(d = 3.2, h = 33); // Trou de fixation sur l'hexagone L : 30 translate([2, 17, -10]) rotate([0, 90, 0]) cylinder(d = 3.2, h = 50); translate([2, 28, -1]) rotate([0, 90, 0]) cylinder(d = 3.2, h = 50); // Fixation hexagone translate([19, 14, 30]) rotate([0, 90, 0]) cylinder(d = 3.2, h = 40); } // Renfort côté translate([-4, -20, -14]) cube([210, 3, 18]); // Extension impression translate([26, -16, -14]) cube([20, 32, 2]); translate([206, -20, -14]) cube([20,36, 2.2]); } module chariot() { difference() { translate([0, -11, 0]) union() { // Plaque cube([30.8, 28, 5]); hull() { translate([1.5, 0, 0])cylinder(d = 3, h = 5); translate([29.3, 0, 0]) cylinder(d = 3, h = 5); } // Coinceurs courroie translate([1.5, 0, 4]) difference() { coinceurCourroie(); translate([5, 10, 14]) rotate([90, 0, 0]) cylinder(d = 2.2, h = 20); translate([22.5, 10, 14]) rotate([90, 0, 0]) cylinder(d = 2.2, h = 20); } } // Trou de vis translate([8.9, 2.5, -1]) cylinder(d = 2, h = 7); translate([21.9, 2.5, -1]) cylinder(d = 2, h = 7); translate([8.9, 14.5, -1]) cylinder(d = 2, h = 7); translate([21.9, 14.5, -1]) cylinder(d = 2, h = 7); // Fente potentiomètre translate([5.4, -8.8, -1]) cube([20, 1.5, 5]); } // Support de tige translate([0, 12.5, 2]) difference() { union() { translate([0, -4.5, 0]) cube([30.8, 9, 10]); translate([0, 0, 10]) rotate([0, 90, 0]) cylinder(d = 9, h = 30.8); } translate([-1, -0.2, 10]) rotate([0, 90, 0]) cylinder(d = 5.2, h = 40); // Insertion tige translate([8.9, 2, -1]) cylinder(d = 4.4, h = 20); // Trou de tête de vis translate([21.9, 2, -1]) cylinder(d = 4.4, h = 20); // Trou de tête de vis translate([27, 0, 2]) cylinder(d = 2, h = 13); // Blocage tige } } module rail() { // Rail translate([0, -3.5, 0]) difference() { cube([150, 7, 4.8]); for(i = [0 : 10]) { translate([7.5 + i * 15, 3.5, -1]) cylinder(d = 2.4, h = 7); translate([7.5 + i * 15, 3.5, 2.]) cylinder(d = 4.2, h = 3); } } // Chariot translate([119, -8.5, 1.5]) difference() { cube([30.8, 17, 6.5]); translate([8.9, 2.5, 3]) cylinder(d = 2, h = 6); translate([21.9, 2.5, 3]) cylinder(d = 2, h = 6); translate([8.9, 14.5, 3]) cylinder(d = 2, h = 6); translate([21.9, 14.5, 3]) cylinder(d = 2, h = 6); } } module coinceurCourroie() { difference() { union() { // hull() { sphere(d = 3); translate([27.8, 0, 0]) sphere(d = 3); translate([0, 0, 16]) sphere(d = 3); translate([27.8, 0, 16]) sphere(d = 3); } hull() { translate([0, 3.5, 0]) sphere(d = 3); translate([10, 3.5, 0]) sphere(d = 3); translate([0, 3.5, 16]) sphere(d = 3); translate([10, 3.5, 16]) sphere(d = 3); } translate([17.8, 0, 0]) hull() { translate([0, 3.5, 0]) sphere(d = 3); translate([10, 3.5, 0]) sphere(d = 3); translate([0, 3.5, 16]) sphere(d = 3); translate([10, 3.5, 16]) sphere(d = 3); } } translate([30 , 1.75, 0.001]) rotate([0, 0, 90]) Trapeze(1, 2.5, 32, 40); } } module Trapeze(b1, b2, p, h) { CubePoints = [ [ -b1 / 2, 0, 0 ], //0 [ b1 / 2, 0, 0 ], //1 [ b1 / 2, p, 0 ], //2 [ -b1 / 2, p, 0 ], //3 [ -b2 / 2, 0, h ], //4 [ b2 / 2, 0, h ], //5 [ b2 / 2, p, h ], //6 [ -b2 / 2, p, h ]]; //7 CubeFaces = [ [0,1,2,3], // Base [4,5,1,0], // Face [7,6,5,4], // Haut [5,6,2,1], // Droite [6,7,3,2], // Arrière [7,4,0,3]]; // Gauche polyhedron( CubePoints, CubeFaces ); } module poulie() { translate([0, 0, 6]) { cylinder(d = 9, h = 7); for (angle = [0:7]) { rotate([0, 0, angle * 22.5]) translate([-5.055, -0.5,0]) cube([10.19, 1, 7]); } } translate([0, 0, 13]) cylinder(d = 13, h = 1); difference() { cylinder(d = 13, h = 6); translate([0, 0, 3]) rotate([90, 0, 0]) cylinder(d = 4, h = 7); } } module poulieLibre() { difference() { union() { cylinder(d = 13, h = 1); translate([0, 0, 1]) { cylinder(d = 9, h = 7); for (angle = [0:7]) { rotate([0, 0, angle * 22.5]) translate([-5.055, -0.5,0]) cube([10.19, 1, 7]); } } translate([0, 0, 8]) cylinder(d = 13, h = 1); } translate([0, 0, -1]) cylinder(d = 3, h = 12); // Axe poulie } } module arcCylinder(d, h, a) { difference() { cylinder(d = d, h = h); translate([- d / 2, -d, -1]) cube([d, d, h + 2]); rotate([0, 0, a]) translate([- d / 2, 0, -1]) cube([d, d, h + 2]); } } module moteur() { translate([0, -16, -25.2]) cube([46, 32, 23.2]); translate([46, 3.8, -13.2]) rotate([0, 90, 0]) cylinder(d = 24.4, h = 30.8); translate([15, 0, -2]) cylinder(d = 6, h = 14); translate([6, 9, -2]) difference() { cylinder(d = 7.4, h = 2); cylinder(d = 3, h = 3); } translate([6, -9, -2]) difference() { cylinder(d = 7.4, h = 2); cylinder(d = 3, h = 3); } translate([39, 9, -2]) difference() { cylinder(d = 7.4, h = 2); cylinder(d = 3, h = 3); } translate([39, -9, -2]) difference() { cylinder(d = 7.4, h = 2); cylinder(d = 3, h = 3); } } module visFraisee(d, l, puit = 0) { if (d == 3) { translate([0, 0, -l]) cylinder(d = 3.2, h = l); translate([0, 0, -1.6009]) cylinder(d1 = 3.2, d2 = 6.3, h = 1.7); if (puit != 0) { cylinder(d = 6.3, h = puit); } } } module prisme(l, w, h){ polyhedron( points=[[0,0,0], [l,0,0], [l,w,0], [0,w,0], [0,w,h], [l,w,h]], faces=[[0,1,2,3],[5,4,3,2],[0,4,5,1],[0,3,4],[5,2,1]] ); }
Matériel
Visserie
Qtt | Nom | Diamètre | Taille | Référence | Fournisseur |
---|---|---|---|---|---|
4 | Vis TCHC acier 8.8 noir DIN 912 | 3 | 6 | TCHC03/006A8NOEF | FIXNVIS |
2 | Vis TFHC acier 10.9 noir DIN 7991 | 3 | 6 | TFHC03/006A10NOEF | FIXNVIS |
10 | Vis TCHC acier 12.9 noir DIN 912 | 2 | 10 | TCHC02/010A12NOEF | FIXNVIS |
9 | Rondelle Blanc NFE 25513 | 2 | M | RONM02ZN | FIXNVIS |
9 | Ecrou hexagonal HU acier brut DIN 934 | 2 | ECRHU02BR | FIXNVIS | |
4 | Vis TCHC acier 12.9 noir DIN 912 | 2 | 8 | TCHC02/008A12NOEF | FIXNVIS |
1 | Vis TCHC acier 8.8 noir DIN 912 | 3 | 20 | TCHC03/020A8NOEF | FIXNVIS |
2 | Vis TCHC acier 8.8 noir DIN 912 | 3 | 8 | TCHC03/008A8NOEF | FIXNVIS |
2 | Écrou nylstop zingué blanc DIN 985 | 3 | ECRNYL03ZN | FIXNVIS |
- Liste à puce Rail linéaire 150 mm MGN7H Aliexpress
- Moto-réducteur Bringsmart JGY-370 12V 30RPM + Package A Aliexpress
- Poulie avec roulement à bille 16 dents alésage 3mm largeur 6 mm avec dents pour courroie GT2 Aliexpress
- Courroie GT2, largeur 6mm longueur 420mm Aliexpress
- Poulie fixe GT2 16 dents alésage 6mm Aliexpress
servomoteur_lineaire.1624191692.txt.gz · Dernière modification : 2021/06/20 12:21 de Mushussu