CNC LowCost
Création d'une CNC / graveuse laser "Low cost"
But
Concevoir et réaliser une une table XYZ polyvalente pouvant recevoir une fraiseuse ou un laser avec une zone de travail correct d'environ 40cm*40cm et pour un cout de fabrication le plus bas possible.
État du projet
Une premiere version équipée d'un laser est maintenant pleinement fonctionnelle.
Photos
Design de la machine
La conception mécanique de la machine a intégralement été faite sous openscad.
Liste des courses
| Désignation | cout approximatif | lieu d'approvisionnement |
|---|---|---|
| Equerres, renvois courrois, supports ... | ~ 30euros (une bobine de PLA) | imprimante 3D |
Planches de médium ep 22mm :
|
10euros | Grandes surfaces de bricolage |
Planches de médium ep 15mm :
|
5euros | Grandes surfaces de bricolage |
visserie :
|
15euros | Grandes surfaces de bricolage |
| Coulisses a billes pour tirroir | 21 euros | http://www.leroymerlin.fr/v3/p/produits/coulisses-pour-tiroir-a-billes-sortie-partielle-12-kg-e1400111205#&xtmc=tiroir&xtcr=46 |
|
45 euros | http://stores.ebay.fr/wedo3dprinting/ |
| support NEMA17 3pcs | 13 euros | http://www.ebay.fr/itm/401033199681?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT |
| NEMA17 3pcs | ~ 30euros | http://www.omc-stepperonline.com/3d-printer-nema-17-stepper-motor-2a-45ncm64ozin-17hs162004s-p-16.html |
| convoyeyr de cables | 6euros | http://www.ebay.fr/itm/331812312094?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT |
| Lunette de protection laser bleu | 16euros | http://www.ebay.fr/itm/301343290533?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT |
Laser :
|
100euros | |
| Alimentation 12volts 10ampères | 15euros | http://www.ebay.fr/itm/131332783802?_trksid=p2060353.m1438.l2649&var=430643611147&ssPageName=STRK%3AMEBIDX%3AIT |
| Arduino UNO + shield CNC + drivers de moteur pas à pas | 25euros | http://www.ebay.fr/itm/CNC-Shield-V3-3D-espansione-della-stampante-Board-driver-A4988-ONU-R3-/182075792336?hash=item2a64901bd0:g:lsMAAOSwud1W~r2a |
Montage de la machine
Materiel
- Outils necéssaire :
- tournevis plat
- tournevis crussiforme
- perceuse + foret 4mm
- clef plate de 7
- Planche de bois :
- Les planches doivent etre découpées au mm pour s'assurer d'un bon equerrage
- 660mm*80mm 2pcs : longueurs du chassis
- 510mm*80mm 2pcs : largeurs du chassis
- 350mm*80mm 2pcs : montants verticaux
- 554mm*80mm 2pcs : montants supérieurs
- Les planches doivent etre découpées au mm pour s'assurer d'un bon equerrage
Montage
Le montage ne présente aucune difficultés particulières, il faut simplement etre précis et minutieux pour assurer une bonne planiété et un bon équerrage du chassis.
Les pièces de bois sont mises en places dans les equerres puis percées et boulonnées.
Le chassis maintenant monté, on peut fixer les coulisses de glissières sur les pièces mobiles.
Chaque pièce mobile (le plateau et le porte outils) étant guidé par deux glissières il faut s'assurer du parfait parallélisme entre les glissières.
On monte le plateau en premier sur la machine en le décallant d'environ 80mm vers l'avant. Ce décallage vient du fait que l'outils ne sera pas placé au centre de la machine mais sera décalé vers l'avant de la machine.
On monte ensuite le porte outils en s'assurant du bon parallélisme avec le plateau.
Électronique et informatique
CNC shield : Branchement
Le CNC shield permet de controller 4 moteurs pas à pas mais seuls 3 sont utilisés dans le cadre de ce projet (Pas d'axe Z)
- Placer l'axe A en copie de l'axe Y en plaçant les jumpers 1 et 2 en vert.
/!\ Lors du cablage des moteurs le moteur cablé sur A doit être dans le sens opposé au moteur Y (en jaune)/!\ - Les moteurs doivent être commandés en 1/16 de pas en plaçant les jumpers 3 et 4 en rouge (idem sur Y et A).
- Le PWM servant à fixer la puissance du laser, est cablé sur la pin spindle enable.
/!\ Dans le cas du CNC shield v3.0, une erreur de routage du spindle est présente : la pin endstop Z+ est inversée avec la pin de spindle enable (pin 5 en bleu)/!\ - Terminer en branchant les drivers moteurs sur X, Y et A ainsi que le 12V sur la carte CNC
Rq : Bien que les endstops aient été initialement prévus ceux-ci n'ont pas été cablés sinon ceux-ci doivent être cablé sur les pins +/- correspondantes
Arduino : Compilation et Flash du GRBL
Le mieux est de suivre le tutoriel suivant pour ma part j'ai appliqué la dernière partie sur Ubuntu qui fonctionne parfaitement https://github.com/grbl/grbl/wiki/Compiling-Grbl
Rq : Choisir au moins la version v0.9i du GRBL pour que le spindle soit disponible.
Rq2 : L'arduino n'est pas alimenté par l'alimentation 12V mais par le PC il faut donc le laisser brancher pendant la gravure. Il est par ailleurs préférable de le brancher et de compiler de flasher et d'établir la connection via Universal gcode sender avec alimentation 12V eteinte pour eviter les interférence du à la communication avec le PC.
Arduino : Envoie de gcode
Le logiciel utilisé est Universal Gcode sender, il permet soit d'envoyer des commandes ligne par ligne pour contrôler directement la CNC, soit d'envoyer un fichier contenant du gcode, soit de commander les moteurs manuellement. Les paramètres de connections par défaut sont : baud rate=115200 et line terminator=\n /!\ Si vous n'avez pas cablé les endstops vérifiez bien la distance qu'il reste avant la buter pour éviter la casse /!\
Rq: Lors du chrgement d'un fichier il se peut que le rapport cyclique ne soit pas initialisé n'oubliez le cas echeant de l'initialiser avec une commande S200 (ou autre selon les reglages)
Les commandes standards sont :
- $$ renvoie toutes les valeurs des paramètres du GRBL, $120=200 mets la valeur 200 dans la variable $120 (pas de reset lors du shutdown)
- S+DC en %o par exemple S500 -> correspond à un rapport cyclique de 50%
- M3/M5 activer/désactiver le PWM (et donc le laser)
- G0 X100 Y100 deplacement de 100mmx100mm à vitesse max
- G1 X100 Y100 F500 deplacement de 100mmx100mm à vitesse 500mm/min
GRBL : Paramètres CNC
Les paramètres à modifier sont :
- $100=40 (x, step/mm)
- $101=40 (y, step/mm)
- $110=6000 (x max rate, mm/min)
- $111=6000 (y max rate, mm/min)
- $120=200 (x accel, mm/sec^2)
- $121=200 (y accel, mm/sec^2)
Ces valeurs peuvent être initialisées dans le fichier defaults/default_generic.h (dans le dossier grbl) Mais pour modifier l'EEPROM il faut d'abord flasher un programme d'effacement de l'EEPROM sinon les valeurs ne sont pas ecrasées (ArduinoIDE -> files -> examples -> EEPROM -> eeprom_clear -> Upload)
GRBL : fréquence PWM
La fréquence du PWM est initialement de 8kHz. Elle est modifiable en changeant la ligne 94 du fichier spindle_control.c modifiez le 0x02 par une des valeurs hexa de ce tableau en fonction de la fréquence choisie
| Valeur en Hexa | 0x01 | 0x02 | 0x03 | 0x04 | 0x05 | 0x06 | 0x07 |
|---|---|---|---|---|---|---|---|
| Fréquence (kHz) | 64 | 8 | 2 | 1 | 0.5 | 0.25 | 0.061 |
ligne 94 : TCCRB_REGISTER = (TCCRB_REGISTER & 0b11111000) | 0x02;
La valeur choisie pour les prototypes réalisés est 0x05 soit 500Hz Il faut ensuite recompiler et reflasher l'arduino.
Gcode : Plugins inkscape
Pour la génération du gcode, on utilise un plugin inkscape: https://github.com/305engineering/Inkscape Il permet de générer les déplacements ligne par ligne pour dessiner une image de votre choix Les réglages utilisés sont 10px/mm ou 5px/mm si l'image est vraiment grosse /!\
- Penser à toujours vérifier la taille de la gravure dans la fichier gcode pour ne pas sortir du support de gravure ou aller en butée
- La coordonnée max en Y se trouve bien à la dernière ligne mais pas forcement celle de X si votre image contient une partie non gravée sur la fin
- Pour modifier la taille de la photo sous inkscape utilisez le petit cadenas au niveau des coordonnées pour conserver la facteur de forme.
- Ne vous basez pas sur la mesure pixel de inkscape préférez celle en mm
- L'utilisation de File > Documents properties > resize page to content... > resize page to drawing or selection permet d’éviter les offsets en X et Y
Un autre plugin existe laserengraver... je ne l'ai jamais utilisé personnellement mais il me semble qu'il permet de graver en vectoriel plutôt que pixel par pixel pratique dans le cas de croquis mais pas pour les images non vectorielle (jpg ou png) http://fablabo.net/wiki/Laserengraver
Réglages et utilisation
Réglage de la focal:
- Mettre la puissance du laser au minimum visible: (S70 pour moi soit 7% de puissance en dessous le laser s'éteint)
- Régler la hauteur à l'aide des papillons jusqu’à ce que le laser marque le support de gravure
Calibration des coordonnées:
- Aligner le support afin de garantir le parallélisme avec le bord
- Déplacer le laser au dessus du support
- Allumer le laser au minimum visible
- Déplacer le chariot dans l'angle correspondant au (0,0) de votre image
- Faire un reset des coordonnées dans UniversalGCodeSender (onglet manual control > reset coordinates)
Pour une raison encore incomprise il arrive que la première commande ne soit pas lu ... dans ce cas le laser sera allumé depuis la position (0,0) traçant un trait non souhaitée, il est recommandé de recopier à la main cette commande dans l'onglet commande mode
Lancer l'impression: Dans l'onglet file mode ajouter le fichier généré par inkscape
/!\ Il est recommandé de rester prêt de la machine afin de prévenir les risques d’incendie et de porter des lunettes filtrant le bleu pour éviter le risque de dégradation de la vue du à la fatigue visuelle