• Welcome to LusoRobótica - Robótica em Português.
 

Projecto Freza CNC - Arduino

Started by c3dr1c, 24 de January de 2012, 19:50

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

c3dr1c

Bem ontem foi dia de montar o circuito todo na integra para alimentar um motor de passo.
Aproveitar tambem para testar se o detector de mudanças de estados logicos funcionava.

Funciona tudo na perfeição. O detector está a funcionar como queria e agora sim consegui finalmente obter uma boa velocidade.
Usei um condensador de 0.01uF e uma resistencia de 330ohm, que me da pulsos entre 5us a 8us.



Aqui fica o esquema do detector para quem precisar:


Abraços







"O único modo de descobrir os limites do possivel é aventurarmo-nos um pouco para além deles em direcção ao impossivel."

Uma das Três Leis de Arthur C. Clarke

dropes

Só uma curiosidade, os casquilhos que estás a usar levam esferas, achei-os muito baratos?

c3dr1c

Nop, é só plástico em contacto com os veios.
"O único modo de descobrir os limites do possivel é aventurarmo-nos um pouco para além deles em direcção ao impossivel."

Uma das Três Leis de Arthur C. Clarke

dropes

#303
Obrigado, tenho visto com rolamentos e custam os olhos da cara, supostamente levam 4 e lá se vai o orçamento...
Como vi na descrição "DryLin® R - Solid polymer bearing RJM-01, mm" pensei que fossem de esferas  ::)

ps: por vezes não é a velocidade do motor que dita o movimento final, pois também tem de se considerar o peso a arrastar e a fricção, com testes chega-se a um valor confortável e fiável

c3dr1c

O que agrava ainda mais a minha situação.

É que so consigo um tempo minimo entre cada passo de 10ms, ou seja a cnc ja fica lenta. Os carrinhos ficam com uma velocidade maxima de 1mm/s. Coisas de labview :P





"O único modo de descobrir os limites do possivel é aventurarmo-nos um pouco para além deles em direcção ao impossivel."

Uma das Três Leis de Arthur C. Clarke

dropes

1mm/s é um pouco lento...



Utilizo o "full step" em que dá no total da sequência 0.02mm num varão com 1mm entre veios, sendo necessários 50 x 0.02mm para que ande 1mm (uma volta completa).
Neste momento estou com 5mm/s (0.5ms/passo) o que ainda é bem lento se decidir fresar, só trocando o varão roscado.

c3dr1c

Talvez consiga aumentar a velocidade eliminando certas mariquices no labview. Mas acho muito dificil...

De qualquer maneira usando um software ja existente vai funcionar na boa, o driver de potencia que dimensionei é compativel e tudo (acho eu). So falta uma pcb com opto-isoladores e algumas cenas...

O problema é a porta LTP. Eu tenho la pa casa o meu AMD1800+ com uma epox que tem porta LTP. Se calhar construo um computador dedicado à cnc, numa caixa pequenina. Mas nao me apetecia muito.

Não haverá maneira de criar uma porta virtual LTP, atraves de uma USB?
"O único modo de descobrir os limites do possivel é aventurarmo-nos um pouco para além deles em direcção ao impossivel."

Uma das Três Leis de Arthur C. Clarke

senso

Não ltp é um interface praticamente directo com o processador, e os adaptadores usb-lpt só funcionam com algumas impressoras e faxes, cnc precisa do mais perto de acesso em termo real possivel, e esses adaptadores falham miseravelmente ou nem sequer consegues acesso bit a bit a essa porta emulada.

Coisa por coisa, pc dedicado e linux emc2, é que 1mm/s, credo é muito lento mesmo, dai eu dizer que por menos de 500-600€ não se faz nada de muito util..
Avr fanboy

c3dr1c

#308
Pois faz sentido nao ficar nada de jeito.

Agora tive uma ideia para no labveiw eliminar os tres ciclos while (um para cada motor) e meter so um ciclo para os três motores.

Vou experimentar ehehe :P


Se calhar vou ter mesmo de montar o pc ou entao meto a cnc a fresar uns dias :P

Tenho de fazer um teste para ver quanto tempo demora fresar uma pcb.


EDIT: Afinal a ideia nao funciona  ;D

A unica solução seria enviar para o arduino o numero de passos e a direcção de rotação e quando o arduino termine o movimento dos motores, envie para o labview essa informação.

Se calhar está na hora de dar este passo :P
"O único modo de descobrir os limites do possivel é aventurarmo-nos um pouco para além deles em direcção ao impossivel."

Uma das Três Leis de Arthur C. Clarke

dropes

#309
Já estou na 2ª placa LPT PCI, não são caras e é possível o endereçamento directo, se entretanto queimar sai mais barato que uma motherboard.
Em XP é possível o acesso à porta através de um DLL a uma velocidade aceitável (1..2MHz), agora programar pelo Labview e enviar para um arduino em série é um teste para ver qual dos dois é mais lento. Depois ainda falta a interface gráfica e interpretação dos ficheiros, creio que é a melhor parte enquanto se descansa do hardware  :)
Sempre pensei, é lento, pois que seja, pelo menos já não sou eu a fazer.

@Senso, não é por ser bom ou mau o resultado final que se constroem estas coisas, é mais pelo entusiasmo e curiosidade de fazer e por mais trabalho que dê sempre se fica com uma máquina feita por nós.
És moderador, devias incentivar mais este tipo de projectos  ;D

senso

É só porque eu vejo uma grande utilidade prática num cnc, mas custa-me ás vezes olhar por exemplo olhar para este trabalho todo do Cedric e dizer-lhe que devia mandar com o interface LabView e Arduino todo para o cantinho do disco, porque nunca vai ter nada tão funcional como uma versão "estudante" do Mach3 ou do Linux EMC..
Avr fanboy

c3dr1c

#311
Tanto um como o outro têm razão.

Este projecto deu-me muito trabalho (e ainda nao está totalmente acabado), mas tambem me deu muitos conhecimentos em Labview e electronica. E ainda me deu um 19 a projecto de curso :P

So de pensar como estava a nivel de conhecimentos quando criei este topico e como estou agora, valeu a pena a 200% ;D


Mas na verdade isto agora a nivel funcional é um bocado lixo, pois é como o senso diz, uma cnc tem tantas possibilidades praticas que nao vale a pena criar um software... Claro que vale para aprender, mas fora isso... Ainda por cima o labview nao é o caminho certo, começar tudo de novo numa nova linguagem, ui... Para isso, começo um num novo projecto. Alem disso como quero enriquecer o meu curriculum com projectos, mais vale partir para outro.

Mas a experiencia so foi positiva ate agora :D


Bem agora é acabar a CNC e acabar de limar arestas no Labview. Apesar de ficar uma CNC lenta, vai dar para me divertir muito. Alem disso, talvez vá dar uma palestra sobre o que fiz :P

Depois parto para o Mach 3 ou algo parecido. Assim ja vou poder fazer as minhas peças pos meus projectos futuros, mais descansado.


Ja tenho o aluminio todo que precisava pa cnc e praticamente a estrutura toda montada. Falta a porcaria das braçadeiras e montar fusos. Ta quase, ja teve bem mais longe.

A ideia do arduino tambem nao presta :P Depois como posso receber em tempo real a posição actual, o clock de cada motor, ect? Nah...

Abraços pessoal


EDIT: La estou eu a editar posts :P

Mas agora tive uma ideia ;D

Existiria uma maneira interessante de aumentar a velocidade. Metia outro detector em serie e sempre que mandasse o motor dar um passo, ele daria dois. O labview indicaria quando esse detector deveria ser ligado, neste caso seria quando a distancia a percorrer fosse maior que 0.02mm (ele faz 0.01mm por casa passo em full step).

Ou seja, imaginado que o eixo dos X está na coordenada 0 e quero que vá para a coordenada 2.3, eu ligaria o detector ate à distancia 2.2 e depois desligaria para dar um so um passo e chegar aos 2.3

Talvez funcionasse bem, mas nao vou fazer, vai dar muito trabalho... (pelo menos por enquanto)

"O único modo de descobrir os limites do possivel é aventurarmo-nos um pouco para além deles em direcção ao impossivel."

Uma das Três Leis de Arthur C. Clarke

dropes

Essa tua ideia só vai dar problemas, é provável que chegue a uma posição XYZ e fique perdido.
Quando se demora muito tempo a fazer um projecto, acaba-se a pensar nos melhoramentos e que devia ter sido feito de outra forma, entretanto já não há paxorra para se fazer uma nova versão.
Acho o Labview bonito e instrutivo, mas nunca o usaria como plataforma.
Conheço o KCam 4 para CNCs em porta paralela, mas se queres fazer o software apropriado à tua versão, podias ter escolhido outra linguagem; gosto particularmente de VB, é muito intuitivo, fácil de se trabalhar e graficamente acessível, não vejo inconvenientes nele até porque a velocidade de processamento do código é rápida, por vezes o PC põe-se a ler o disco e sinto alguma alteração no movimento do motor mas se aumentar a prioridade do programa, já funciona.

c3dr1c

Tu fizeste o teu software em VB nao foi? De VB nao sei nada... Usas porta USB?

VB se calhar seria interessante para fazer a comunicação de um robot, com uma interface grafica num projecto futuro.

Ainda tenho de aprender a programar AVR para os meus proximos projectos.  O senso ate fez um optimo tutorial...

Labview é muito instrutivo. De certo modo penso que me deu boas bases para aprender a construir algoritmos.





"O único modo de descobrir os limites do possivel é aventurarmo-nos um pouco para além deles em direcção ao impossivel."

Uma das Três Leis de Arthur C. Clarke

dropes

Sim, completamente em VB mas usando a porta paralela e endereçamento directo.

Ando neste momento a fazer alterações de software e hardware, coloquei 4 sensores para as limitações XY, um stepper tem uma força brutal resultando em estragos na união com o varão roscado e o suporte do drill.



Coloquei coordenadas para me orientar melhor, tempo estimado, um circulo que vai acompanhando a posição real do drill entre outras mariquices, neste momento reconhece dois formatos, dxf e eagle, são de fácil interpretação.
VB é básico mesmo, qualquer dúvida vou a este site: http://www.vb6.us/tutorials/reading-and-writing-binary-files-visual-basic também existe um da microsoft (MSDN) mas aquilo é uma confusão que não me entendo.
O tutorial do Senso está muito bem feito, C não é bem comigo e prefiro Bascom AVR ou mesmo AVR (assembly), são pancadas  ::)

ps: o fórum reduz as imagens para 640 e há coisas que não se conseguem ler...