collapse

* Posts Recentes

O que é isto ? por SerraCabo
[12 de Abril de 2024, 14:20]


Amplificador - Rockboard HA 1 In-Ear por almamater
[11 de Abril de 2024, 20:46]


Emulador NES em ESP32 por dropes
[10 de Abril de 2024, 15:30]


Meu novo robô por josecarlos
[29 de Março de 2024, 18:30]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: Projecto Freza CNC - Arduino  (Lida 233428 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline c3dr1c

  • Mini Robot
  • *
  • Mensagens: 854
Re: Projecto Freza CNC - Arduino
« Responder #15 em: 04 de Fevereiro de 2012, 15:22 »
Bem mudança de planos. Afinal vou programar a cnc em Labview, usando o arduino para comunicar com os motores.

Ja consegui fazer um codigo simples em labview para controlar os motores de passo, com numero de passos, velocidade e direcção.

Estive a analisar os motores de passo que tenho, medindo a resistencia das bobines e obti valores semelhantes entre os motores, o que me leva a crer que o maior motor de passo que tenho, talvez nao esteja estragado.

Aqui vai uma foto do motor visto de dentro:


Em anexo encontra-se os dados dos motores que vou usar. Os valores a amarelo sao valores calculados, ou encontrados pela internet.
Vou usar estes tres motores em modo bipolar, visto que tenho mais torque. Como driveres de potencia vou usar o L297 e L298.

Agora estou com um problema estranho. No arduino quando ligo um pin a uma saida digital que nao seja a numero 13, quando executo um programa em linguagem "arduino" como o piscar de um led, o led pisca com uma boa luz. Mas quando faço o mesmo no labview, um programa para o led piscar, o led pisca com uma luz fraca.
Alguem tem ideia do que possa ser?????

Cumprimentos
« Última modificação: 04 de Fevereiro de 2012, 15:26 por c3dr1c »
"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

Offline c3dr1c

  • Mini Robot
  • *
  • Mensagens: 854
Re: Projecto Freza CNC - Arduino
« Responder #16 em: 05 de Fevereiro de 2012, 19:09 »

 :P :P :P :P :P :P :P :P :P :P :P :P :P :P :P :P :P :P

Ja dei mil e umas voltas ao labview e zero, continua o mesmo problema bah
« Última modificação: 05 de Fevereiro de 2012, 21:34 por c3dr1c »
"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

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Projecto Freza CNC - Arduino
« Responder #17 em: 05 de Fevereiro de 2012, 22:29 »
Estás a definir o pino como uma entrada?
Como é que estás a programar no LabView de modo a que ele controle o Arduino?
Avr fanboy

Offline c3dr1c

  • Mini Robot
  • *
  • Mensagens: 854
Re: Projecto Freza CNC - Arduino
« Responder #18 em: 05 de Fevereiro de 2012, 23:16 »
Ha boa boa... Nao estou a definir o pin. Talvez esteja assumir como entrada. Vou ver disso e adicionar esse comando. Muito obrigado.

Edit: Resolvido... Muito obrigado pela ajuda senso, ja tava a partir a cabeça toda com este problema estupido :P

Abraços
« Última modificação: 05 de Fevereiro de 2012, 23:20 por c3dr1c »
"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

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: Projecto Freza CNC - Arduino
« Responder #19 em: 05 de Fevereiro de 2012, 23:30 »
Por defeito os pinos são todos entradas, ao escreveres 1 ou 0 num pino que é entrada, o 1 liga os pull-ups internos e o 0 desliga os mesmos, o que vai fazer o led acender apesar de com brilho reduzido.
Avr fanboy

Offline c3dr1c

  • Mini Robot
  • *
  • Mensagens: 854
Re: Projecto Freza CNC - Arduino
« Responder #20 em: 06 de Fevereiro de 2012, 13:30 »
Obrigado senso, ja percebi.

Bem isto ta orientado. A parte do controlo de motores ta praticamente feita. Agora falta estudar o g-code e fazer um tradutor po labview.

Ha, ainda falta ver os motores a trabalhar. Queria experimentar so com o l298, tenho de ir ver as ligações. Mas mais tarde quero fazer com o l297 tambem.

Cumprimentos
"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

Offline c3dr1c

  • Mini Robot
  • *
  • Mensagens: 854
Re: Projecto Freza CNC - Arduino
« Responder #21 em: 06 de Fevereiro de 2012, 18:22 »
Pessoal alguem que me confirme o seguinte sffv:

Posso usar este esquema para ligar os motores bipolares ao arduino?


Ha quem ligue resistencias nos pinos sens. Sei que sao valores pequenos para nao alterar a corrente que é medida, certo? Tipo 0.5 ohms

Os diodos têm de suportar a corrente maxima dos steppers e têm de ser fast recovery, certo? Um 1N4007 nao vai funcionar pois nao? E para tempos de mudança de passo de 1s, ja funciona?

Outra duvida. Quando leio num stepper 0.8A, quer dizer que sao 0.8A por fase. Portanto se vou usar em modo bipolar quer dizer que a corrente duplica por acionar 2 bobines? Tou baralhado...
Como sei o numero de fases? Serao 2? Têm 8 bobines os motores...

Cumprimentos
« Última modificação: 06 de Fevereiro de 2012, 18:25 por c3dr1c »
"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

Offline c3dr1c

  • Mini Robot
  • *
  • Mensagens: 854
Re: Projecto Freza CNC - Arduino
« Responder #22 em: 07 de Fevereiro de 2012, 21:03 »
Boas pessoal.

A programação da cnc está avançar bem. O G-code afinal nao é nenhum bixo de 7 cabeças e é facil fazer um interpretador. O labview tambem ajuda muito, que é bastante intuitivo :D É bom para ir treinando a formulação de algoritmos, para depois os aplicar em codigo "arduino", quando começar a aprender...

Deixo-vos em anexo, um parte do programa ja elaborado... Nao se assustem, o codigo está em bruto...
Ta mesmo a carga, mas da para quem quiser, tirar ideias para os seus projectos, relacionados com motores de passo. Têm la tambem como adquirir o g-code e o inicio para a sua interpretação.
As sequencias para os motores podem estar incorrectas, mas é so perceberem como funciona que é facil altera-las...



Cumprimentos
« Última modificação: 27 de Março de 2012, 19:32 por c3dr1c »
"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

Offline c3dr1c

  • Mini Robot
  • *
  • Mensagens: 854
Re: Projecto Freza CNC - Arduino
« Responder #23 em: 09 de Fevereiro de 2012, 21:08 »
Boas malta. O projecto continua pa frente. Ja praticamente dava por terminado a intrepretador de g-code, ate me surgir um grande problema que nao sei sair daqui... E eu ja nao sei se é devido ao software e ao seu processamento ou se é algo mal programado da minha parte.

Tipo o g-code manda-me a seguinte linha de codigos:

G01 X13.3543 Y21.3453

Neste momento tenho o carrinho X em 23.5043 e o Y em 23.7849.

O G01 indica-me que é um movimento de frezagem. O X e Y indicam-me as cordenadas do vector. Ou seja o carrinho X e o Y, têm de chegar aos pontos indicados no g-code ao mesmo tempo. Para isso calculo o tempo de cada passo, que o carrinho X precisa em relação ao carrinho Y. Utilizo o declive do vector para calcular esse tempo. Entao o carrinho X, precisa de um passo de 18 em 18 ms e o carrinho Y precisa de um passo de 100 em 100ms.

Ate aqui penso que tudo bem. O programa tem funcionando bem com vectores com declive perto de 1. Mas com este vector, que tem uma inclinação acentuada em relação a um vector com delive = 1, que no fundo é os motores a darem passos com intervalo temporal igual, nao funciona.

O que acontece é que apesar de terem a indicação que precisam de aqueles tempos para percorrerem bem o vector, o carrinho Y chega ao seu destino quando o carrinho X ainda está em 19.4856. E quando chega, o carrinho X entao começa a andar a velocidade devida (passos de 18ms). No inicio os tempos nao sao respeitados.

Estou a utilizar dois forloops ao mesmo tempo, para fazerem os passos desejados com a velocidade necessaria. Se criar um novo programa so com dois forloops simples, sem nada la dentro, os tempos ja sao respeitados.

Será que é devido ao processamento? E muito estranho...
Ja ouvi falar que nao devemos utilizar dois whileloops em paralelo no labview. Alguem tem alguma ideia?


Bem mas o problema resolve-se rapidamente se para isso utilizar o L297, em vez de so usar o L298. Com o L297 pelo que percebi, controlo os passos com PWM. Tou certo ou errado?


Ha é verdade, o programa que forneci, tem muita coisa para alterar, para funcionar correctamente :P

Cumprimentos
"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

Offline c3dr1c

  • Mini Robot
  • *
  • Mensagens: 854
Re: Projecto Freza CNC - Arduino
« Responder #24 em: 10 de Fevereiro de 2012, 01:15 »
Ok acho que ja percebi do que se trata. Criei um programa mais simples para tentar entender o erro e descobri que se retirar a toda a parte de programação do arduino, para comandar as bobines dos steppers, o progroma corre correctamente. Bem como se utilizar um tempo minimo entre cada passo de 100ms. Com 10ms nao funciona.

Isto provavelmente é devido ao tempo que o circuito arduino demora a transmitir dados e a processar, etc...
Penso que agora é tentar optimizar esta parte de programação do arduino. Estou a utilizar recursos amais como podem ver no anexo, mas ainda tenho de estudar como isso funciona.

Cumprimentos.
"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

Offline c3dr1c

  • Mini Robot
  • *
  • Mensagens: 854
Re: Projecto Freza CNC - Arduino
« Responder #25 em: 10 de Fevereiro de 2012, 01:37 »
Tempos de propagação. Se utilizar um tempo minimo de 50ms entre cada passo funciona correctamente. Tenho optimizar a programação do arduino, no labview para tentar reduzir este tempo.

Bem acho que tou no caminho certo. Falta programar circulos, e outra figuras lineares.
Mas continuo na duvida se com o L297 se utilizo pwm para comandar os passos. Se sim, ha muito codigo aqui dispensado e o comando dos motores de passo torna-se basico.

Cumprimentos
"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

Offline c3dr1c

  • Mini Robot
  • *
  • Mensagens: 854
Re: Projecto Freza CNC - Arduino
« Responder #26 em: 14 de Fevereiro de 2012, 22:22 »
Boas pessoal, tudo bem?

Bem boas noticias. Consegui comprar aluminio a 5€ e tal o Kg. Acho que ta um bom preço   :D

Agora deparo-me com um inconveniente no Labview. Para controlar os passos do motor, tenho de definir um tempo minimo entre cada passo. Ora esse tempo minimo no labview é utilizado em [ms], o que me causa algum erro ao traçar vectores lineares. Assim os vectores não têm uma inclinação tao precisa.

Bem, se tiver fusos com passo de 2mm, fico com uma incerteza +/-0.01

Pelo que pesquisei na internet para usar [us] tenho de recorrer ao clock do processador do computador e mesmo assim depende do windows que estarei a usar (neste caso windows 7). Alguem tem alguma ideia?


E quanto ao Eagle, pelo que analisei do g-code que o software fornece, os comandos para frezar as trilhas sao todos vectores lineares. Nao encontro nenhum comando para fazer uma circunferencia por exemplo. Fica mais simples o tradutor g-code, mas provavelmente preciso depois para frezar um bloco de madeira com uma cara por exemplo. Ou existe software 3D que fornece o g-code como vectores?

Abraços pessoal

Edit:
Ah, um topico fantasma  :-X  ;D Espero que os 7 posts seguidos nao sejam problema para o forum. Bem e espero o que o topico seja util  :P
« Última modificação: 14 de Fevereiro de 2012, 22:29 por c3dr1c »
"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

Offline PDI

  • Mini Robot
  • *
  • Mensagens: 677
Re: Projecto Freza CNC - Arduino
« Responder #27 em: 15 de Fevereiro de 2012, 00:26 »
Com 1066 visualizações não é um tópico fantasma, a malta vem acompanhando mas não diz nada para não te atrapalhar o raciocínio, continua que vais no bom caminho.
Alfredo Garcia

Offline Tech_JA

  • Mini Robot
  • *
  • Mensagens: 577
Re: Projecto Freza CNC - Arduino
« Responder #28 em: 15 de Fevereiro de 2012, 08:03 »
c3dr1c,
Embora nao comente, estou a seguir atentamente os teus posts: Continua.

Offline c3dr1c

  • Mini Robot
  • *
  • Mensagens: 854
Re: Projecto Freza CNC - Arduino
« Responder #29 em: 19 de Fevereiro de 2012, 19:27 »
Ah assim fico mais contente ehehe  :P

Bem ja avancei bastante na cnc. Programei a cnc para fazer furos, quando indicado pelo g-code. Ja imendei alguns erros e ta no bom caminho.

Ainda tenho de pensar no metodo matematico para me arredondar os valores às milesimas de unidades, mas com o valor das milesimas igual a 0 ou 5. Tipo 12.430, 12.435, 12.440, 12.445, 12.450, etc

Em anexo encontra-se o programa, sem a programação para enviar para o arduino: So tem os leds a piscar que correspondem ao accionamento das entradas do L298. Assim podem experimentar sem terem arduino. Tambem têm la um txt que o labview lê. É um exemplo do g-code, para testarem.

Mas ainda tem erros, para corrigir e indicadores para serem acrescentados, como um grafico 3D, etc...



Abraços.

« Última modificação: 27 de Março de 2012, 19:32 por c3dr1c »
"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