Parties électronique et logicielle de ma CNC

Une fois la partie mécanique assemblée, il faut s'occuper des commandes électroniques.
J'ai décidé de recycler une carte de type Arduino Mega Taurino Classic (modèle que j'avais remplacé par une Taurino Power sur ma RepRap Prusa afin de la faire fonctionner en 24 Volts pour le plateau chauffant), une carte RAMPS que j'avais eu dans un lot sur e-bay, avec une alimentation en 12 V ainsi que des micro-steppers et des switchs opto-électriques de début ou fi de course que je n'ai pas utilisés sur ma Prusa. J'avais aussi un panneau d'affichage LCD Reprap Discount Full Graphic Smart Controller (avec lecteur de carte SD fonctionnel).

1- Piloter la machine

 

a) Le firmware sur la RAMPS 1.4 :

 

Il faut d'abord un firmware pour la machine : c'est grâce à lui que la machine sait quoi faire. Ayant une carte RAMPS, j'ai choisi d'utiliser Marlin car il a plusieurs avantages selon moi : il offre de nombreuses possibilités dont l'utilisation d'un écran LCD et d'un lecteur de carte SD qui rend la machine autonome. De plus, son code est plutôt bien documenté, ce qui peut permettre pour des non codeurs (comme moi) de comprendre le paramétrage. Le problème est que Marlin est adapté aux imprimantes 3D pas aux CNC aussi il faut y apporter des modifications : ceci implique qu'à chaque mise à jour, il faudra répercuter les modifications, ça n'est pas très pratique si l'on veut profiter des améliorations de Marlin.

Autre possibilité : Utiliser le firmawre Grbl qui est spécifique aux CNC, mais Grbl n'est pas prévu pour fonctionner sur un Arduino Mega 2560 mais UNO et donc là aussi il faut adapter Grbl à la RAMPS...

https://github.com/MaxVandenbussche/Marlin-Shapeoko-CNC

https://sourceforge.net/projects/grblforramps14

https://github.com/grbl/grbl/wiki/Configuring-Grbl-v0.9

Mes choix actuels : Firmware Grbl For Ramps 1.4 qui fonctionne correctement (homing, allumage de la fraiseuse). Il me reste à tester la sonde pour la hauteur de la fraise...

 

 

b) Le logiciel pilotant la machine :

 

Il permet l'interaction directe avec la machine. Il y en a plusieurs :

Il s'agit d'une distribution sous Debian permettant de piloter une machine CNC : ce serait l'idéal pour piloter ma machine vu que je ne veux utiliser que des logiciels libres. Le seul hic c'est qu'elle ne peut pas piloter à travers le port usb... il faudrait un port parallèle ou avoir une solution basée sur les cartes Beaglebone + CRAMPS : pour l'instant je ne compte pas investir ou m'investir dans un nouveau projet (mais c'est bon de savoir que ça existe au cas où ...).

Il s'agit d'une interface de pilotage issu de Printrun. C'est le logiciel que j'utilise pour piloter ma Reprap Prusa. Mais ce logiciel a besoin d'avoir un fichier .gcode contenant les instructions à suivre.

Permet de piloter la CNC à condition d'utiliser le firmware Grbl. Sous Ubuntu, l'installation est particulière : http://zapmaker.org/projects/using-qt-for-cross-platform-development-building-grbl-controller/building-linux/Attention, il faut installer des modules supplémentaires pour que ça marche : sudo apt-get install "^libxcb.*" libx11-xcb-dev libglu1-mesa-dev libxrender-dev

Il permet de pouvoir affiner le paramétrage de Grbl et de choisir les bonnes options pour que ce soit fonctionnel.

À l'heure actuelle, c'est le logiciel qui me semble le plus complet pour piloter ma CNC. Il utilise le firmware Grbl et fonctionne aussi bien sous Windows, Mac que GNU/Linux (il est écrit en python). Il est prévu pour pouvoir fonctionner sur un Raspberry Pi : c'est un sacré avantage pour se créer une machine autonome. Le seul inconvénient est qu'il n'est qu'en anglais.
Site :
https://github.com/vlachoudis/bCNC
https://github.com/vlachoudis/bCNC/wikihttp://www.shapeoko.com/wiki/index.php/BCNC

 

2- Créer la pièce à graver

On a besoin d'un logiciel de conception 3D ou 2D pour créer la pièce. J'utilise Freecad pour la 3D et Inkscape pour la 2D. Le fichier obtenu doit être au format .stl ou .obj. Ce fichier est universel et valable pour tous quelque soit la machine qui fabriquera la pièce.

Logiciels que j'utilise (pour info tous les 2 ont des fonctions encore expérimentales permettant de générer des fichiers au format .gcode utilisables par nos machines) :

 

3- Produire le fichier .gcode spécifique à notre machine

Il faut maintenant produire un fichier adapté à notre machine car le chemin suivi par la fraiseuse (toolpath en anglais) dépendra de la largeur/forme de la fraise utilisée, de la capacité/profondeur de coupe (nombre et hauteurs des couches variables),... Pour l'impression 3D, j'utilise Slic3r qui est vraiment très performant. Voir http://replicat.org/generators pour avoir une liste de logiciels CAM (il peut y avoir des extensions à rajouter au logiciels de conception CAD (cf partie 1 ci-dessus). C'est là que l'on peut faire des remplacements automatiques de GCode.

Logiciels à tester :

 

 

 Liens utiles :

http://linuxfr.org/users/christophe_g/journaux/linux-et-la-cnc

http://www.buildlog.net/blog/2012/08/hacking-your-cnc-toolchain/

http://sourceforge.net/p/pycam/discussion/860183/thread/ddf61e8d

http://reprap.org/wiki/PCB_Milling

http://reprap.org/wiki/G-code

https://code.google.com/p/picnc/wiki/CreateRaspbianLinuxCNC

http://reprap.org/wiki/CNCGcodeController

 https://sourceforge.net/projects/gcncsender/