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ó:
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:
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
Apresentada a shield, vamos iniciar o acionamento de um motor de forma simples. Para isso, vamos precisar dos seguintes materiais:
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:
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:
Para o Universal Gcode Sender
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.
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!
https://blog.eletrogate.com/driver-a4988-motor-de-passo-usando-o-arduino/
https://marlinfw.org/docs/gcode/G000-G001.html
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!
|
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!