blog-eletrogate-logo-desktop blog-eletrogate-logo-mobile
  • Categorias
    • Voltar
    • INICIANTES
    • INTERMEDIÁRIOS
    • AVANÇADOS
    • divide
    • Automação Residencial
    • Componentes Eletrônicos
    • Impressão 3D
    • IoT
    • Modelagem 3D
    • Módulos Wifi
    • Por trás da tecnologia
    • Projetos
    • Raspberry Pi
    • Robótica
    • Sensores
    • Shields
    • Sistemas Operacionais
    • Tipos de Arduino
    • Tutoriais
  • Apostilas
  • Quem Somos
  • Seja um redator
  • Trabalhe Conosco
    • Categorias
      • Voltar
      • INICIANTES
      • INTERMEDIÁRIOS
      • AVANÇADOS
      • divide
      • Automação Residencial
      • Componentes Eletrônicos
      • Impressão 3D
      • IoT
      • Modelagem 3D
      • Módulos Wifi
      • Por trás da tecnologia
      • Projetos
      • Raspberry Pi
      • Robótica
      • Sensores
      • Shields
      • Sistemas Operacionais
      • Tipos de Arduino
      • Tutoriais
    • Apostilas
    • Quem Somos
    • Seja um redator
    • Trabalhe Conosco
Loja Eletrogate
voltar
  • Introdução
  • Características
  • Acionamento de Motor - Programação Tradicional
  • Acionamento de Motor - GRBL + UGS
  • Conclusão
  • Referências
  • Sobre o Autor
Projetos

CNC Shield: Guia Prático e Introdução ao GRBL

Eletrogate 13 de abril de 2021Atualizado em: 19 set 2022

Introdução

Já mostramos aqui algumas formas de fazer o acionamento de motores de passo usando os drivers A4988 e TB67S109A através de conexões fio a fio com o Arduino. Hoje te mostraremos uma forma extremamente prática e organizada de se acionar até 4 motores simultâneos: a CNC Shield!

A CNC Shield é uma placa que foi desenvolvida para facilitar a vida de quem necessita controlar até 4 motores simultâneos, proporcionando organização e praticidade aos nossos projetos. Sua principal função é fazer o controle de máquinas CNC’s e tem suporte para diversos drivers, tais como A4988 e DRV8825, entre outros. Vamos apresentar suas características e te ensinar a acionar um motor da forma tradicional, desenvolvendo seu próprio código e usando o firmware GRBL, que foi desenvolvido para aqueles que desejam montar sua CNC usando o Arduino Uno e a CNC Shield como plataforma. Veja só:


Características

A CNC Shield possui algumas características atrativas e práticas para aqueles que desejam projetar uma CNC, sendo do tipo Router (fresadora) ou Laser Cutter (corte à laser). Dentre elas, podemos listar:

  • 4 conectores para drivers (A4988, DRV8825, entre outros);
  • Alimentação de 12V a 36V (verifique se o driver é compatível com a tensão desejada);
  • Suporta 4 eixos (X, Y, Z, A – Permite duplicar o eixo X, Y ou Z ou ainda fazer um quarto eixo através de um firmware personalizado, usando os pinos D12 e D13);
  • Conexões para fim-de-curso;
  • Permite o acionamento, direção e velocidade/potência do Spindle/Laser;
  • Conector para cooler;
  • Compatível com GRBL;
  • Possui Jumper para configurar os micropassos dos motores;
  • Proteção contra sobrecarga;
  • Conexões I2C e Serial.

Abaixo temos uma imagem com todas as conexões presentes na CNC Shield e, logo abaixo, sua respectiva pinagem no Arduino Uno.


Conexões CNC Shield – Créditos: Keyestudio


Conexões CNC Shield – Arduino Uno


Acionamento de Motor - Programação Tradicional

Apresentada a shield, vamos iniciar o acionamento de um motor de forma simples. Para isso, vamos precisar dos seguintes materiais:

  • 1x CNC Shield V3 3D RepRap para Arduino
  • 1x Uno R3 + Cabo Usb para Arduino
  • 4x Driver Motor de Passo A4988 C/ Dissipador de Calor
  • 1x Motor de Passo NEMA 17 – 4 kgf.cm / 1,7A
  • Fonte de alimentação compatível

cta_cart

A primeira configuração que devemos fazer é colocar os jumpers na shield para ativar os motores e configurar os micropassos. No nosso caso, vamos trabalhar com a resolução máxima do A4988, que é de 1/16. Sabendo isso, consulte a tabela abaixo e posicione corretamente os jumpers nas conexões M0, M1 e M2 de cada eixo utilizado.

Nota: Se você utiliza os drivers DRV8825, siga a tabela abaixo

Em seguida, habilite os motores colocando um jumper na conexão EN/GND. Isso fará com que seus motores entrem em funcionamento ao receber algum comando e fiquem travados ao término da instrução, mantendo sua posição até que o próximo comando seja recebido.

O posicionamento dos jumpers ficará da seguinte forma:


Feito isso, devemos configurar o Vref dos drivers de acordo com a corrente dos seus motores. Como vamos utilizar o drive A4988 e o valor de referência pode variar de acordo com seu motor, sugerimos que leia nosso post sobre o assunto e entenda o funcionamento do drive e também do motor de passo. Para acessar, clique aqui.

Após esses passos, basta conectar seu motor à shield os 4 pinos correspondentes ao eixo selecionado, acoplar a mesma ao Arduino e conectar a fonte à shield. Atente-se à polaridade, pois caso a alimente de forma invertida, poderá danificar os drivers e até mesmo seu Arduino!

Vamos agora para o código que você deverá carregar em seu Arduino. É um código simples, apenas para demonstrar o funcionamento. Você pode fazer as alterações que precisar, seguindo os comentários que explicam seu funcionamento ao longo do código.

   // Controle de motor - CNC Shield

// Definição dos pinos 
#define stepPin 2 //Passo eixo X
#define dirPin 5 // Direção eixo X
 
 void setup() {
 // Definindo ambos os pinos acima como saída
 pinMode(stepPin,OUTPUT); 
 pinMode(dirPin,OUTPUT);
 }
 void loop() {
// Habilita o motor para que se movimente em um sentido particular
 digitalWrite(dirPin,HIGH);

// Conta 1600 pulsos para que o motor gire
  for(int x = 0; x < 1600; x++) {
 digitalWrite(stepPin,HIGH); 
 delayMicroseconds(500); 
 digitalWrite(stepPin,LOW); 
 delayMicroseconds(500); 
 }

 //Aguarda 1 segundo antes de executar a próxima instrução
 delay(1000);

 //Inverte o sentido de rotação
 digitalWrite(dirPin,LOW);

 // Conta 600 passos para que o motor gire
 for(int x = 0; x < 600; x++) {
 digitalWrite(stepPin,HIGH);
 delayMicroseconds(500);
 digitalWrite(stepPin,LOW);
 delayMicroseconds(500);
 }

//Aguarda 1 segundo e reinicia o loop
 delay(1000);
}

Nota: caso seu motor esteja girando para o lado contrário ao que precisa, basta inverter o fio das bobinas na shield!

Após carregar em seu Arduino, esse deverá ser o movimento esperado:


Acionamento de Motor - GRBL + UGS

Nessa etapa, vamos te apresentar de forma introdutória o processo de acionamento dos motores usando o GRBL e o Universal Gcode Sender, ambos desenvolvidos para efetuar o controle de máquinas CNC’s baseadas na CNC Shield. Mas antes, vamos conhecer um pouco sobre essa plataforma que é amplamente utilizada para esse fim:

Conhecendo o GRBL

O GRBL é um firmware desenvolvido para interpretar os códigos G, também conhecidos como G-code. Esse código foi desenvolvido para suprir a necessidade dos fabricantes industriais em ter uma linguagem padronizada em sistemas de Controle Numérico Computadorizado (CNC). Sua principal função é posicionar a máquina com precisão, velocidade e eficiência na repetição ao longo das coordenadas X, Y e Z, tornando-o a linguagem padrão para esse tipo de controle.


Você pode conhecer mais sobre o G-code na página do firmware Marlin, clicando aqui.
Nota: Apesar de usarem a mesma linguagem, o GRBL e o Marlin são firmwares totalmente diferentes para aplicações diferentes (CNC e impressoras 3D, respectivamente). Atente-se a isso ao elaborar seu projeto!

Voltando ao GRBL, podemos sentenciá-lo como um interpretador de códigos G. Foi desenvolvido com o foco estrito às Routers CNC’s e é o responsável por interpretar os códigos G que foram enviados ao Arduino pelo usuário, transformando as coordenadas em movimento dos motores. Por se tratar de um firmware, o GRBL necessita de uma interface com o operador, e quem faz essa mediação é o UGS – Universal Gcode Sender.

Conhecendo o UGS

O Universal Gcode Sender é um software desenvolvido para trabalhar em conjunto com o GRBL. Através dele podemos controlar a máquina por completo, enviando comandos de ajuste ou de trabalho. Veja a seguir a interface do UGS e uma breve descrição sobre suas funcionalidades.

Amarelo: Abrir arquivo .gcode;
Verde: Controles de estados da máquina (iniciar trabalho, pausar, parar);
Vermelho: Configurações de conexão serial;
Laranja: Ir à origem (ponto zero da máquina);
Roxo: Controle via celular;
Vermelho Escuro: Controles úteis (zerar eixos, reset, home, etc);
Azul: Área de visualização – aqui nos é mostrado uma simulação dos movimentos feitos pela máquina;
Marrom: Área de movimentação, sendo possível configurar a distância e velocidade (Feed Rate);
Preto: Feedback de movimentação – nos é informado a distância percorrida em cada eixo;
Lima: Retorno de informações referentes ao G-code.

Baixando e instalando o GRBL + UGS
Antes de acionarmos o motor por esse método, precisamos fazer o download do GRBL e do UGS. Siga os passos a seguir:

Para o GRBL:

  1.  Acesse o repositório do GRBL no GitHub clicando aqui.
  2. Clique em “Code” e, em seguida, “Download zip”
  3. Após a conclusão do download, abra o arquivo e extraia  a pasta “grbl” para o diretório “C:\Program Files (x86)\Arduino\libraries”.
  4. Feito isso, abra sua IDE do Arduino, clique em Arquivos > Exemplos > grbl > grblUpload e carregue na sua placa.

Para o Universal Gcode Sender

  1. Acesse o repositório do GitHub clicando aqui.
  2. Faça o download do arquivo conforme o seu sistema operacional.
  3. Após o download, abra e extraia os arquivos.
  4. O UGS é auto executável, não requer instalação. Para abri-lo, acesse a pasta que você extraiu, abra a pasta “bin” e execute o arquivo “ugsplatform.exe” caso seu sistema operacional for 32 bits (x86) ou “ugsplatform64.exe”, para sistemas operacionais 64 bits (x64).

Controlando o motor

Nossa última etapa é bem simples: com o UGS aberto, basta selecionar a porta COM em que seu Arduino está conectado, selecionar “GRBL” em Firmware e setar a taxa de transmissão para 115200, em Baud. Feito isso, clique no botão de conexão e se tudo estiver correto, no campo de feedback você verá a escrita “IDLE” e as funções que estavam inativas, agora estarão disponíveis.

Para movimentar o motor, basta definir a distância desejada em milímetros e clicar no botão correspondente ao eixo e sentido desejado. Veja no GIF abaixo:

Importante: por se tratar de um post básico, não iremos mostrar todo o processo de configuração do GRBL, visto que muitas dessas configurações são voltadas para a programação de uma CNC, que não é o propósito desse post.


Conclusão

Conhecemos hoje a CNC Shield, uma plaquinha voltada para aqueles que desejam montar sua CNC ou mesmo facilitar a vida daqueles que estão desenvolvendo projetos com diversos motores de passo. Esperamos que tenha aprendido algo novo e se ficou alguma dúvida, deixe nos comentários. Até a próxima!


Referências

https://blog.eletrogate.com/driver-a4988-motor-de-passo-usando-o-arduino/

https://marlinfw.org/docs/gcode/G000-G001.html

https://github.com/grbl/grbl

https://winder.github.io/ugs_website/


Se interessa em construir ou aprimorar sua CNC? Visite a nossa loja e confira nossos componentes destinados à CNC’s e impressão 3D! Se você já construiu uma usando a CNC Shield, grave um vídeo bem legal do seu funcionamento e nos marque no Instagram @Eletrogate.

Conheça a Metodologia Eletrogate e ofereça aulas de robótica em sua escola!


Sobre o Autor


Samuel Martins
@samuel.martins192

Cursando Eletroeletrônica no SENAI CETEL. Fanático por eletrônica, automação, impressão 3D e afins, dedico meu tempo livre a pesquisas e projetos ligados às principais áreas de interesse, pratico aeromodelismo e sou curioso por astrofotografia.


Eletrogate

13 de abril de 2021 Atualizado em: 19 set 2022

A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.

Conheça a Metodologia Eletrogate e Lecione um Curso de Robótica nas Escolas da sua Região!

Tutoriais

Criando uma Biblioteca para Arduino

Eletrogate16 de março de 2023 Atualizado em: 21 mar 2023

Neste post, vamos ensinar como criar sua própria biblioteca para Arduino, mostrando todos os detalhes de desenvolvimento, usando, de exemplo, uma biblioteca para LCDs alfanuméricos. É necessário conhecimento da linguagem C++ e da programação em Arduino.

Tutoriais

Criando uma Biblioteca para Arduino

Eletrogate16 de março de 2023 Atualizado em: 21 mar 2023

Neste post, vamos ensinar como criar sua própria biblioteca para Arduino, mostrando todos os detalhes de desenvolvimento, usando, de exemplo, uma biblioteca para LCDs alfanuméricos. É necessário conhecimento da linguagem C++ e da programação em Arduino.

Automação Residencial

Utilizando o Google Assistente com o NodeMCU

Eletrogate9 de março de 2023 Atualizado em: 21 mar 2023

Neste post, você aprenderá a desenvolver um sistema capaz de receber e interpretar dados do Google Assistente, que se aplica a vários projetos de IoT (Internet das Coisas) e automações residenciais, utilizando a ferramenta da Adafruit, com a tecnologia do Google Assistente, usando o IFTTT (Se Isso Então Aquilo) que intermediará a conexão do Google Assistente com a Adafruit.

Automação Residencial

Utilizando o Google Assistente com o NodeMCU

Eletrogate9 de março de 2023 Atualizado em: 21 mar 2023

Neste post, você aprenderá a desenvolver um sistema capaz de receber e interpretar dados do Google Assistente, que se aplica a vários projetos de IoT (Internet das Coisas) e automações residenciais, utilizando a ferramenta da Adafruit, com a tecnologia do Google Assistente, usando o IFTTT (Se Isso Então Aquilo) que intermediará a conexão do Google Assistente com a Adafruit.

Componentes Eletronicos

Usando Pastilhas Peltier

Eletrogate2 de março de 2023 Atualizado em: 21 mar 2023

Aprenda como funcionam as pastilhas termoelétricas Peltier e veja exemplos de sistemas que podemos criar com elas.

Componentes Eletronicos

Usando Pastilhas Peltier

Eletrogate2 de março de 2023 Atualizado em: 21 mar 2023

Aprenda como funcionam as pastilhas termoelétricas Peltier e veja exemplos de sistemas que podemos criar com elas.

Projetos

Agitador Magnético com Arduino

Eletrogate24 de fevereiro de 2023 Atualizado em: 21 mar 2023

No post de hoje, nós vamos aprender a fazer um agitador magnético com uma placa Arduino e um motor DC. Venha conferir!

Projetos

Agitador Magnético com Arduino

Eletrogate24 de fevereiro de 2023 Atualizado em: 21 mar 2023

No post de hoje, nós vamos aprender a fazer um agitador magnético com uma placa Arduino e um motor DC. Venha conferir!

Eletrogate Robô

Cadastre-se e fique por
dentro de novidades!

blog-eletrogate-logo-footer

Rua Rio de Janeiro, 441 - Sala 1301
Centro - Belo Horizonte/MG
CEP 30160-041
*Não temos atendimento físico

ANWAR SLEIMAN HACHOUCHE - ME
CNPJ: 18.917.521/0001-73

Atendimento

(31) 3142-3800

contato@eletrogate.com


Seg a Sex - das 8h às 17h

Institucional

  • Apostilas
  • Quem Somos
  • Privacidade
  • Seja um Redator
  • Trabalhe Conosco

Nos acompanhe

Facebook Instagram Youtube

© ELETROGATE 2023 - Todos os direitos reservados. Termos de uso e Política de privacidade.