Modification d’une ancienne fraiseuse numérique

Introduction

Salut!

Aujourd’hui je vais vous présenter un des travaux qui m’a été confié dans le cadre d’un stage. Il ne s’agit pas d’un tutoriel où je détaillerais les étapes, mais plus d’une sorte de résumé dans le but de présenter mon travail.

J’ai il y a peu effectué un stage dans un Fab-Lab près de chez moi pour confirmer ma première année de BTS. Un des travaux les plus importants qui m’a été confié, était de remettre en état de fonctionnement une fraiseuse numérique de marque CharlyRobot.

La fraiseuse était parfaitement fonctionelle, les moteur en bon état et la structure montée. Des drivers étaient déjà présents et étaient pilotés via un port DB25. Cependant il n’était pas possible de piloter la fraiseuse car aucun logiciel disponible ne pouvais le faire.

On peut voir sur cette photo les drivers au début du projet. Un câble DB25 servait à piloter les drivers, tandis que les moteurs pas à pas étaient pilotés en sortie avec les câbes que l’on voit à droite. La gaine dans laquelle passe le courant pour piloter les moteurs et le retour des capteurs passaient dans les même gaines, ce qui va poser des problèmes plus tard.

Le cahier des charges était le suivant:

  • Piloter la fraiseuse avec un PC via une connexion USB
  • Caréner acceptablement le circuit électronique de la fraiseuse
  • Installer et configurer un poste fixe à coté de la fraiseuse et avec les logiciels nécéssaires

Fonctionnement d’une fraiseuse numérique

Lorsqu’on se lance dans un domaine nouveau (ici celui de la CAO et des CNC), il est selon moi important de se renseigner sur le domaine d’application afin de ne pas faire de contresens, ou d’erreur facilement évitable autrement. Ainsi, dans cette partie, je vais essayer de résumer une partie de ce qu’il me semble important de savoir avant de se lancer dans un tel projet.

Lorsque l’on souhaite usiner une pièce avec une fraiseuse numérique, il est nécéssaire de suivre un certain nombre d’étapes:

  1. Modélisation d’une pièce sur un logiciel de CAO comme Fusion360, OpenScad, FreeCAD ou SketchUp
  2. Export du fichier dans un format exploitable (STL, GERBER…)
  3. Création d’un GCode à l’aide d’un logiciel adéquat (ici j’ai choisi CAMBAM)
  4. Envoyer le Gcode aux drivers moteurs
  5. Laisser la machine usiner notre pièce! 😀

Nous sommes maintenant au clair sur les étapes à suivre pour piloter une fraiseuse en tant qu’opérateur. En tant que technicien, il est intéressant d’essayer d’en savoir un peu plus sur le fonctionnement complet de la machine, les formats de fichier utilisé, un exemple de GCode, etc…

Choix du matériel et des solutions au cahier des charges

Pour réussir à piloter cette fraiseuse à moindre coût, nous avons choisi d’utiliser une carte Arduino nano dans le but de faire le lien entre la liaison USB du PC et le port DB25 des drivers moteur. En effet, la popularité des cartes Arduino ces dernières années et l’essort d’internet a permis à breaucoup de monde de se familiariser avec le monde de l’électronique et de la programmation. Une partie de la communauté a mis au point un soft qui nous intéresse tout particulièrement ici: GRBL.

GRBL est donc un soft développé pour Arduino qui a pour but de piloter des fraiseuses CNC via une interface USB. Pour l’utiliser, il suffit de téléverser le code dans le microcontroleur à l’aide de l’IDE Arduino.

L’avantage de cette solution est qu’elle est extrêmement peu coûteuse, parfaitement fonctionnelle et facile/rapide à mettre en place.

Petite synoptique qui résume le fonctionnement du système

Installation des logiciels

Le PC qu’on a décidé de dédier à cette machine est un vieux PC récupéré fonctionnant sous linux. Les logiciels que j’ai choisi d’installer sur le PC dédié à la fraiseuse sont les suivants:

  • CAMBAM pour la génération du GCode
  • bCNC pour l’envoi du GCode à la carte Arduino
  • GCode Sender qui a le même rôle que bCNC mais avec une interface simplifiée, dédié principalement à mes tests de fonctionnement

Fabrication

Pour commencer, il est important de repérer le câblage des drivers:

Comme on peut le voir ici, les port du DB25 ont différentes fonctions. Pour plus de détail, se référer à la datasheet.

Pour la mise en place du système, j’ai eu besoin de recâbler les sorties du câble DB25 sur la carte arduino, comme ceci:

Chaque fil est câblé sur l’arduino en fonction de ses fonctionnalités. À noter qu’il est plus pratique d’étamer les câbles avant de les insérer dans la breadboard…

Pour le brochage, c’est très simple, les sorties de l’arduino sous GRBL correspondent parfaitement à celles des drivers.

Par exemple:

  • D8 (stepper enable/disable)→pin1 (axis enable input)
  • D2 (Step Pulse X Axis)→pin2 (X axis pulse input)
  • D6 (Direction Y Axis)→pin5 (Y axis direction)

Les sorties pour GRBL…

…et les entrées du driver!

Pour les capteurs, étant donné que la partie puissance passait dans la même gaine que les câbles de capteurs de fin de course, ces derniers se déclencaient systématiquement sur l’arduino. Pour remédier à cette situation, j’ai eu besoin d’isoler ces câbles dans une gaine à part.

Sur cette photo, on peut voir qu’un câble part des moteurs pour aller directement sur la breadboard. C’est comme cela que j’ai pu diagnostiquer les parasites. 

Là où ça se complique un peu, c’est pour le paramétrage de GRBL.

Parametrage de GRBL

Pour paramétrer GRBL, il faut utiliser des un logiciel comme bCNC. Dans l’option firmware settings

Le détail des paramètres de réglages du firmware sont disponible via ce lien.

Comme notre fraiseuse ne possède qu’un seul capteur de fin de course par axes, il faut régler le firmware de manière à ce que le cycle de homing se fasse en direction de ces capteurs.

Carrénage et finition

Pour le carénage, j’ai simplement dessiné une boite avec Inkscape, mis en place les câbles pour les moteurs, ceux pour les capteurs de fin de course et imprimé une chaine porte cable pour l’axe Z.

Et voilà le résultat final:

Cette machine va servir à fabriquer des circuits imprimer et à usiner des pièces de petite taille dans des materiaux souples.

Crédits/sources:

8fablab
GRBL
Arduino
Configuration GRBL

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *