Como configurar o GRBL e controlar a máquina CNC com Arduino
Se você está pensando ou está no processo de fazer sua própria máquina CNC, provavelmente encontrará o termo GRBL. Então neste tutorial vamos aprender o que é GRBL, como instalar e como usá-lo para controlar sua máquina CNC baseada em Arduino.
Além disso, aprenderemos como usar o Universal G-code Sender, um popular software de controlador GRBL de código aberto.
O que é GRBL?
GRBL é um software ou firmware de código aberto que permite o controle de movimento para máquinas CNC. Podemos instalar facilmente o firmware GRBL em um Arduino e obter instantaneamente um controlador CNC de baixo custo e alto desempenho. O GRBL usa o código G como entrada e gera controle de movimento através do Arduino.
Para melhor compreensão, podemos observar o seguinte diagrama:
A partir do diagrama podemos ver onde o GRBL ocorre no “grande quadro” do princípio de funcionamento de uma máquina CNC. É um firmware que precisamos instalar ou carregar no Arduino para que ele possa controlar os motores de passo da máquina CNC. Em outras palavras, a função do firmware GRBL é traduzir o código G em movimento do motor.
Hardware necessário
- Arduíno – Como já dissemos, precisamos de um Arduino para instalar o GRBL. Especificamente, precisamos de uma placa Arduino baseada em Atmega 328, o que significa que podemos usar Arduino UNO ou Nano.
- Motores de passo – Obviamente, os motores de passo fornecem o movimento da máquina.
- Motoristas – Para acionar os motores de passo, precisamos de drivers e escolhas comuns quando se trata de máquinas CNC DIY menores (usando NEMA 14 ou 17 steppers) são os drivers A4988 ou DRV8825.
- Arduino CNC Shield – Para conectar os drivers de passo ao Arduino, a maneira mais fácil é usar um Arduino CNC Shield. Ele utiliza todos os pinos do Arduino e fornece uma maneira fácil de conectar tudo, os motores de passo, o fuso/laser, os interruptores de limite, ventilador de refrigeração etc.
Observe que estes são apenas os componentes eletrônicos básicos que precisamos para entender como funciona uma máquina CNC.
Na verdade, como um exemplo de como tudo precisa ser conectado, podemos dar uma olhada na minha máquina de corte de espuma CNC DIY.
Você pode conferir e obter os principais componentes eletrônicos necessários para construir esta máquina CNC aqui:
- Motor de passo – NEMA 17………………
- Driver de passo A4988…………………..…
- Arduino CNC Shield ………………………. Amazônia / Banggood / AliExpress
- Arduino Uno…………………………………..…
A principal ferramenta desta máquina CNC é um fio quente que pode facilmente derreter ou cortar um isopor e fazer qualquer forma que desejarmos. Para mais detalhes de como eu fiz a máquina e como tudo funciona você pode conferir o tutorial específico.
No entanto, usaremos esta máquina como exemplo ao longo deste artigo, pois o mesmo princípio de funcionamento se aplica a qualquer outra máquina CNC, seja fresadora ou laser.
Como instalar o GRBL
Primeiro, para poder instalar ou carregar o GRBL no Arduino, precisamos do Arduino IDE.
Então podemos baixar o firmware GRBL do github.com.
Faça o download como arquivo .ZIP e siga estas etapas:
- Abra o arquivo grbl-master.zip e extraia os arquivos
- Abra o Arduino IDE, navegue até Sketch> Include Library> Add .ZIP Library…
- Navegue até a pasta extraída “grbl-master”, lá selecione a pasta “grbl” e clique no arquivo aberto. Agora temos o GRBL como uma biblioteca do Arduino.
- Em seguida, navegue até Arquivo> Exemplos> grbl> grblUpload. Um novo sketch será aberto e precisamos carregá-lo na placa Arduino. O código pode parecer estranho, pois é apenas uma linha, mas não se preocupe, tudo acontece em segundo plano na biblioteca. Então, basta selecionar a placa Arduino, a porta COM e clicar no botão de upload e pronto.
Configuração GRBL
Neste ponto devemos configurar ou ajustar o GRBL para nossa máquina. Podemos fazer isso através do Serial Monitor do Arduino IDE. Assim que abrirmos o Serial Monitor, receberemos uma mensagem como “Grbl 1.1h [‘$’ for help]”. Se você não puder ver esta mensagem, certifique-se de alterar a taxa de transmissão para 115200.
Se digitarmos “$$” obteremos uma lista de comandos ou configurações atuais, e eles aparecem mais ou menos assim:
$ 100=250.000 (x, passo/mm)
$101=250.000 (y, passo/mm)
$102=3.200.000 (z, passo/mm)
$110=500.000 (x taxa máxima, mm/min)
US$ 111=500.000 (taxa máxima y, mm/min)
US$ 112=500.000 (taxa z máxima, mm/min)
US$ 120=10.000 (x aceleração, mm/seg ^2)
$121=10.000 (aceleração y, mm/seg^2)
$122=10.000 (aceleração z, mm/seg^2)
Todos estes comandos podem ou devem ser ajustados de acordo com nossa máquina CNC. Por exemplo, com o primeiro comando, $100=250.000 (x, step/mm), podemos ajustar os passos por mm da máquina, ou podemos especificar quantos passos o motor deve fazer para que nosso eixo X se mova 1 mm.
No entanto, sugiro deixar essas configurações como estão. Existe uma maneira mais fácil de ajustá-los de acordo com nossa máquina usando o software do controlador, que explicaremos na próxima seção.
Controlador GRBL
Então, uma vez que instalamos o firmware GRBL, agora nosso Arduino sabe ler o código G e como controlar a máquina CNC de acordo com ele. No entanto, para enviar o código G para o Arduino, precisamos de algum tipo de interface ou um software controlador que diga ao Arduino o que fazer. Na verdade, existem muitos programas de código aberto e comerciais para essa finalidade. Claro, vamos nos ater ao código aberto, então, como exemplo, usaremos o Univarsal G-code Sender.
Como usar o remetente universal de código G
Para este exemplo, usarei a versão 2.0 Platform. Depois de baixá-lo, precisamos extrair o arquivo zip, ir para a pasta “bin” e abrir qualquer um dos arquivos executáveis “ugsplatfrom”. Este é na verdade um programa JAVA, portanto, para poder executar este programa, primeiro precisamos instalar o JAVA Runtime Environment.
Uma vez que abrimos o remetente do código G Universal, primeiro precisamos configurar a máquina ou configurar os parâmetros GRBL mostrados anteriormente. Para isso, usaremos o UGS Setup Wizard, que é muito mais conveniente do que digitar manualmente os comandos através do Serial Monitor da IDE do Arduino.
O primeiro passo aqui é selecionar a taxa de transmissão, que deve ser 115200, e a porta à qual nosso Arduino está conectado. Uma vez que conectamos o emissor de código G Universal com o Arduino, na próxima etapa podemos verificar a direção de movimento dos motores.
Se necessário, podemos inverter a direção através do assistente, ou invertendo manualmente a conexão do motor no Arduino CNC Shield.
Na próxima etapa podemos ajustar o parâmetro steps/mm que mencionamos anteriormente. Aqui é muito mais fácil entender como ajustá-lo, pois o assistente de configuração calculará e nos informará para qual valor devemos atualizar o parâmetro.
O valor padrão é 250 passos/mm. Isso significa que, se clicarmos no botão mover “x+”, o motor fará 250 passos. Agora, dependendo do número de passos físicos que o motor possui, da resolução de passo selecionada e do tipo de transmissão, a máquina se moverá uma certa distância. Usando uma régua, podemos medir o movimento real que a máquina fez e inserir esse valor no campo “Movimento real”. Com base nisso, o assistente calculará e nos informará para qual valor devemos alterar o parâmetro steps/mm.
No meu caso, para a máquina CNC DIY que fiz, a máquina se moveu 3mm. De acordo com isso, o assistente sugeriu atualizar o parâmetro steps/mm para um valor de 83.
Com este valor atualizado a máquina agora se move corretamente, 1 mm no software significa 1 mm para a máquina CNC.
No console UGS, conforme fazemos cada ação podemos ver os comandos que são executados. Podemos notar que ao atualizar o parâmetro steps/mm o programa UGS realmente enviou para o Arduino, ou para o firmware GRBL, o comando que mencionamos anteriormente. Este era o valor padrão:$ 100=250.000 (x, passo/mm), e agora atualizamos para o valor de 83 passos por mm:$ 100=83.
Na próxima etapa, podemos habilitar os fins de curso e testar se eles funcionam corretamente.
Dependendo se são conexões Normalmente Abertas ou Normalmente Fechadas, também podemos invertê-las aqui.
Aqui vale a pena notar que às vezes precisamos desabilitar o interruptor de limite do eixo Z. Esse foi o caso da minha máquina de corte de espuma CNC DIY, onde não precisei do interruptor de limite do eixo Z e tive que desativá-lo para poder posicionar a máquina corretamente. Então, para isso, precisamos editar o arquivo config.h que está localizado na pasta da biblioteca do Arduino (ou Documents\Arduino\libraries).
Aqui precisamos encontrar as linhas do ciclo de retorno e comentar o conjunto padrão para máquina CNC de 3 eixos e descomentar a configuração para máquinas de 2 eixos. Para que as alterações tenham efeito, precisamos salvar o arquivo e reenviar o esboço grblUpload para nossa placa Arduino.
No entanto, no próximo passo podemos habilitar ou desabilitar o homing da macing CNC.
Usando o botão “Try homing”, a máquina começará a se mover em direção aos fins de curso. Caso seja na direção oposta, podemos facilmente inverter a direção.
Finalmente, na última etapa do assistente de configuração, podemos habilitar limites flexíveis para nossa máquina CNC.
Os limites suaves impedem que a máquina se mova além da área de trabalho definida.
Conclusão
Assim, graças ao firmware GRBL e ao Arduino, podemos facilmente configurar e colocar nossa máquina CNC DIY em execução. Claro, abordamos apenas o básico neste tutorial, mas acho que foi o suficiente para entender como as coisas funcionam e como colocar nossa primeira máquina CNC em funcionamento.
Claro, existem muitas outras configurações e recursos disponíveis, pois o GRBL é um firmware de controlador CNC realmente capaz. A documentação do GRBL explica tudo isso em detalhes, então você sempre pode verificá-los em sua página wiki no github.com.
Além disso, existem muitos outros programas de controlador GRBL de código aberto, como o Universal G-code Sender, e aqui estão alguns:GRBLweb (navegador da Web), GrblPanel (Windows GUI), grblControl (Windows/Linux GUI), Easel (baseado em navegador) etc. Você deve explorá-los e ver qual combina mais com você.
Processo de manufatura
- Como Encontrar uma Máquina CNC Usada
- Como limpar uma máquina CNC usada
- Como Gerar Arquivo G-Code com ArtCAM para Máquina CNC?
- Como evitar problemas com máquinas CNC usadas
- Como escolher sua máquina CNC
- Aceitar moeda de controle com Arduino
- Torno com CNC
- Como usinar joias com usinagem CNC?
- Como automatizar processos de máquinas CNC
- Como a máquina suíça CNC se destaca no torneamento?