CNC LowCost

De Wiki LOGre
Aller à : navigation, rechercher

Création d'une CNC / graveuse laser "Low cost"

Réalisé par Gregmuch, Eric


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 :
  • 660mm*80mm 2pcs
  • 510mm*80mm 2pcs
  • 350mm*80mm 2pcs
  • 554mm*80mm 2pcs
10euros Grandes surfaces de bricolage
Planches de médium ep 15mm :
  • 550mm*550mm 1pc
5euros Grandes surfaces de bricolage
visserie :
  • vis metal M4 40mm et 80mm
  • écrou M4 et rondelles 4mm
  • vis à bois 4mm 15mm, 20mm, 25mm
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
  • Poulies GT2 20dents
  • couroies 10mm 5metres
  • ventilateurs 40*40 2pcs
  • roulement à bille 16*5mm 6pcs
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 :
  • Laser 2w 445nm M140 Diode In Copper Module With Leads & 405-G-2 Glass Lens
  • driver laser :1.8A Super X-Drive(SXD-V3)
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


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)

CNC shield layout

  1. 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)/!\
  2. 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).
  3. 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)/!\
  4. 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:

  1. Mettre la puissance du laser au minimum visible: (S70 pour moi soit 7% de puissance en dessous le laser s'éteint)
  2. Régler la hauteur à l'aide des papillons jusqu’à ce que le laser marque le support de gravure

Calibration des coordonnées:

  1. Aligner le support afin de garantir le parallélisme avec le bord
  2. Déplacer le laser au dessus du support
  3. Allumer le laser au minimum visible
  4. Déplacer le chariot dans l'angle correspondant au (0,0) de votre image
  5. 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