Go Down

Topic: CNC caseira (Read 9918 times) previous topic - next topic

Ok, dei uma vista de olhos ao Stepper e na realidade as funções de movimentação do motor são bloqueantes. Ou seja, não consegues actuar dois motores ao mesmo tempo.

Sempre que fazes:
Code: [Select]
myStepper.step(10);

O programa fica ali parado até os 10 passos serem dados. Isto implica que ao tentares fazer uma recta na diagonal, na realidade vais ficar com uma recta na horizontal e uma na vertical. Claro que se te movimentares de passo a passo, tipo:

Code: [Select]


for (int i = 0; i < 10; i++) {
Stepper1.step(1);
Stepper2.step(2);
}

Esse efeito será mitigado (ou até completamente resolvido), mas também depende da razão de tranformação que colocares nos eixos da CNC. De qualquer das maneiras, aposto que não estavas a pensar nisto e assim já tens outro "problema" para pensar.

O que eu estava a dizer anteriormente seria algo como:

Code: [Select]


ISR (TIMER2_OVF_vect) {//usar o T2, T0 é para millis, T1 é "bom" de mais.
TCNT = XXXX; //cálculo da velocidade.

if (Stepper1.passos > 0) executa um passo;
if (Stepper2.passos > 0) executa um passo;

}



Ou seja, no teu programa apenas definias o número de passos e velocidade (repara que a velocidade dos motores vai ser diferente) e depois através da temporização ias decrementando o número de passos que querias dar. Isto vai envolver cálculos algo complicados da tua parte.

Ou seja, tens de ver a precisão do temporizador e jogar com ela para nunca teres temporizações muito pequenas (que vão atrapalhar o programa e provavelmente vão falhar). Algo que te ajuda é que as temporizações estão relacionadas entre os motores, por isso em vez de especificares a velocidade a que a CNC vai mexer, tens de jogar para veres qual a diferença entre velocidades dos motores (que te vão dizer quais os ângulos possíveis. Lembra-te também que vais precisar de definir uma onda, logo a temporização que usares tem de ser dividida por dois para poderes fazer uma onda quadrada com 50% de duty cycle.

Por último, lembrei-me agora, um dos motivos pelos quais isto pode não estar a funcionar é que a Stepper.h é feita para ser usada com um driver diferente. Ora vê:

http://arduino.cc/en/Reference/StepperBipolarCircuit

O teu chip faz a papinha toda para controlar o teu motor e tu precisas apenas de dois bits para controlar um motor. Um deles é a direcção (que liga ao pino DIR) e o outro é ao pino Step. Agora de repente, acho que com um pouco de trabalho devias tentar controlar o motor com um PWM (ou neste caso, FM). Colocando uma onda quadrada no pino de Step, o motor move-se facilmente. Já agora, outra coisa, podes para segurança, ligar também os pinos de Enable. Se calhar a um circuito de paragem de emergência por exemplo. Eles fazem o motor parar completamente.

Reparei agora que o meu post não faz sentido nenhum, pois não?
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Latas

Hum... Não sei se o post faz sentido para os outros mas na minha cabeça e só um aglomerado de palavras :D

Percebi pouco ou nada :P

Eu acho que ja há G-gode interpreters para o arduino, Evitava-me grande parte do trabalho de programação pq percebo mesmo muito pouco. Conhecem algum?

Já agora um pouco Off-topic conhecem lojas em Portugal ou na europa onde possa adquirir material para a CNC? tipo carris, veios etc?

Abraço obrigadissimo pela informação.

Não faço ideia... mas se procurares por CNC no fórum, vais encontrar um fórum de malta que gosta de as fazer. Talvez aí consigas algo.

No que toca a hardware... acho que com duas impressoras HP Deskjet conseguias fazer uma pequena CNC. :) Tens alguma aí por casa? Elas já tinham um veio cada, rodas dentadas, motor e transmissões.

Se não me engano é possível medir a corrente que o motor está a usar com esse driver.
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Latas

Boas pessoal.

O que e que acham destes drivers?
http://www.zappautomation.co.uk/pdf/UIM240%20Manual%20_English_%20_2_.pdf

Acham que servem?

Abraço

Os drivers que tinhas antes também servem... estes parecem uma coisa industrial e podem ser um pouco mais caros do que a CNC vai valer no final. :\

Por outro lado, um PC velho com uma porta paralela podia controlar uns quantos motores com uma programação bem feita. ;)
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Latas

#20
Feb 16, 2012, 02:01 pm Last Edit: Feb 16, 2012, 02:04 pm by Latas Reason: 1
Os easyDriver com o Nema23 não têm força nem para rodar o veio sem peso. Estarei a fazer alguma coisa mal?

Não sei se estás a fazer algo de mal ou não.

Não vi os motores, nem qual a potência que consomem e muito menos a carga que vão accionar. Tudo isso pode ser calculado para adaptar os materiais ao que pretendes. Colocaste uma redução? Em princípio, numa CNC as reduções são interessantes e necessárias para dividir ainda mais o ângulo do motor de passo e conseguir movimentos e pormenores mais precisos.

Esse driver que apresentaste é muito bom e acoplado a um motor da mesma marca fica uma instalação limpa e precisas apenas de 3 sinais (como o easyDriver) para correr os motores, eu apenas referi que é um custo imenso para um projecto que me pareceu ser caseiro e não algo industrial.

Como vai o software? Chegaste a perceber o que eu disse acerca de usar aquela biblioteca do Stepper motor com esse driver? A biblioteca está a fazer tudo o que o teu easyDriver está a fazer. Daí que os passos não batam certo. O outro problema tem a ver com o facto que a biblioteca apenas te permite mover um motor de cada vez. Assim sendo, só poderias controlar os motores com um passo de cada vez, em vez de dizeres a ambos para andarem X e um a velocidade y e outro a velocidade z. Isso consegue-se mexendo com os timers e executando os passos numa interrupção dos timers.
As velocidades terão de ser múltiplos desse timer.
Daí talvez que eu ache que se tiveres dois motores pequenos os devas ligar ao easyDriver e tentar começar pelo software de controlo e só depois passar para o hardware caro. ;) Mas tu é que sabes.
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Go Up