Ceci est une ancienne révision du document !
Table des matières
Machine à peindre
Inspirations
“Non, la peinture n’est pas faite pour décorer les appartements. C’est un instrument de guerre offensive et défensive contre l’ennemi.”
Pablo Picasso
Réalisation
JOUR 1
09/11/2108
Base une lyre Robe Spot 250xt hors d'usage. La voici démontée :
Les deux moteurs pas-à-pas qui réalisent le pan et le tilt ont comme référence : 23HS0001-02
Les connecteurs de moteur JST :
Boitier - Code commande : RS 820-1523 / Référence fabricant : XHP-11 / Fabricant : JST
Cosse - Code commande RS : 820-1529 / Référence fabricant : BXH-001T-P0.6 / Fabricant : JST
Commutateur optique manquant : Code commande RS 708-5538 Référence fabricant TCST1103 Fabricant Vishay
JOUR 2
22/11/2108 Objectif : Réalisation du capteur optique manquant sur la roue codeuse du pan :
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.
JOUR 3
13/12/2108
Objectif : Compter le nombre de pas du pan avec l'encodeur optique. Résultat : ~2470
Code Arduino :
byte c2, c3; void setup() { Serial.begin(115200); pinMode(2, INPUT_PULLUP); pinMode(3, INPUT_PULLUP); c2 = digitalRead(2); c3 = digitalRead(3); } void loop() { if (c2 != digitalRead(2)) { c2 = digitalRead(2); byte b = c2 + (digitalRead(3) << 1); Serial.write(b); } if (c3 != digitalRead(3)) { c3 = digitalRead(3); byte b = digitalRead(2) + (c3 << 1); Serial.write(b); } }
Code Processing :
import processing.serial.*; Serial arduino; int val = 0; void setup() { String portArduino = Serial.list()[4]; arduino = new Serial(this, portArduino, 115200); } void draw() { } void serialEvent(Serial port) { val++; } void keyPressed() { switch(key) { case ' ' : println(val); break; case 'a' : val = 0; break; } }
JOUR 4
14/12/2108
Objectif : Faire fonctionner les capteurs à effet Hall du pan
J'ai repris le code Arduino de l'étape précédente. Pour la visualisation des capteurs, voici le code Processing :
import processing.serial.*; Serial arduino; byte lecture = 3; void setup() { size(500, 300); String portArduino = Serial.list()[4]; arduino = new Serial(this, portArduino, 115200); } void draw() { background(255); if ((lecture & 1) != 0) { fill(255); } else { fill(255, 0, 0); } rect(100, 100, 100, 100); if ((lecture & 2) != 0) { fill(255); } else { fill(255, 0, 0); } rect(300, 100, 100, 100); } void serialEvent(Serial port) { lecture = (byte)arduino.read(); }
Driver des moteurs pas à pas : NJM2670D2 fabricant JRC
Jours ...
Qtt | Nom | Valeur | Référence Fabricant | Fabricant | Réf. Fournisseur | Fournisseur |
---|---|---|---|---|---|---|
2 | Driver moteur | 4A | L298N | STMicroelectronics | 636-384 | RS |
2 | Dissipateur | 8.5°C/W | ML33 | AAVID THERMALLOY | 712-4263 | RS |
1 | Embase IDC | 40 contacts | AWHW 40G-0202-T | ASSMANN WSW | 674-1252 | RS |
2 | Connecteur IDC F | 40 contacts | 09185406813 | Harting | 409-8720 | RS. |
2 | Connecteur XHP | 11 contacts | XHP-11 | JST | 820-1523 | RS |
8 | Cosse à sertir | JST | BXH-001T-P0.6 | JST | 820-1529 | RS |
6 | Embase KK | 4 Contacts | 22-27-2041 | Molex | 483-8483 | RS |
2 | Embase KK | 2 Contacts | 22-27-2021 | Molex | 483-8461 | RS |
17 | Diode | 2A 100V | HER202G R0 | Taiwan Semiconductor | 688-1940 | RS |
2 | Résistance | 22 ohm. | MRS25000C2209FCT00 | Vishay | 683-3336 | RS |
1 | Résistance | 10k ohm | ||||
8 | Résistance | 1 ohm | CFR25J1R0 | TE Connectivity | 135-550 | RS |
1 | Condensateur | 470uF | 711-1129 | RS Pro | 711-1129 | RS |
1 | Condensateur | 100nF | USR1H0R1MDD | Nichicon | 475-8961 | RS |
1 | MOSFET canal N | 30A 60VA | STP36NF06L | STMicroelectronics | 486-5671 | RS |
JOUR 5
21/10/2019
Finition du PCB avec génération des fichiers Gerber. J'ai commandé le PCB chez Seed Studio :
JOUR 6
29/10/2019
Réalisation du gabarit pour fixer le support du “pinceau” sur le plaque emboutie soutenant le projecteur. Voici le fichier le code OpenSCAD :
$fn=40; Plaque(); module Plaque() { difference() { translate([-122, 0]) square([244, 100]); translate([-110, 10]) circle(d = 4); translate([110, 10]) circle(d = 4); translate([-110, 89]) circle(d = 4); translate([110, 89]) circle(d = 4); } }
JOUR 7
31/10/2019
Fraisage du plateau avec le code ci-dessous :
module Plateau() { difference() { hull() { // Forme translate([-10, 132]) circle(r=30); translate([10, 132]) circle(r=30); translate([91, 55]) circle(r=30); translate([91, -42]) circle(r=30); translate([10, -126]) circle(r=30); translate([-10, -126]) circle(r=30); translate([-91, 55]) circle(r=30); translate([-91, -42]) circle(r=30); } translate([0, -7.2]) { // Décalage pour que l'axe X soit l'axe dde rotation translate([-110, -39.5]) circle(d = 4.1); // Bas Gauche translate([110, -39.5]) circle(d = 4.1); // Bas Droite translate([-110, 39.5]) circle(d = 4.1); // Haut Gauche translate([110, 39.5]) circle(d = 4.1); // Haut Droite translate([-110, -39.5]) translate([65, 6]) circle(d = 4.1); // Bas Centre Gauche translate([-110, 39.5]) translate([65, 1]) circle(d = 4.1); // Haut Centre Gauche translate([110, -39.5]) translate([-65, 6]) circle(d = 4.1); // Bas Centre Droite translate([110, 39.5]) translate([-65, 1]) circle(d = 4.1); // Haut Centre Droite } translate([-10, -116]) square([20, 238]); // Emplacement marqueur translate([38, 48.3]) square([64, 4]); // Rainure renfort translate([-102, 48.3]) square([64, 4]); // // Rainure renfort 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.3]) circle(d = 4.1); translate([-20, -123.3]) circle(d = 4.1); translate([20, -83.3]) circle(d = 4.1); translate([20, -123.3]) circle(d = 4.1); // Support marqueur avant translate([-20, 110.7]) circle(d = 4.1); translate([-20, 70.7]) circle(d = 4.1); translate([20, 110.7]) circle(d = 4.1); translate([20, 70.7]) circle(d = 4.1); // Fixation Solénoïde translate([15, 25]) circle(d=3); translate([35, 25]) circle(d=3); translate([15, 55]) circle(d=3); translate([35, 55]) circle(d=3); } }
JOUR 8
01/11/2019
Conception du support de l'embout du marqueur :
module SupportEmbout() { difference() { union() { resize([43.3012702, 0, 0]) cylinder(d = 25, h = 55); // Cylindre principal hull() { // Platine de fixation translate([-30, 0, 0]) cylinder(d = 25, h = 6); translate([30, 0, 0]) cylinder(d = 25, h = 6); } } translate([-3, 0, 31.6492]) rotate([0, 30, 0]) union() { translate([0, 0, 22]) cube([60, 30, 30], center = true); // Cube pour le biseau resize([44.8, 0, 0]) cylinder(d = 18, h = 7); // Ellipse intérieure translate([0, 0, -32]) cylinder(d = 6, h = 100); // Axe de la vis de 40 translate([0, 0, -25]) { // Trou ecrou cylinder(d = 12, h = 5.5, $fn = 6); translate([-40, -5.2, 0]) cube([40, 10.4, 5.5]); } } // Trous de fixation translate([-30, 0, 0]) cylinder(d = 4.2, h = 6); translate([30, 0, 0]) cylinder(d = 4.2, h = 6); } }
JOUR 9
02/11/2019
Conception des supports de l'applicateur :
La distance entre le dessus du plateau en bois et l'axe de rotation est de 35,7mm.
module SupportMarqueur() { taille = 20; hauteur = 14.25; difference() { hull() { translate([0, 0, hauteur]) rotate([90, 0, 0]) cylinder(d = 20, h = taille); hull() { translate([20, -taille / 2, 0]) cylinder(d = taille, h = 0.1); translate([-20, -taille / 2, 0]) cylinder(d = taille, h = 0.1); } } translate([0, 0, hauteur]) rotate([90, 0, 0]) cylinder(d = 4, h = taille); // Trou de l'axe // Trous de vis translate([20, -taille / 2, 0]) cylinder(d = 4.2, h = 20); translate([-20, -taille / 2, 0]) cylinder(d = 4.2, h = 20); // Trous tête de vis translate([20, -taille / 2, 4]) cylinder(d = 8, h = 20); translate([-20, -taille / 2, 4]) cylinder(d = 8, h = 20); // Forme du cylindre translate([0, 10, hauteur]) rotate([0, 90, 0]) cylinder(d = 25.5, h = 200, center = true); translate([0, 10, 0]) cube([200, 20, 60], center = true); } }
Visserie
Qtt | Nom | Diamètre | Taille | Référence | Remarques |
---|---|---|---|---|---|
4 | Vis tête cylindrique hexagonale creuse | UNF 10-32 | 1'' | eBay | |
20 | Vis tête cylindrique hexagonale creuse | 4 | 20 | TCHC04/020A8NOEF | FIXNVIS |
20 | Vis tête cylindrique hexagonale creuse | 4 | 30 | TCHC04/030A8NOEF | FIXNVIS |
1 | Vis tête cylindrique hexagonale creuse | 5 | 40 | TCHC05/040A8NOEF | 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 |
Liens
Pour les PCB :
Tutoriel : http://riton-duino.blogspot.com/2018/11/concevoir-un-pcb.html
Joystick : https://gist.github.com/jasonwhite/c5b2048c15993d285130