Fresagem CNC com software de código aberto

Estou sempre à procura de novos projectos para criar com a minha impressora 3D. Quando recentemente vi um novo design para uma fresadora de código numérico (CNC) que usa principalmente peças impressas em 3D, fiquei intrigado. Quando vi que a máquina funciona com software de código aberto e o controlador é um Arduino rodando software de código aberto, eu sabia que tinha que fazer uma.

Máquinas de fresagem CNC são ferramentas de corte de precisão usadas na criação de matrizes, gravuras e modelos. Ao contrário de outras ferramentas de fresagem, as máquinas CNC podem mover-se em três eixos: o eixo Z move-se verticalmente, o eixo X move-se horizontalmente, e o eixo Y move-se para trás e para a frente.

DIY your CNC

Embora muitos dos componentes desta máquina CNC sejam impressos em 3D, várias peças devem ser encomendadas para que funcione. O seu criador, Nikodem Bartnik, tem uma lista de peças na página Thingiverse do projecto juntamente com links para descarregar os ficheiros STL das peças impressas em 3D.

Eu encomendei as peças necessárias e iniciei a espera. Elas foram enviadas do exterior, então algumas delas demoraram cerca de um mês para chegar. Entretanto, eu imprimi as outras peças em 3D.

A máquina CNC é construída sobre um controlador Arduino executando o software de controle de movimento GRBL de código aberto. O controlador GRBL recebe o código G do CNC (uma lista de instruções baseada em texto para a fresa CNC) e o converte em movimento ao acionar os motores passo a passo. A máquina possui um passo para o eixo Z (para cima e para baixo), um passo para o eixo X (esquerda e direita), e dois passos para o eixo Y (para trás e para frente). O site do GRBL possui documentação para carregar GRBL na placa Arduino.

Não entrarei em detalhes sobre a montagem do hardware do CNC, já que Nikodem possui uma série de vídeos que o explicam em detalhes. Em vez disso, vou focar no software de código aberto que pode ser usado para criar desenhos para e executar a máquina CNC. Junto com o Fedora como meu sistema operacional base, as outras peças de software de código aberto que usei são GRBL, Inkscape, jscut e CNCjs.

Para este tutorial, explicarei como criar uma versão em madeira com o logotipo do Linux Tux de Larry Ewing.

Faça seus arquivos

O primeiro passo para fazer um Tux de madeira é baixar uma versão em preto e branco do logotipo em formato PNG do Wikimedia Commons.

cnc_bw-tux.png

Logo do Tux do Wikimedia Commons

div>>p> O ponto de partida do projeto, uma imagem PNG do Tux do Wikimedia Commons, feita pela gg3po, licenciada sob a GPL v2.

Assim o logotipo do Tux pode funcionar na máquina CNC, convertendo o arquivo PNG do Tux para um arquivo SVG com Inkscape arrastando e soltando o arquivo PNG na janela Inkscape. Depois use a opção Trace Bitmap do Inkscape para converter a imagem para caminhos SVG. Isto cria cópias duplicadas da imagem – um é caminhos, o outro é um bitmap – apague a cópia do bitmap. Use a opção Break Apart e remova a propriedade Fill para o contorno do Tux e da boca do Tux; você terá uma imagem SVG que se parece com o inverso da imagem original.

cnc_inverse-svg.png

Inverse Tux criado no Inkscape

Inverse Tux criado no Inkscape. Os trechos pretos serão fresados pela máquina CNC.

Next, converte o arquivo SVG para o código G do CNC, que é uma lista de instruções que dizem à máquina CNC como criar o desenho desejado. Utilizei o software jscut de código aberto, que é um programa de manufatura assistida por computador (CAM) baseado na web. Você pode baixar o software e executá-lo em sua máquina local ou usar a versão baseada na web em jscut.org, que é o que eu fiz.

Abrir o arquivo SVG em jscut.org usando o menu suspenso Open SVG. A seguir, clique em uma ou mais partes da imagem SVG, depois clique em Create Operation. Escolha o tipo de operação (gravar, exterior, bolso, etc.) e a profundidade do corte, e clique em Gerar. Os diferentes tipos de operações definem onde o corte é feito; você pode ver os efeitos das diferentes operações indo até a aba Simular GCODE, que mostra uma prévia de como será o corte. Para o Tux, criei várias operações para várias partes do desenho.

cnc-jscut.png

Gerar o código G do Tux CNC com jscut

Gerar o código G do Tux CNC com jscut.

Definir as propriedades do bit de corte sob a secção Ferramenta; estas incluem a especificação do diâmetro do bit e a rapidez com que o corte deve ser feito. Uma limitação do jscut é que você não pode especificar tamanhos diferentes de bit para operações diferentes. Para criar o Tux, eu precisei usar dois bits diferentes: um bit menor para gravar detalhes como olhos, nariz e boca, e um bit maior para cortar o contorno do Tux até a tábua de madeira. Eu usei jscut duas vezes para gerar dois arquivos de código G diferentes: um para fazer as gravações com o bit menor e outro para cortar o contorno do Tux com o bit maior.

Após criar os dois arquivos de código G, a próxima tarefa é obter o software do controlador CNC. Eu usei os CNCjs de código aberto. CNCjs é baseado em web, fácil de usar, e suporta interface com controladores GRBL. Depois de instalado, aceda ao CNCjs num navegador web e ligue-o ao seu controlador Arduino GRBL.

Click Upload G-Code e especifique o ficheiro que criou com o jscut. Primeiro, carreguei o arquivo G-code que faz as gravações em cima do Tux.

Ponha-se pronto para cortar

Você está quase pronto para começar a cortar! Uma vez que você vai cortar toda a madeira, é inteligente usar uma “tábua de resíduos” – uma tábua que fica em cima daquela máquina CNC em que você não se importa de cortar. Isto é porque quando a máquina corta o Tux, ele vai até o interior da tábua debaixo dela. A tábua de resíduos pode ser substituída conforme necessário.

cnc-wasteboard.jpg

Tábua de resíduos

Tábua de resíduos mostrando cortes anteriores.

Anexe seguramente a placa de resíduos à sua máquina CNC para evitar qualquer movimento, depois anexe o pedaço de madeira que vai utilizar para o Tux. Há muitas maneiras de prender a madeira – eu uso fita adesiva dupla face resistente.

O passo final antes de cortar é alinhar o bit no fuso ao pedaço de madeira que você está cortando. Use os botões dos eixos do CNCjs para mover fisicamente o fuso de modo que as coordenadas X, Y, e Z do bit estejam alinhadas com o canto superior esquerdo da sua madeira. O eixo Z deve estar logo acima da madeira; você deve ser capaz de deslizar um pedaço de papel entre a madeira e o bit mas sentir o bit arrastando sobre o papel enquanto ele desliza.

Após tudo estar alinhado, defina os offsets de posição de trabalho para os eixos X, Y, e Z para zero clicando no botão Set para cada.

cnc-set-axes.png

Zeroing axes work position

p>Definir a posição de trabalho em zero para os eixos X, Y, e Z.

Pressione o botão Z+ nos CNCjs para levantar um pouco o bit para que o fuso não deixe marca na madeira quando é ligado.

Para começar a cortar, coloque os óculos de segurança, a proteção auditiva e uma máscara de pó. A seguir, ligue o eixo-árvore, e clique no botão Play em CNCjs.

Closamente monitorize a máquina durante o corte e tenha um plano para desligar rapidamente a alimentação da máquina CNC e do eixo-árvore, se necessário. Estar preparado também com um aspirador de pó, pois criará muita serragem.

Após o primeiro arquivo de código G completar as gravações no Tux, desligar o eixo-árvore e pressionar o botão X0Y0 no CNCjs para retornar o eixo-árvore à posição de trabalho dos eixos X e Y. A seguir, mudar para o bit maior, carregar o arquivo de código G que cortará o contorno do Tux, e seguir o mesmo processo para executá-lo.