MicroSlice : traduction et fabrication
La MicroSlice est une mini découpeuse et graveuse laser pilotée par un arduino. Ce projet consiste à traduire les consignes et les étapes de la réalisation en français, puis d'en réaliser une.
- Démarrage
- 2014-03-01
- 2014-12-31
Étapes du projet
1°) Traduction en français
La documentation complète (et richement illustrée) en anglais se trouve sur cette page :
http://www.instructables.com/id/MicroSlice-A-tiny-Arduino-laser-cutter/
2°) Fabrication
- lister les composants et les fournitures
- essayer de les trouver localement (boutiques d'informatique, GMS bricolage...)
- utilisation des outils du FabLab pour la réalisation : découpeuse laser, petit outillage, fer à souder...
Avancement
31/07/2014 : Envoi d'un mail à SilverJimny pour lui demander l'autorisation d'utiliser ses photos et de changer les liens de la liste des composants.
24/07/2014 : Traduction, suite et fin. Ajout des vidéos.
17/07/2014 : Traduction, suite.
10/07/2014 : Traduction, suite.
03/07/2014 : Début de la traduction.
Note : La MicroSlice est un projet de SilverJimny, tout le mérite lui en revient. L'ensemble de la documentation est sous licence CreativeCommons BY-NC-SA. La traduction française est donc mise à disposition selon les mêmes modalités.
SOMMAIRE
- Introduction
- Pour commencer
- Les premiers pas
- Plateforme du portique
- La table de découpe
- Les radiateurs
- Le plateau inférieur
- Test du câblage
- L'assemblage final
- Le câblage
- Logiciel et paramétrage
I - INTRODUCTION
Il y a quelques années, je suis tombé sur un projet Instructable où Groover a utilisé deux vieux graveurs de DVD pour fabriquer une graveuse laser de poche. Inspiré par son idée, motivé par l'achat récent d'une découpeuse laser CO2 50 Watt et poussé par le lancement du concours de projets autour du microcontrôleur, j'ai décidé de tenter de fabriquer ma propre mini graveuse laser.
J'ai appelé le projet MicroSlice.
Quelles sont les caractéristiques de la MicroSlice ?
- La MicroSlice a une zone de travail de 50mm sur 50mm (2" x 2").
- Elle peut couper le papier et graver le bois et le plastique.
- Le matériel est libre (Open Hardware).
- Elle est basée sur l'Arduino UNO R3.
- Tous les programmes nécessaires à la MicroSlice, y compris la conception graphique, sont libres (Open source) et gratuits.
- Pour graver et découper, elle utilise une diode Laser Rouge 300mw 635nm du même style que celle que l'on trouve dans un graveur de DVD.
- Le projet est fourni sous la forme d'un kit à fabriquer à la maison, dans un hackerspace ou un fablab.
- Il y a 97 pièces découpées au laser dans le kit.
- Elle fonctionne aussi avec votre Raspberry Pi.
La MicroSlice a gagné le Grand Prix du concours RadioShack Microcontrôleurs 2013.
Merci à tous ceux qui ont voté et, bien sûr à RadioShack pour les superbes dotations.
La MicroSlice est maintenant disponible chez The LittleBox Company.
II - Pour commencer
Pour ses axes, Groover a utilisé 2 mini moteurs pas à pas venant de graveurs DVD. Les moteurs entraînent la tête de lecture du DVD qui soit déplace le laser, soit la table de découpe. Mon point de départ a été de trouver un jeu de moteurs identiques et une diode laser de récupération.
Cependant, je voulais une conception un peu différente. Là où Groover fait bouger la table de découpe sur l'axe Y, je voulais une table de découpe fixe. Pour ça, je me suis inspiré de la grue portique.
Comme la table de découpe sera fixe, la tête de découpe doit se déplacer selon l'axe Y mais elle doit aussi tenir compte de l'axe X. Donc l'ensemble tête de découpe et axe X doivent se déplacer sur l'axe Y. De la même façon qu'une grue portique se déplace d'un côté ou de l'autre du quai.
Par conséquent il me faut 2 moteurs pas à pas avec des tiges filetées. Plus la tige est longue, plus la zone de travail potentielle est grande pour la tête de découpe. J'en aurais aussi besoin d'une paire pour que l'axe Y "portique" se déplace.
Pour faire court, je n'ai pas réussi à trouver ce que je voulais dans mon graveur DVD de récup. Le moteur pas à pas n'avait pas de tige filetée pour se déplacer et les diodes laser étaient tellement incrustées dans leur boîtier que je ne pouvais pas les démonter sans les endommager. Alors, pour finir, je me suis tourné vers le bon vieil eBay pour trouver ces pièces.
- 1 Arduino UNO R3
- 1 moteur pour l'axe X
- 1 moteur pour l'axe Y
- 1 module relais à 2 canaux
- 2 Easydriver (carte pilote de moteur pas à pas open source)
- 2 régulateurs 5 volts LDO (faible chute de tension)
- 2 petits radiateurs
- 1 ventilateur 45x45x10 (12v)
- 4 micro-interrupteurs d'arrêt
- 9 aimants super puissants
- 4 patins caoutchouc
- 5 vis à main
- 1 diode laser
- 1 logement pour la diode laser
- 1 pilote de diode laser
- 1 lentille pour laser
- 1 tube en aluminium de 4mm de diamètre
- 2 tiges d'acier de 3mm x 150mm
- 1 tige d'acier de 3mm x 100mm
- 17 inserts filetés Microbarbs M3
- 6 vis à tête plate 6mm M2
- 6 écrous M2
- 6 vis M2 tête bombée 6mm
- 8 vis M2 tête bombée 8mm
- 4 vis Nylon M3 6mm
- 4 entretoises M3 50mm
- 7 boulons inox tête allen M3 8mm
- 8 entretoises M3 3mm en Nylon
- 97 pièces découpées au laser !
Les pièces découpées de la MicroSlice ont été disposées pour être découpées au laser dans 2 plaques de contre-plaqué ou de plexiglas de 3mm x 400mm x 300mm. Les plans (format PDF) sont dans le fichier MicroSlice.zip ci-dessous. Des kits prédécoupés en bois ou en plexiglas sont disponibles auprès de The LittleBox Company.
ATTENTION : la MicroSllice intègre une diode laser de 300mw et 635nm. Il y a un risque de blessure si vous n'êtes pas prudent. Veuillez faire très attention lorsque vous manipulez le laser. Ne regardez jamais le faisceau, ne le pointez jamais vers vous ou vers quelqu'un d'autre. Soyez responsable.
III - LES PREMIERS PAS
Par où commencer ? Premièrement, il faut créer une référence, un point à partir duquel toutes les autres mesures sont faites. J'ai utilisé comme référence le rayon d'action du moteur de l'axe X, c'est à dire la distance entre chaque extrémité de l'arbre du moteur pas à pas. Ce qui justifie mon choix c'est qu'il faudra aligner le milieu du rayon d'action avec le centre de la table de découpe. A partir de là, on peut déterminer l'emplacement des 3 trous pour les vis du moteur pas à pas et la hauteur utile au dessus de la table de découpe.
Le moteur est livré attaché à une plaque support qui sera enlevée et jetée. Le portique cumule les fonctionnalités : il doit être capable de supporter le moteur de l'axe X, il doit intégrer une barre transversale pour stabiliser la tête mobile du laser et il doit aussi avoir des guides pour l'axe Y.
Comme les pièces sont découpées dans du contre-plaqué de 3mm, je les ai dessinées en vectoriel. Plusieurs programmes sont disponibles à ce stade. Inkscape est un logiciel libre de création vectorielle, il existe sur de nombreuses plateformes dont Linux et Raspberry Pi.
Le portique se déplace le long des 2 tiges en acier de 3mm x 150mm. Il y a deux sections de tube aluminium de 4mm logées dans le portique dans lesquelles les tiges coulissent. Par conséquent elles supportent le poids de l'ensemble, ce qui fait que les moteurs n'ont qu'à gérer les changements de positionnement et ne doivent pas subir le poids.
Il y a un total de 10 prototypes différents du portique, chacun ayant des éléments repris dans la version finale. Au début, j'ai fait simple : fixer le moteur, obtenir la hauteur optimale, s'assurer que c'était suffisamment large pour couvrir toute la longueur de l'axe X.
Chaque nouveau prototype du portique ajoutait quelque chose de nouveau ou corrigeait une erreur ou les deux à la fois.
Version 1 : Ajout du moteur, réglage de la hauteur et de la largeur.
Version 2 : Réduction du poids grâce à des évidements.
Version 3 : Corrections.
Version 4 : Augmentation de la profondeur de la barre transversale inférieure de 15mm à 30mm pour augmenter la stabilité. Le poids du module laser avait tendance à faire basculer le portique vers l'avant et à le bloquer sur les guides.
Version 5 : Ajout des passages et boulons pour l'extrémité de l'axe X.
Version 6 : Corrections.
Version 7 : Ajout des passages et boulons pour l'extrémité de l'axe Y.
Version 8 : Découpes pour la traverse inférieure permettant le passage du moteur pas à pas de l'axe Y.
Version 9 : Ajout de supports supplémentaires pour les câbles. C'est la première version a avoir été utilisée lors du test à nu de la MicroSlice.
Version 10 : Quelques corrections. Version finale.
IV - PLATEFORME DU PORTIQUE
La plateforme du portique doit remplir 2 rôles : supporter les guides pour le portique et assurer le montage du moteur de l'axe Y. Les contraintes de conception étaient limitées à la largeur du portique et à la longueur de déplacement de l'axe Y. Je voulais une plateforme légère pour le portique, qui s'adapte à la table de découpe.
V - LA TABLE DE DECOUPE
Tout le monde aime le plateau de découpe en nid d'abeille sur une découpeuse laser, et je souhaitais que la MicroSlice en ait un.
Pour renforcer, j'ai utilisé 2 couches de contreplaqué de 3mm collées l'une à l'autre. Il y a 2 dents à chaque extrémité qui s'emboîtent avec 2 supports sur la plateforme du portique et qui empêchent la table de découpe de bouger.
J'ai incrusté des aimants néodyme dans la table de découpe pour bien fixer le papier pendant la découpe/gravure. La surface exposée au laser est recouverte d'une fine couche de papier aluminium. Cela protègera la table de la chaleur du laser.
VI - LES RADIATEURS
Les dissipateurs des deux régulateurs LDO viennent d'un seul radiateur récupéré sur un chipset de carte-mère.
- Démonter le radiateur de la carte mère
- Ajouter des broches aux deux régulateurs LDO
- Limez les broches sur la face intérieure du circuit imprimé
- Coupez le radiateur en deux. J'ai pris comme mesure la largeur du régulateur et coupé une bande incluant le trou pour la vis. Nous l'utiliserons plus tard pour fixer le régulateur à la MicroSlice
- Raccourcir le morceau de radiateur pour qu'il fasse exactement la taille du régulateur
- Nettoyer les bords et enlever la peinture noire de la zone où le régulateur sera collé
- Coller le régulateur sur le radiateur en utilisant de la pâte thermique adhésive
- Laisser sécher
Il est également possible d'utiliser du ruban adhésif thermique pour fixer les régulateurs.
VII - LE PLATEAU INFÉRIEUR
Le plateau inférieur contient l'électronique et permet de tenir la plateforme du portique.
Sur la plaque du bas on trouvera l'Arduino et le relais à deux canaux pour le ventilateur et le laser. Sur la plaque du haut se trouvent un régulateur LDO 5 volts pour alimenter le ventilateur et un régulateur LDO 3,3 volts pour le laser. A l'avant des régulateurs on trouve les deux cartes pilotes EasyDriver, elles piloteront les moteurs pas à pas.
L'arduino et le relais à deux canaux reposent sur des entretoises en nylon. J'ai constaté que le trou près du bouton 'reset' de l'Arduino était trop proche du connecteur pour permettre de laisser passer la vis. J'ai donc fixé l'entretoise avec du scotch double-face à la fois du côté de l'Arduino et du plateau inférieur.
Je vous montrerai comment tout cela va ensemble lors de l'assemblage final.
VIII - TEST DU CÂBLAGE
Avant d'assembler la version finale, je voulais m'assurer que tout fonctionnait, du coup j'ai assemblé les pièces détachées, installé l'électronique et fait tout le câblage de l'ensemble.
J'ai utilisé des câbles en nappe et des connecteurs DuPont pour tout ce qui est câblage. Je me suis assuré de bien étiqueter tous les fils avec des petits morceaux de ruban de masquage afin de ne pas oublier à quoi ils sont reliés.
Comme l'Arduino sera utilisé avec Grbl, j'ai utilisé leur guide pour faire correctement les branchements de la MicroSlice.
A mi-chemin, j'ai rencontré un problème. Les cartes pilotes EasyDriver étaient trop proches de l'Arduino en dessous. J'ai dû déplacer le circuit imprimé vers l'extérieur pour faire de la place. Au lieu de tout remettre en place, pour anticiper de futurs problèmes, j'ai désolidarisé toute l'électronique du plateau supérieur de son logement.
Les cartes pilote EasyDriver réclament un voltage supérieur à ce que l'USB peut fournir. J'utilise une alimentation 12 volts branchée sur la prise jack de l'Arduino. Il y a un connecteur Vin (parfois sérigraphié '9V') sur l'Arduino dont je peux me servir pour alimenter les EasyDrivers et les deux régulateurs LDO.
Les EasyDrivers doivent être configurés pour le demi-pas (ou microstepping). Pour faire simple, le demi-pas divise le pas standard en pas plus petit. Avec les connecteurs MS1 et MS2 sur l'EasyDriver branchés sur du 5 volts nous pouvons régler le demi-pas à 8. Cela signifie qu'au lieu de 20 étapes pour une révolution nous en avons maintenant 160. Pour plus d'information sur l'EasyDriver rendez-vous sur schmalzhaus.com/EasyDriver.
IX - L'ASSEMBLAGE FINAL
J'ai collé un peu d'adhésif de masquage sur le bois pour limiter les traces de flamme et de brûlure du laser. Ça implique de prendre quelques minutes pour le décoller une fois que les pièces ont été découpées.
J'ai utilisé de la colle blanche et tenu l'ensemble à l'aide de pinces. La plateforme du portique doit être assemblée en une seule fois avant que la colle ne sèche de façon à le poser à plat pour éviter qu'il ne se déforme.
J'ai passé quelques vis M3 50mm à travers le plateau inférieur et utilisées comme guides pour assembler les montants. Elle permettent de rigidifier l'ensemble pendant que la colle sèche.
Le plateau de découpe est couvert d'une fine couche de papier d'aluminium. Les aimants sont pressés à l'intérieur, une bande d'adhésif de masquage est collée par dessus la zone où il n'y aura pas d'aluminium. La feuille d'aluminium est ensuite pressée contre le plateau et l'excédent découpé au cutter.
X - LE CÂBLAGE
Faites en sorte que les câbles soient le plus court possible, assurez-vous de ne pas créer de courts-circuits.
J'ai choisi un ventilateur 12 volts et je l'ai alimenté via le régulateur LDO 5 volts. Il faut un mouvement lent qui brasse un gros volume d'air plutôt qu'un brassage rapide d'un petit volume. Limiter la vitesse de l'air soufflé par le ventilateur permet de faire en sorte que les matières découpées restent sur le plateau de découpe.
J'ai respecté les indication de la page Connecting Grbl sur le wiki Grbl pour câbler la MicroSlice. Le relais du ventilateur a été connecté à la prise Coolant A3 de l'Arduino R3, et le relais de la diode laser à la broche Marche / Arrêt 12 de l'Arduino R3.
XI - LOGICIEL ET PARAMÉTRAGE
La MicroSlice utilise Grbl v0.8 pour le contrôle du mouvement. Grbl convertit le G-Code en ordres compréhensibles par le pilote de moteur pas à pas EasyDriver. Il nous faut un autre programme pour envoyer le G-Code à Grbl, pour cela j'ai utilisé Zapmaker Grbl Controller v3.0.
Avant de pouvoir vous lancer, il vous faudra l'environnement de développement Arduino (Arduino IDE) disponible sur le site Arduino.
Assurez-vous que votre diode laser ne soit pas connectée au courant électrique lorsque vous configurez la MicroSlice. S'il est raccordé, le laser va se mettre en marche et s'arrêter pendant le processus de configuration. Ne le connectez que lorsque vous voulez couper ou graver.
Le wiki Grbl explique comment flasher votre Arduino avec le fichier pré-compilé Grbl hex.
Pour ceux d'entre-vous qui possèdent un Raspberry Pi, comme moi, vous serez heureux d'apprendre que vous pouvez piloter la MicroSlice avec votre Pi ! Zapmaker a rédigé un guide pas à pas qui explique comment installer Grbl Controller sur un Raspberry Pi.
Il nous faut générer du G-code. Le meilleur moyen pour cela est d'utiliser Inkscape combiné à un plug-in de gravure laser. Inkscape est un éditeur vectoriel libre semblable à Illustrator, CorlDraw ou Xara X qui sait manipuler des fichiers au format Scalable Vector Graphics (SVG). J'ai utilisé le même plug-in que celui que Groover a fait pour sa graveuse, il a réalisé une petite vidéo qui détaille son utilisation.
Avant de pouvoir utiliser notre tout nouveau G-Code, il faut configurer Grbl pour utiliser les moteurs pas à pas et les butées.
Vous pouvez utiliser le terminal série de l'IDE Arduino (CTRL + Maj + M) pour envoyer les commandes à Grbl.Envoyer $$ à Grbl affiche les réglages de la configuration (la vôtre peut être un peu différente).
$0=755.906 (x, step/mm)
$1=755.906 (y, step/mm)
$2=755.906 (z, step/mm)
$3=30 (step pulse, usec)
$4=500.000 (default feed, mm/min)
$5=500.000 (default seek, mm/min)
$6=28 (step port invert mask, int:00011100)
$7=25 (step idle delay, msec)
$8=50.000 (acceleration, mm/sec^2)
$9=0.050 (junction deviation, mm)
$10=0.100 (arc, mm/segment)
$11=25 (n-arc correction, int)
$12=3 (n-decimals, int)
$13=0 (report inches, bool)
$14=1 (auto start, bool)
$15=0 (invert step enable, bool)
$16=0 (hard limits, bool)
$17=0 (homing cycle, bool)
$18=0 (homing dir invert mask, int:00000000)
$19=25.000 (homing feed, mm/min)
$20=250.000 (homing seek, mm/min)
$21=100 (homing debounce, msec)
$22=1.000 (homing pull-off, mm)
Les paramètres qui nous intéressent sont $0 et $1. Ils permettent de configurer les axes X et Y. Nous devons calculer le nombre de pas pour déplacer la tête de découpe de 1mm dans chaque direction.
Nous calculons ainsi :
Nombre de pas = Nombre de pas par rotation x Micropas / pas du filetage
20 pas par tour (18 degrés par pas) x 8 Micropas (MS1 & MS2 connectés au +5 volts des EasyDrivers) / 3mm du pas de filetage (3mm de déplacement par rotation).
(20 x 8) / 3 = 53.333333333
Du coup, écrire $0=53.333 et $1=53.333 dans le terminal pour régler les axes. Il faudra faire un soft reset pour que les changements soient pris en compte ($X).
Ou bien vous pouvez utiliser Zapmaker Grbl Controller pour régler Grbl. Les réglages de Grbl se trouvent dans l'onglet avancé. Il faudra également un soft reset après avoir cliqué sur appliquer (apply).
Il faudra aussi régler :
$4=200 Ceci règle la vitesse de déplacement par défaut de la tête de découpe pendant la découpe/gravure.
$5=200 Ceci règle la vitesse de déplacement par défaut de la tête de découpe lors de ses déplacements entre les travaux.
$16=1 Ceci active les butées.
$17=1 Ceci active l'autoguidage ($H), le mien se bloque lorsque j'essaye de lancer le cycle d'autoguidage. Pour activer cette fonctionnalité il faut modifier le code source de Grbl et recompiler le fichier .hex . Voir les instructions ci-dessous.
$18=69 Ceci placera le zero de la découpeuse dans le coin inférieur gauche de la table de découpe quand la commande d'autoguidage $H est exécutée. Pour une explication plus détaillée de cette fonction, jetez un oeil au wiki Grbl.
$19=200
$20=200
$22=2.000 Ceci règle la distance de déplacement des axes par rapport aux butées après le cycle d'autoguidage.
Il y a des explications détaillées de chacun des paramètres de Grbl sur son wiki.
Assurez-vous que votre configuration est correcte en tapant $$ dans le terminal. Vous devriez voir quelque chose comme ça :
$0=53.333 (x, step/mm)
$1=53.333 (y, step/mm)
$2=53.330 (z, step/mm)
$3=10 (step pulse, usec)
$4=200.000 (default feed, mm/min)
$5=200.000 (default seek, mm/min)
$6=28 (step port invert mask, int:00011100)
$7=50 (step idle delay, msec)
$8=100.000 (acceleration, mm/sec^2)
$9=0.050 (junction deviation, mm)
$10=0.100 (arc, mm/segment)
$11=25 (n-arc correction, int)
$12=3 (n-decimals, int)
$13=0 (report inches, bool)
$14=1 (auto start, bool)
$15=0 (invert step enable, bool)
$16=1 (hard limits, bool)
$17=1 (homing cycle, bool)
$18=69 (homing dir invert mask, int:00000000)
$19=200.000 (homing feed, mm/min)
$20=200.000 (homing seek, mm/min)
$21=100 (homing debounce, msec)
$22=2.000 (homing pull-off, mm)
L'étape finale consiste à faire la mise au point du laser. J'ai chargé une petite séquence de test, ici un X, et lancé le tout.
Vous pouvez activer la diode laser en utilisant la case à cocher nommée Spindle On dans Zapmaker Grbl Controller.
La première fois, il n'y avait rien, mais après quelque tours de lentille j'ai réussi à obtenir une petite marque sur du papier. Après ça, il ne restait plus qu'à régler précisément et le laser était correctement ciblé sur la table de découpe.
J'ai fait quelques entretoises de 3mm d'épaisseur à placer sous le module laser pour le surélever quand je voulais graver du contreplaqué de 3mm. Ainsi, pas la peine de refaire la mise au point à chaque changement de matériau.
Modification du code source
Pendant les tests, j'ai remarqué que Grbl plantait sur la commande $H (autoréglage). Je me doutais que c'était un problème avec l'axe Z vu que la MicroSlice n'en a pas.
Pour corriger le problème, il faut retirer l'axe Z du cycle d'autoréglage. Les commandes sont dans le fichier config.h du code source.
- Télécharger le code source de Grbl (lien).
- Extraire l'archive.
- Ouvrir config.h dans votre éditeur de texte préféré.
- Effectuer les modifications suivantes :
Chercher le code suivant :
#define HOMING_SEARCH_CYCLE_0 (1<<Z_AXIS)
#define HOMING_SEARCH_CYCLE_1 ((1<<X_AXIS)|(1<<Y_AXIS))
Remplacer avec le code suivant :
// #define HOMING_SEARCH_CYCLE_0 (1<<Z_AXIS)
#define HOMING_SEARCH_CYCLE_0 ((1<<X_AXIS)|(1<<Y_AXIS))
Chercher le code suivant :
#define HOMING_LOCATE_CYCLE ((1<<X_AXIS)|(1<<Y_AXIS)|(1<<Z_AXIS))
Remplacer avec le code suivant :
#define HOMING_LOCATE_CYCLE ((1<<X_AXIS)|(1<<Y_AXIS))
Sauvegarder.
Recompiler le fichier grbl.hex. J'ai utilisé mon Raspberry Pi pour recompiler ce fichier. Au cas où vous n'y arriveriez pas, je vous ai mis en téléchargement le fichier hex modifié ci-dessous. Il faut flasher votre Arduino avec ce nouveau fichier.
Si tout a fonctionné, et que tous les paramètres sont configurés correctement, vous devriez pouvoir lancer le cycle d'autoréglage ($H) et voir la MicroSlice s'initialiser toute seule. Et là, vous êtes prêt à créer !
Rapport d'activité au sein du fablab
[Bientôt ici les outils utilisés au sein du lab pour la réalisation de ce projet]
Outils utilisés au MIPS pour ce projet :
- Ordinateurs pour accéder au site Instructables et documenter le projet.
- Gantry crane — Par Michaël L. — Dernière modification 03/07/2014 22:05
- Gantry crane / Par IHNIWIMD / Licence CreativeCommons BY-NC-SA
- laser symbol — Par Michaël L. — Dernière modification 10/07/2014 20:11
- Danger, laser
- laserengraver — Par Michaël L. — Dernière modification 24/07/2014 23:16
- modded grbl hex — Par Michaël L. — Dernière modification 24/07/2014 23:16
- g code samples — Par Michaël L. — Dernière modification 24/07/2014 23:16