GRBL + two + Arduino + SD Shield + LCD + Pololu A4988 = Headless CNC

Nesse projeto utilizei módulos já montados:

Dois Arduinos, sendo um com o firmware Grbl e outro com o programa de gerenciamento;

MicroSD da Sparkfun;

Shield LCD com botões e modificações dos pinos;

e Pololu A-4988 equivalente ao BigEasydrive.

O próximo passo pode ser uma simplificação utilizando módulos tipo Garagino pré gravado e demais componentes agrupados de forma compacta.

A idéia é motivar e aprender com os colegas.

 

Exibições: 4346

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de Ticyfjsk nogueira em 11 maio 2015 às 1:26

Olá, quero fazer diferente, colocar um arduino MEGA entre o GRBL(NANO) e o PC para fazer o controle manual da placa sem alterar o GRBL em si. Estou tentando da seguinte forma "conectar" os dois arduinos:

while (Serial3.available()) {
char c = Serial3.read();
Serial.print(c);
}
while (Serial.available()) {
char d = Serial.read();
Serial3.print(d);
}

Bom, deu certo mas quando coloco o resto do programa, ele começa a travar no meio do envio dos dados. Não altero nada referente ao serial e não faço nada além disso com o serial no programa.

Alguém poderia me informar como fez ou me ajudar a solucionar esse problema?

Obrigado

Comentário de Antonio Marcos Ribas em 3 agosto 2013 às 19:19

tem como eu consegui esse projecto passo a passo para puder montar um, no lugar do Pololu A-4988 posso colocar um driver de minha preferência, tenho uma cnc montada e funcionando para placa PCI e queria monta esse projecto para colocar nela para teste. meus driver recebe comando do linux cnc com configuração STEP, Dir, o arduinos mandaria o sinal dessa forma STEP DIR para os drive do motor.

Comentário de Alexandre Desiderio Gariglio em 5 junho 2013 às 8:36

Então quer dizer que eu posso usar o mesmo arduino para testes com o Grbl e outro projetos ao mesmo tempo? Bastando para isso carregar o grbl ou o meu programa correto na memória? Existe algum grbl para o arduino Leonardo ( que já possuo)?

Comentário de Milton Vilela em 4 junho 2013 às 23:41

Olá Alexandre,

Quando o hex do Grbl é gravado no Arduino o Bootloader fica intacto, a gravação ocupa a mesma memória utilizada na gravação dos programas normais.

A IDE do Arduino transforma o programa em hexadecimal e grava esse código na memória de programa do Arduino, como o Grbl já está compilado e em hexadecimal, a gravação a gravação pode ser feita com o avrdude-GUI.exe

Comentário de Alexandre Desiderio Gariglio em 4 junho 2013 às 22:29

Amigo, conheci a pouco o GRBL e tenho uma duvida: Se eu carregar ele no arduino, vou estar substituindo o BOOTLOADER por ele, correto?

Comentário de Paulo Junio da Silva em 2 abril 2013 às 17:13

Show de bola... É possivel contribuir no projeto ? Como faço para trabalhar nele ?

Comentário de Milton Vilela em 25 março 2013 às 23:36

Boa noite Luís,

Os parâmetros que você está utilizando são aproximadamente os que tenho utilizado.

Estou fazendo várias experiências para acertar a melhor configuração.

Nos testes com meio passo, utilizei $0, $1 e $2 igual a 400.000;

Para a aceleração testei vários valores, $8=20 funcionou bem nesse motor;

Fiz um resumo para o parâmetro $6 que modifica direção e passo para cada eixo:

// Arc segment (mm) => (step port invert mask, int:00011100) papa ex: $6=28
// Z_DIRECTION_BIT 7; Y_DIRECTION_BIT 6; X_DIRECTION_BIT 5; Z_STEP_BIT 4; Y_STEP_BIT 3; X_STEP_BIT 2; 1; 0
// $ 6 = 96 (porta passo invertido máscara int:. 1100000)
// 0 1 1 0 0 0 0 0 => 01100000
// 0 + 64 + 32 + 0 + 0 + 0 + 0 + 0 => $6=96
// => 128; 64; 32; 16; 8; 4; 2; 1
// bit7; bit6; bit5; bit4; bit3; bit2; bit1; bit0
// Zdir Ydir Xdir Zstep Ystep Xstep

Os demais parâmetros estão conforme utilizei nos testes.

Comentário de Luís Bulek em 25 março 2013 às 16:11

Legal a experiência. 

Eu tenho um motor igual a esse, e estou usando o GRBL, como já viu no meu post do fórum. 

O que você deixou nos parâmetros de $0 a $22 ?.

O que você conseguiu entender desses parâmetros ?

Não consegui entender bem isso e chutei o seguinte: 

$0=250.000 (x, step/mm)
$1=250.000 (y, step/mm)
$2=250.000 (z, step/mm)
$3=10 (step pulse, usec)
$4=1500.000 (default feed, mm/min) <-- isso aqui deve estar muito alto para esse motor 
$5=1500.000 (default seek, mm/min) <-- não consigo passar de 800 mm/min
$6=0 (step port invert mask, int:00000000)
$7=25 (step idle delay, msec)
$8=20.000 (acceleration, mm/sec^2) 
$9=0.050 (junction deviation, mm)
$10=0.100 (arc, mm/segment)
$11=25 (n-arc correction, int)
$12=3 (n-decimals, int)
$13=0 (report inches, bool)
$14=1 (auto start, bool)
$15=1 (invert step enable, bool)
$16=0 (hard limits, bool)
$17=0 (homing cycle, bool)
$18=0 (homing dir invert mask, int:00000000)
$19=25.000 (homing feed, mm/min)
$20=250.000 (homing seek, mm/min)
$21=100 (homing debounce, msec)
$22=1.000 (homing pull-off, mm)

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço