Outils pour utilisateurs

Outils du site


machine_a_peindre

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
machine_a_peindre [2019/11/03 16:18]
Mushussu [Visserie]
machine_a_peindre [2020/05/17 14:56] (Version actuelle)
Mushussu [Jours ...]
Ligne 5: Ligne 5:
 Pablo Picasso Pablo Picasso
  
 +[[https://​www.youtube.com/​watch?​v=s5MUxuY4Hbw|Niki de Saint-Phalle]]
 ===== Réalisation ===== ===== Réalisation =====
 ==== JOUR 1 ==== ==== JOUR 1 ====
Ligne 148: Ligne 149:
 |2  |Embase KK          |2 Contacts |22-27-2021 ​                 |Molex ​                 |483-8461 ​            ​|RS ​        | |2  |Embase KK          |2 Contacts |22-27-2021 ​                 |Molex ​                 |483-8461 ​            ​|RS ​        |
 |17 |Diode ​             |2A 100V    |HER202G R0                  |Taiwan Semiconductor ​  ​|688-1940 ​            ​|RS ​        | |17 |Diode ​             |2A 100V    |HER202G R0                  |Taiwan Semiconductor ​  ​|688-1940 ​            ​|RS ​        |
-|2  |Résistance ​        ​|22 ​ohm.    ​|MRS25000C2209FCT00 ​         |Vishay ​                ​|683-3336 ​            ​|RS ​        | +|2  |Résistance ​        |22Ω        ​|MRS25000C2209FCT00 ​         |Vishay ​                ​|683-3336 ​            ​|RS ​        | 
-|1  |Résistance ​        ​|10k ​ohm    ​|                            |                       ​| ​                    ​| ​          | +|1  |Résistance ​        |10kΩ       |                            |                       ​| ​                    ​| ​          | 
-|8  |Résistance ​        ​|1 ​ohm      ​|CFR25J1R0 ​                  |TE Connectivity ​       |135-550 ​             |RS         |+|8  |Résistance ​        |1Ω         |CFR25J1R0 ​                  |TE Connectivity ​       |135-550 ​             |RS         |
 |1  |Condensateur ​      ​|470uF ​     |711-1129 ​                   |RS Pro                 ​|711-1129 ​            ​|RS ​        | |1  |Condensateur ​      ​|470uF ​     |711-1129 ​                   |RS Pro                 ​|711-1129 ​            ​|RS ​        |
 |1  |Condensateur ​      ​|100nF ​     |USR1H0R1MDD ​                ​|Nichicon ​              ​|475-8961 ​            ​|RS ​        | |1  |Condensateur ​      ​|100nF ​     |USR1H0R1MDD ​                ​|Nichicon ​              ​|475-8961 ​            ​|RS ​        |
Ligne 307: Ligne 308:
 </​code>​ </​code>​
  
-===== Visserie ​===== +==== JOUR 10 ==== 
-^Qtt ^Nom                                   ​^Diamètre ​         ^Longueur ^Référence ​              ​^Remarques ​   ^ +08/12/2019
-|4   |Vis tête cylindrique hexagonale creuse|UNF 10-32         ​|1'' ​     |                        |eBay         | +
-|20  |Vis tête cylindrique hexagonale creuse|4 ​                ​|20 ​      ​| ​                       |             | +
-|1   |Vis tête cylindrique hexagonale creuse|5 ​                ​|40 ​      ​| ​                       |             |+
  
 +Impression du support du S.
 +Echec cuisant, j'ai retournée la pièce pour l'​impression et oublié de mettre l'​encoche de l'​autre côté.
  
 +==== JOUR 11 ====
 +09/12/2019
 +
 +J'ai rectifié l'​erreur d'hier et j'en ai profité pour peaufiner le tout :
 +<code java>
 +module SupportSolenoide() {
 +    difference() {
 +        union() {
 +            hull() {
 +                translate([80,​ 47, 0]) cylinder(d = 14, h = 5);
 +                translate([80,​ 7, 0]) cylinder(d = 14, h = 5);
 +                translate([7,​ 47, 0]) cylinder(d = 14, h = 5);
 +                translate([7,​ 7, 0]) cylinder(d = 14, h = 5);
 +            }
 +            //Patte
 +            hull() {
 +                translate([77,​ -4, 0]) cylinder(d = 20, h = 5);
 +                translate([77,​ 58, 0]) cylinder(d = 20, h = 5);
 +            }
 +            // Extension solénoïde
 +            hull() {
 +                translate([91,​ 42, 0]) cylinder(d = 10, h = 7.5);
 +                translate([91,​ 12, 0]) cylinder(d = 10, h = 7.5);
 +                translate([49,​ 42, 0]) cylinder(d = 10, h = 7.5);
 +                translate([49,​ 12, 0]) cylinder(d = 10, h = 7.5);
 +            }
 +        }
 +
 +        // Trous solénoïde
 +        translate([88,​ 38, 0]) cylinder(d = 3.2, h = 7.5);
 +        translate([88,​ 16, 0]) cylinder(d = 3.2, h = 7.5);
 +        translate([58,​ 38, 0]) cylinder(d = 3.2, h = 7.5);
 +        translate([58,​ 16, 0]) cylinder(d = 3.2, h = 7.5);
 +        // Tête de vis
 +        translate([88,​ 38, 0]) cylinder(d1 = 6.3, d2 = 3.2, h = 1.7);
 +        translate([88,​ 16, 0]) cylinder(d1 = 6.3, d2 = 3.2, h = 1.7);
 +        translate([58,​ 38, 0]) cylinder(d1 = 6.3, d2 = 3.2, h = 1.7);
 +        translate([58,​ 16, 0]) cylinder(d1 = 6.3, d2 = 3.2, h = 1.7);
 +        // Fixation
 +        translate([7,​ 7, 0]) cylinder(d = diamtreFixation,​ h = 6);
 +        translate([7,​ 47, 0]) cylinder(d = diamtreFixation,​ h = 6);
 +        // Passage écrou
 +        translate([41.5,​ 47, 0]) cube([11, 7, 7.5]);
 +        translate([47,​ 47, 0]) cylinder(d = 11, h = 7.5); 
 +        //pattes
 +        translate([77,​ 58, 0]) cylinder(d = diamtreFixation,​ h = 6);
 +        translate([77,​ -4, 0]) cylinder(d = diamtreFixation,​ h = 6);
 +        // Passage marqueur
 +        translate([0,​ 17, 0]) cube([16, 20, 7]);
 +        translate([0,​ 17, 0]) cube([40, 20, 3]);
 +    }
 +}
 +</​code>​
 +
 +==== JOUR 12 ====
 +10/12/2019
 +
 +L'​embout précédent s'est cassé au serrage de la courroie. J'ai modifié la position pour l'​impression. De ce fait la fibre de PLA est perpendiculaire à l'​effort. J'ai aussi augmenté l'​épaisseur des pattes de serrage. L'​ensemble des éléments du plateau sont imprimés. Il reste à équilibrer le plateau afin de diminuer les efforts sur le moteur de tilt.
 +
 +<code java>
 +module EmboutSolenoide() {
 +    largeurCourroie = 6;
 +    largeurEmbout = 50;
 +    profondeur = 18;
 +    longueurVis = 17;
 +    largeurCote = 10;
 +    difference() {
 +        union() {
 +            // Base
 +            hull() {
 +                translate([4,​ 0, 4]) rotate([-90,​ 0, 0]) cylinder(d = 8, h = profondeur);​
 +                translate([largeurEmbout - 4, 0, 4]) rotate([-90,​ 0, 0]) cylinder(d = 8, h = profondeur);​
 +            }
 +            // Côté gauche
 +            translate([0,​ 0, 4]) cube([largeurCote,​ profondeur, ​ 13 + largeurCourroie / 2]);
 +            translate([0,​ profondeur / 2, 17 + largeurCourroie / 2]) rotate([0, 90, 0]) cylinder(d = profondeur, h = largeurCote);​
 +            translate([-4,​ 0, 14 - largeurCourroie / 2]) cube([4, profondeur, largeurCourroie + 2]); // Passage courroie
 +            translate([-4,​ 0, 11]) rotate([0, 180, -90]) prisme(profondeur,​ 4, 4);
 +            // Côté droit
 +            translate([largeurEmbout - largeurCote,​ 0, 4]) cube([largeurCote,​ profondeur, ​ 13 + largeurCourroie / 2]);
 +            translate([largeurEmbout - largeurCote,​ profondeur / 2, 17 + largeurCourroie / 2]) rotate([0, 90, 0]) cylinder(d = profondeur, h = largeurCote);​
 +            translate([largeurEmbout,​ 0, 14 - largeurCourroie / 2]) cube([4, profondeur, largeurCourroie + 2]); // Passage courroie
 +            translate([largeurEmbout + 4, profondeur, 11]) rotate([0, 180, 90]) prisme(profondeur,​ 4, 4);
 +            // Partie centrale
 +            hull() {
 +                translate([largeurEmbout / 2, 0, 15]) rotate([-90,​ 0, 0]) cylinder(d = 22, h = profondeur);​
 +                translate([largeurCote,​ 0, 8]) cube([largeurEmbout - 2 * largeurCote,​ profondeur, 0.1]);
 +            }
 +        }
 +        // Axe solénoïde
 +        translate([largeurEmbout / 2, 0, 15]) rotate([-90,​ 0, 0]) cylinder(d = 12.1, h = 13);
 +        // Encoches
 +        translate([largeurCote / 2, 0, 5]) Trapeze(0.5,​ 1.5, profondeur, 30);
 +        translate([largeurEmbout - largeurCote / 2, 0, 5]) Trapeze(0.5,​ 1.5, profondeur, 30);
 +        // Vis
 +        translate([0,​ profondeur / 2, 17 + largeurCourroie / 2]) rotate([0, 90, 0]) cylinder(d = 4, h = longueurVis);​
 +        translate([largeurEmbout - longueurVis,​ profondeur / 2, 17 + largeurCourroie / 2]) rotate([0, 90, 0]) cylinder(d = 4, h = longueurVis);​
 +        // Tête de vis
 +        translate([-4,​ profondeur / 2, 17 + largeurCourroie / 2]) rotate([0, 90, 0]) cylinder(d = 7, h = 4);
 +        translate([largeurEmbout,​ profondeur / 2, 17 + largeurCourroie / 2]) rotate([0, 90, 0]) cylinder(d = 7, h = 4);
 +        // Ecrou
 +        translate([largeurCote,​ profondeur / 2, 17 + largeurCourroie / 2]) rotate([0, 90, 0]) cylinder(d = 8, h = 5.6);
 +        translate([largeurEmbout - largeurCote -5.6, profondeur / 2, 17 + largeurCourroie / 2]) rotate([0, 90, 0]) cylinder(d = 
 +        8, h = 5.6);
 +        ​
 +        // Fixation sur solenoide
 +        translate([largeurEmbout / 2, 7, 10]) cylinder(d = 3.3, h = 20); 
 +        translate([largeurEmbout / 2, 7, 1]) cylinder(d = 3.1, h = 15);
 +        ​
 +        // Arrondisseur
 +        translate([0,​ 4, 0]) rotate([0, 0, 180]) arrondisseurAngle(4,​ 30);
 +        translate([largeurEmbout,​ 4, 0]) rotate([0, 0, -90]) arrondisseurAngle(4,​ 30);
 +    }
 +}
 +
 +module arrondisseurAngle(rayon,​ hauteur) ​ {
 +    difference() {
 +        cube([rayon,​ rayon, hauteur]);
 +        cylinder(r = rayon, h = hauteur);
 +    }
 +}
 +
 +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 ); 
 +}
 +</​code>​
 +
 +==== JOUR 13 ====
 +24/12/2019
 +
 +Echec lamentable d'​impression des outils pour centrer le dispositif de peinture.
 +
 +==== JOUR 14 ====
 +25/12/2019
 +
 +Passage par la fraiseuse numérique avec l'​utilisation d'un conte-plaqué de 5mm afin d'​obtenir ceci qui va me permettre de trouver le point d'​équilibre précis du plateau avec tout les accessoires :
 +
 +{{:​centrage.png?​direct&​400|Centre}}
 +
 +<code java>
 +$fn = 50;
 +
 +Decalage();
 +
 +module Decalage() {
 +    difference() {
 +        // Base
 +        hull() {
 +            circle(d ​ = 60);
 +            translate([25,​ 0, 0]) circle(d ​ = 60);
 +        }
 +        for (i = [-26: 5 : 50]) {
 +            translate([i,​ 0]) circle(d = 3); // Trou de l'axe
 +        }
 +        translate([-50,​ 22.63]) square([100,​ 100]);
 +        for (i = [0 : 3]) {  ​
 +            for (j = [0 : 6: 24]) {
 +            translate([j,​ 0]) rotate(90 * i) translate([18,​ 18]) circle(d = 4.2); // Trous de fixations 1
 +            }
 +        }
 +    }
 +}
 +</​code>​
 +
 +==== JOUR 15 ====
 +26/12/2019
 +
 +La fraiseuse numérique à encore travailler. Aujourd'​hui réalisation du plateau avec les corrections faites au fil du temps :
 +<code java>
 +module Plateau() {
 +    difference() {
 +        hull() { // Forme
 +            translate([-20,​ 132]) circle(r=30);​
 +            translate([111,​ 152]) circle(r=10);​
 +            translate([111,​ -162]) circle(r=10);​
 +            translate([-20,​ -142]) circle(r=30);​
 +            translate([-91,​ 45]) circle(r=30);​
 +            translate([-91,​ -52]) circle(r=30);​
 +        }
 +        // Vis support lyre
 +        translate([-110,​ -42]) circle(d = 4); // Bas Gauche
 +        translate([110,​ -42]) circle(d = 4); // Bas Droite
 +        translate([-110,​ 22]) circle(d = 4); // Haut Gauche
 +        translate([110,​ 22]) circle(d = 4); // Haut Droite
 +           
 +        translate([-45,​ -36])  circle(d = 4); // Bas Centre Gauche
 +        translate([-45,​ 23])  circle(d = 4); // Haut Centre Gauche
 +        translate([45,​ -36]) circle(d = 4); // Bas Centre Droite
 +        translate([45,​ 23]) circle(d = 4); // Haut Centre Droite
 +
 +        translate([-10,​ -116]) square([20, 155]); // Emplacement marqueur
 +        // Passage embout
 +        translate([0,​ 109]) circle(d = 26);
 +        translate([-10,​ 77]) square([20, 32]);
 +        ​
 +        translate([-10,​ 39.1]) square([20, 37.8]); // Poche de 1mm de profondeur
 +        ​
 +        translate([38,​ 37]) square([64, 5]); // Rainure renfort droite
 +        translate([-102,​ 37]) square([64, 5]); // // Rainure renfort gauche
 +        ​
 +        translate([0,​ -4]) circle(d=26);​ // Sécurité
 +        // -103.3 Vis arrière
 +        // 90.7 Vis avant
 +        // 194 Distance entre deux vis
 +        ​
 +        // Support marqueur arrière
 +        translate([-20,​ -83]) circle(d = 4.1);
 +        translate([-20,​ -123]) circle(d = 4.1);
 +        translate([20,​ -83]) circle(d = 4.1);
 +        //​translate([20,​ -123]) circle(d = 4.1);
 +        ​
 +        // Support marqueur avant
 +        translate([-20,​ 111]) circle(d = 4.1);
 +        translate([-20,​ 71]) circle(d = 4.1);
 +        translate([20,​ 111]) circle(d = 4.1);
 +        translate([20,​ 71]) circle(d = 4.1);
 +    ​
 +        // Support Bouteille
 +        translate([31,​ -153]) circle(d = 4.1);
 +        translate([111,​ -153]) circle(d = 4.1);
 +        translate([111,​ -103]) circle(d = 4.1);
 +        ​
 +        // Support Solénoïde
 +        translate([-31,​ -153]) circle(d = 4.1);
 +        ​
 +        // Support Embout Bouteille
 +        translate([41,​ 154]) circle(d = 4.1);
 +        translate([101,​ 154]) circle(d = 4.1);
 +        translate([41,​ 126]) circle(d = 4.1);
 +        translate([101,​ 126]) circle(d = 4.1);
 +    }
 +}
 +</​code>​
 +Une erreur existe encore, mais je la corrigerais peut-être plus tard. Il reste encore à vérifier que le plateau soit bien équilibré par rapport à 'axe de rotation.
 +
 +==== JOUR 16 ====
 +27/12/2019
 +
 +Mise au point du test logiciel pour la rotation des différents axes. Réussite absolue comme cette vidéo en témoigne :
 +
 +{{test_rotation.mp4|Rotation}}
 +
 +==== JOUR 17 ====
 +29/12/2019
 +
 +Test de l'​équilibre du plateau avec les accessoires. Il est bien équilibré et le moteur entraine convenablement l'​ensemble.
 +
 +Avec l'​inertie de l'​ensemble,​ des pas "​sautent",​ donc il est nécessaire d'​utiliser la roue dentée et les fourches optique afin de pouvoir établir une position précise.
 +
 +Une modification du plateau est nécessaire pour que le coin inférieur droit puis passer dans la fourche de la lyre.
 + 
 +==== JOUR 17 ====
 +25/01/2020
 +
 +Finalisation de la pseudo-résidence au 108 pour voir la machine montée et la faire fonctionner.
 +Voici le résultat :
 +{{ :​map_coeur.mp4 |}}
 +
 +Un autre angle permettant de voir la machine en fonctionnement :
 +
 +{{ :​map_coeur2.mp4 |}}
 +===== Matériel =====
 +==== Visserie ====
 +^Qtt ^Nom                                      ^Diamètre ​         ^Taille ​  ​^Référence ​              ​^Remarques ​   ^
 +|20  |Vis TCHC acier 8.8 noir EF DIN 912       ​|4 ​                ​|20 ​      ​|TCHC04/​020A8NOEF ​       |FIXNVIS ​     |
 +|20  |Vis TCHC acier 8.8 noir EF DIN 912       ​|4 ​                ​|30 ​      ​|TCHC04/​030A8NOEF ​       |FIXNVIS ​     |
 +|1   ​|Ecrou carré ​ DIN 557                     ​|5 ​                ​|8x8x4 ​   |ECRCAR05/​08/​08/​4ZN ​     |FIXNVIS ​     |
 +|1   ​|Ecrou nylstop acier zingué blanc DIN 985 |4                 ​| ​        ​|ECRNYL04ZN ​             |FIXNVIS ​     |
 +|1   ​|Rondelle acier zingué blanc NFE 25513    |4                 ​|M ​       |RONM04ZN ​               |FIXNVIS ​     |
 +
 +^Qtt ^Nom                                      ^Diamètre ​         ^Taille ​  ​^Référence ​              ​^Remarques ​   ^
 +|4   |Vis tête cylindrique hexagonale creuse ​  |UNF 10-32         ​|1'' ​     |                        |eBay         |
 +|1   |Vis TCHC acier 8.8 noir EF DIN 912       ​|3 ​                ​|20 ​      ​|TCHC03/​020A8NOEF ​       |FIXNVIS ​     |
 +|2   |Vis TCHC acier 8.8 noir EF DIN 912       ​|4 ​                ​|16 ​      ​|TCHC04/​016A8NOEF ​       |FIXNVIS ​     |
 +|1   |Vis TCHC acier 8.8 noir EF DIN 912       ​|5 ​                ​|40 ​      ​|TCHC05/​040A8NOEF ​       |FIXNVIS ​     |
 +|4   |Vis TFHC acier 10.9 noir EF DIN 7991     ​|3 ​                ​|12 ​      ​|TFHC03/​012A10NOEF ​      ​|FIXNVIS ​     |
 +
 +==== Alimentation ====
 +Boîtier ​
 +[[https://​www.ldlc.com/​informatique/​pieces-informatique/​alimentation-pc/​c4289/​+fv1911-10773.html|SFX]] ou
 +[[https://​www.ldlc.com/​informatique/​pieces-informatique/​alimentation-pc/​c4289/​+fv1911-10775.html|TFX]]
 +
 +
 +Contrôleur de moteur pas à pas:
 +
 +A3982
 +
 +==== Consommables ====
 +
 +[[https://​www.geant-beaux-arts.fr/​papier-recycle-110g-m-1-x-50m-gris-clair-rouleau.html|Papier gris 1 x 50]]
 ===== Liens ===== ===== Liens =====
 Pour les PCB : Pour les PCB :
  
  
-Tutoriel : http://​riton-duino.blogspot.com/​2018/​11/​concevoir-un-pcb.html+[[http://​riton-duino.blogspot.com/​2018/​11/​concevoir-un-pcb.html|Tutoriel]] 
 + 
 +[[https://​www.pcbway.com|pcbway]] 
 + 
 +[[https://​oshpark.com|oshpark]] 
 + 
 +[[https://​forum.hardware.fr/​hfr/​electroniquedomotiquediy/​conception_depannage_mods/​concevoir-fabriquer-presque-sujet_645_6.htm|Forum PCB : concevoir et fabriquer comme un pro (ou presque)]] 
 + 
 +A tester pour un clavier : 
 + 
 +[[https://​gitlab.freedesktop.org/​libevdev/​libevdev/​blob/​master/​tools/​libevdev-events.c|libevdev-events]] 
 + 
 +Joystick :  
 + 
 +[[https://​gist.github.com/​jasonwhite/​c5b2048c15993d285130|Reads joystick/​gamepad events on Linux and displays them.]] 
 + 
 +[[https://​gist.github.com/​meghprkh/​9cdce0cd4e0f41ce93413b250a207a55|Libevdev playground]] 
 + 
 +Circuit : 
 + 
 +[[https://​reprap.org/​wiki/​Stepper_Motor_Driver_2.3|Stepper Motor Driver 2.3]] 
 + 
 +[[http://​www.cuteminds.com/​en/​elettronicagen/​elettronica/​36-controller-bipolare-con-a3982-allegro|A3982 bipolar small stepper motor controller]] 
 + 
 +Logiciel : 
 + 
 +PWM : [[https://​librpip.frasersdev.net/​peripheral-config/​pwm0and1/​|PWM0 & 1]] 
 + 
 +PWM : [[https://​github.com/​raspberrypi/​firmware/​issues/​1178|RPI4 : PWM0 & PWM1 Alternate pins]] 
 + 
 +ISR : [[https://​gist.github.com/​ast/​a19813fce9d34c7240091db11b8190dd|How to read a quadrature encoder in C on the Raspberry Pi GPIO, using the wiringPi library]] 
 + 
 +Câble : 
 + 
 +[[https://​yadom.fr/​plateformes-de-developpement/​raspberry-pi/​alimentations/​cable-usb-c-coude-alimentation-raspberry-pi-4.html|yadom]]
  
-https://​www.pcbway.com+[[https://​www.amazon.fr/​gp/​product/​B07V6PVPKB|Amazon]]
  
-https://oshpark.com+[[http://www.phartech.it|Fabricant de billes]]
  
-https://forum.hardware.fr/hfr/electroniquedomotiquediy/​conception_depannage_mods/​concevoir-fabriquer-presque-sujet_645_6.htm+[[http://paintballfactory.pl/fr/page-daccueil/|Autre piste]]
  
-Joystick : https://​gist.github.com/​jasonwhite/​c5b2048c15993d285130 
 {{tag>​sylvain}} {{tag>​sylvain}}
machine_a_peindre.1572794313.txt.gz · Dernière modification: 2019/11/03 16:18 par Mushussu