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/12/10 22:11]
Mushussu
machine_a_peindre [2020/12/01 18:43]
serge ↷ Liens modifiés en raison d'un déplacement.
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 12: Ligne 13:
 La voici démontée : La voici démontée :
  
-{{:démontage.jpg?400|}}+{{media_03:demontage.jpg?400|}}
  
 Les deux moteurs pas-à-pas qui réalisent le pan et le tilt ont comme référence : 23HS0001-02 Les deux moteurs pas-à-pas qui réalisent le pan et le tilt ont comme référence : 23HS0001-02
Ligne 28: Ligne 29:
 Objectif : Réalisation du capteur optique manquant sur la roue codeuse du pan : Objectif : Réalisation du capteur optique manquant sur la roue codeuse du pan :
  
-{{:encodeur.jpg?400|}}+{{media_03:encodeur.jpg?400|}}
  
 J'ai pris modèle sur le capteur du tilt. La surprise a été de constater que deux encodeurs optique étaient positionnés côte à côte. J'ai pris modèle sur le capteur du tilt. La surprise a été de constater que deux encodeurs optique étaient positionnés côte à côte.
Ligne 37: Ligne 38:
 Résultat : ~2470 Résultat : ~2470
  
-{{:montage.jpg?400|}}+{{media_09:montage.jpg?400|}}
  
 Code Arduino : Code Arduino :
Ligne 99: Ligne 100:
 Objectif : Faire fonctionner les capteurs à effet Hall du pan Objectif : Faire fonctionner les capteurs à effet Hall du pan
  
-{{:hall_map.jpg?400|}}+{{media_06:hall_map.jpg?400|}}
  
 J'ai repris le code Arduino de l'étape précédente. Pour la visualisation des capteurs, voici le code Processing : J'ai repris le code Arduino de l'étape précédente. Pour la visualisation des capteurs, voici le code Processing :
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 184: Ligne 185:
 Fraisage du plateau avec le code ci-dessous : Fraisage du plateau avec le code ci-dessous :
  
-{{:plateau.png?400|Plateau}}+{{media_11:plateau.png?400|Plateau}}
  
 <code java> <code java>
Ligne 244: Ligne 245:
 Conception du support de l'embout du marqueur : Conception du support de l'embout du marqueur :
  
-{{:supportembout.png?400 |}}+{{media_12:supportembout.png?400 |}}
 <code java> <code java>
 module SupportEmbout() { module SupportEmbout() {
Ligne 280: Ligne 281:
 La distance entre le dessus du plateau en bois et l'axe de rotation est de 35,7mm. La distance entre le dessus du plateau en bois et l'axe de rotation est de 35,7mm.
  
-{{:supportmarqueur.png?400 |Support Marqueur}}+{{media_12:supportmarqueur.png?400 |Support Marqueur}}
 <code java> <code java>
 module SupportMarqueur() { module SupportMarqueur() {
Ligne 309: Ligne 310:
 ==== JOUR 10 ==== ==== JOUR 10 ====
 08/12/2019 08/12/2019
 +
 Impression du support du S. 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é. Echec cuisant, j'ai retournée la pièce pour l'impression et oublié de mettre l'encoche de l'autre côté.
Ligne 314: Ligne 316:
 ==== JOUR 11 ==== ==== JOUR 11 ====
 09/12/2019 09/12/2019
 +
 J'ai rectifié l'erreur d'hier et j'en ai profité pour peaufiner le tout : J'ai rectifié l'erreur d'hier et j'en ai profité pour peaufiner le tout :
 <code java> <code java>
Ligne 339: Ligne 342:
         }         }
  
-        // Trous Solenoid+        // Trous solénoïde
         translate([88, 38, 0]) cylinder(d = 3.2, h = 7.5);         translate([88, 38, 0]) cylinder(d = 3.2, h = 7.5);
         translate([88, 16, 0]) cylinder(d = 3.2, h = 7.5);         translate([88, 16, 0]) cylinder(d = 3.2, h = 7.5);
Ligne 364: Ligne 367:
 } }
 </code> </code>
-===== Visserie =====+ 
 +==== 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 : 
 + 
 +{{media_05: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 : 
 +{{ media_08:map_coeur.mp4 |}} 
 + 
 +Un autre angle permettant de voir la machine en fonctionnement : 
 + 
 +{{ media_08:map_coeur2.mp4 |}} 
 +===== Matériel ===== 
 +==== Visserie ====
 ^Qtt ^Nom                                      ^Diamètre          ^Taille   ^Référence               ^Remarques    ^ ^Qtt ^Nom                                      ^Diamètre          ^Taille   ^Référence               ^Remarques    ^
-|4   |Vis tête cylindrique hexagonale creuse   |UNF 10-32         |1''      |                        |eBay         | 
 |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                 |20       |TCHC04/020A8NOEF        |FIXNVIS      |
 |20  |Vis TCHC acier 8.8 noir EF DIN 912       |4                 |30       |TCHC04/030A8NOEF        |FIXNVIS      | |20  |Vis TCHC acier 8.8 noir EF DIN 912       |4                 |30       |TCHC04/030A8NOEF        |FIXNVIS      |
-|1   |Vis TCHC acier 8.8 noir EF DIN 912       |5                 |40       |TCHC05/040A8NOEF        |FIXNVIS      | 
 |1   |Ecrou carré  DIN 557                     |5                 |8x8x4    |ECRCAR05/08/08/4ZN      |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   |Ecrou nylstop acier zingué blanc DIN 985 |4                         |ECRNYL04ZN              |FIXNVIS      |
 |1   |Rondelle acier zingué blanc NFE 25513    |4                 |M        |RONM04ZN                |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.txt · Dernière modification: 2020/12/01 18:43 de serge