Fresatura CNC con software open source

Sono sempre alla ricerca di nuovi progetti da creare con la mia stampante 3D. Quando di recente ho visto un nuovo progetto per una fresatrice a codice numerico (CNC) che utilizza principalmente parti stampate in 3D, sono rimasto incuriosito. Quando ho visto che la macchina funziona con un software open source e il controller è un Arduino che esegue un software open source, ho capito che dovevo farne una.

Le fresatrici CNC sono strumenti di taglio di precisione utilizzati nella creazione di stampi, incisioni e modelli. A differenza di altri strumenti di fresatura, le macchine CNC possono muoversi su tre assi: l’asse Z si muove verticalmente, l’asse X si muove orizzontalmente, e l’asse Y si muove avanti e indietro.

Fai da te il tuo CNC

Mentre molti dei componenti di questa macchina CNC sono stampati in 3D, diverse parti devono essere ordinate per farla funzionare. Il suo creatore, Nikodem Bartnik, ha un elenco di parti sulla pagina Thingiverse del progetto insieme ai link per scaricare i file STL delle parti stampate in 3D.

Ho ordinato le parti necessarie e iniziato l’attesa. Sono stati spediti da oltreoceano, quindi alcuni di loro hanno impiegato circa un mese per arrivare. Nel frattempo, ho stampato in 3D le altre parti.

La macchina CNC è costruita su un controller Arduino che esegue il software open source GRBL motion-control. Il controller GRBL riceve il G-code CNC (un elenco di istruzioni basato sul testo per il mulino CNC) e lo traduce in movimento guidando i motori passo-passo. La macchina ha uno stepper per l’asse Z (su e giù), uno stepper per l’asse X (sinistra e destra), e due stepper per l’asse Y (indietro e avanti). Il sito web di GRBL ha la documentazione per caricare GRBL sulla scheda Arduino.

Non entrerò nei dettagli dell’assemblaggio dell’hardware CNC, poiché Nikodem ha una serie di video che lo spiegano in dettaglio. Invece, mi concentrerò sul software open source che può essere utilizzato per creare progetti e far funzionare la macchina CNC. Insieme a Fedora come sistema operativo di base, gli altri software open source che ho usato sono GRBL, Inkscape, jscut, e CNCjs.

Per questo tutorial, spiegherò come creare una versione in legno fresata a CNC del logo Linux Tux di Larry Ewing.

Fai i tuoi file

Il primo passo per fare un Tux in legno è scaricare una versione in bianco e nero del logo in formato PNG da Wikimedia Commons.

cnc_bw-tux.png

Logo Tux da Wikimedia Commons

Il punto di partenza del progetto, un’immagine PNG di Tux da Wikimedia Commons, fatta da gg3po, sotto licenza GPL v2.

Per far funzionare il logo Tux sulla macchina CNC, convertire il file PNG di Tux in un file SVG con Inkscape trascinando il file PNG nella finestra di Inkscape. Poi usa l’opzione Trace Bitmap di Inkscape per convertire l’immagine in percorsi SVG. Questo crea copie duplicate dell’immagine – una è un percorso, l’altra è una bitmap – cancella la copia bitmap. Usa l’opzione Break Apart e rimuovi la proprietà Fill per il contorno di Tux e la bocca di Tux; avrai un’immagine SVG che sembra l’inverso dell’immagine originale.

cnc_inverse-svg.png

File Tux inverso creato in Inkscape

Tux inverso creato in Inkscape. Le sezioni nere saranno fresate dalla macchina CNC.

Prossimo, convertire il file SVG in G-code CNC, che è una lista di istruzioni che dicono alla macchina CNC come creare il disegno desiderato. Ho usato il software open source jscut, che è un programma di produzione assistita dal computer (CAM) basato sul web. Puoi scaricare il software ed eseguirlo sulla tua macchina locale o usare la versione web-based su jscut.org, che è quello che ho fatto io.

Apri il file SVG su jscut.org usando il menu a discesa Open SVG. Poi, clicca su una o più parti dell’immagine SVG, poi clicca su Create Operation. Scegliere il tipo di operazione (incisione, esterno, tasca, ecc.) e la profondità del taglio, e cliccare su Generate. I diversi tipi di operazioni definiscono dove viene fatto il taglio; puoi vedere gli effetti delle diverse operazioni andando alla scheda Simula GCODE, che mostra un’anteprima di come sarà il taglio. Per Tux, ho creato diverse operazioni per varie parti del disegno.

cnc-jscut.png

Generazione del codice G CNC di Tux con jscut

Generazione del codice G CNC di Tux con jscut.

Imposta le proprietà della tua punta da taglio sotto la sezione Tool; queste includono la specificazione del diametro della punta e la velocità di taglio. Una limitazione di jscut è che non puoi specificare diverse dimensioni della punta per diverse operazioni. Per creare Tux, ho avuto bisogno di usare due punte diverse: una più piccola per incidere i dettagli come gli occhi, il naso e la bocca, e una più grande per tagliare il contorno di Tux attraverso tutta la tavola di legno. Ho usato jscut due volte per generare due diversi file G-code: uno per fare le incisioni con la punta più piccola e un altro per tagliare il contorno di Tux con la punta più grande.

Dopo aver creato i due file G-code, il prossimo compito è quello di ottenere il software del controller CNC. Ho usato l’open source CNCjs. CNCjs è basato sul web, facile da usare, e supporta l’interfacciamento con i controller GRBL. Dopo averlo installato, accedi a CNCjs in un browser web e connettilo al tuo controller Arduino GRBL.

Clicca Upload G-Code e specifica il file che hai creato con jscut. Per prima cosa, ho caricato il file G-code che fa le incisioni sulla parte superiore di Tux.

Pronto a tagliare

Sei quasi pronto per iniziare a tagliare! Dal momento che taglierai tutto il legno, è intelligente usare una “tavola di scarto” – una tavola che sta sopra la macchina CNC in cui non ti dispiace tagliare. Questo perché quando la macchina taglia Tux, andrà fino in fondo e nella tavola sotto di essa. Il pannello di scarto può essere sostituito se necessario.

cnc-wasteboard.jpg

Bordo di scarto

Bordo di scarto che mostra tagli precedenti.

Fissate in modo sicuro la tavola di scarto alla vostra macchina CNC per evitare qualsiasi movimento, quindi fissate il pezzo di legno che userete per Tux. Ci sono molti modi per fissare il legno – io uso del nastro biadesivo pesante per tappeti.

L’ultimo passo prima di tagliare è allineare la punta del mandrino al pezzo di legno che stai tagliando. Usate i pulsanti Axes di CNCjs per spostare fisicamente il mandrino in modo che le coordinate X, Y e Z della punta siano allineate con l’angolo superiore sinistro del vostro legno. L’asse Z dovrebbe essere appena sopra il legno; dovresti essere in grado di far scorrere un pezzo di carta tra il legno e la punta ma sentire la punta che trascina la carta mentre scorre.

Una volta che tutto è allineato, imposta gli offset della posizione di lavoro per gli assi X, Y e Z a zero cliccando il pulsante Set per ciascuno.

cnc-set-axes.png

Zero della posizione di lavoro degli assi

Impostazione della posizione di lavoro a zero per gli assi X, Y e Z.

Premere il pulsante Z+ in CNCjs per alzare un po’ la punta in modo che il mandrino non faccia un segno nel legno quando viene acceso.

Per iniziare a tagliare, indossare occhiali di sicurezza, protezione per l’udito e una maschera antipolvere. Poi, accendi il mandrino e clicca sul pulsante Play in CNCjs.

Monitorare attentamente la macchina durante il taglio e avere un piano per disconnettere rapidamente l’alimentazione della macchina CNC e del mandrino se necessario. Siate pronti anche con un aspirapolvere, perché si creerà molta segatura.

Dopo che il primo file G-code completa le incisioni su Tux, spegnete il mandrino e premete il pulsante X0Y0 in CNCjs per riportare il mandrino nella posizione di lavoro iniziale degli assi X e Y. Poi passate alla punta più grande, caricate il file G-code che taglierà il contorno di Tux, e seguite lo stesso processo per eseguirlo.