Fala Adriano, são motores trifásicos, os servo motores são bem caros mas também existes linhas que acabam sendo mais em conta do que os scn5 ou 6, vamos la esta parte da configuração eu já sabia a parte que não entendi e a X~~a01~~a02 e assim vai, mais tudo bem isto esta mais claro agora, estou usando um mega2650, não manjo nada de programação pic, estava usando o xpid mais não vai funcionar, então o que precisamos e o seguinte:
o x-sim precisa encontraras portas que podemos criar no aduino.
o arduino precisa receber esta informação e tranforma em pulso e dir, ele também precisa ter um pino para o enable que no caso dos meu driver ativam em low. então no caso de 6 eixos seriam 13 pinos sendo 1 para enable, 6 para pulso e 6 para dir. e um controle em tempo real de motores de passo simples.
este seria o sistema mais simples onde qualquer pessoa poderia comprar peças facilmente e colocar os simuladores para rodar
neste ponto já estaremos com os motores se comunicando com o x-sim.
agora para localização da posição dos motores podemos trabalhar de duas formas:
1. para motores de passo e servos motores industriais podemos criar um sistema simples também de contagem de passos, isso determinaria o quanto o motores pode virar para um lado e para outro. determinando o curso máximo dos atuadores e ele levando para o centro. isso pode ser feito com um sistema de fim de curso onde os atuadores seguem em determinada velocidade ate que eles encontre um sensor de curso(micro chaves, indutivos, etc).
nos sistemas CNC o valor para o curso do eixo e pre determinado, quando ele encontra a chave ele seta automaticamente como 0, então a partir dai ele sabe que pode andar 500mm por exemplo, determinando que 500mm seja uma certa quantidade de pulsos.
Este sistema eliminaria o potenciômetro de feedback por que na verdade ele sabe em qual pulso esta. Mas este sistema tem uma falha no caso de motores de passo, se por o caso do motor de passo não tiver força suficiente para movimentar o peso a uma perca de passo mecânica sem informação para o software isso causa o deslocamento do ponto 0 em relação ao motor, exemplo o software acha que o motor esta no passo 1200 quando ele realmente esta a 800, o que muda o posicionamento do curso mecânico. esta falha pode ser resolvida com o mesmo sistema de feedback usado normalmente, o problema com o sistema de potenciômetro e que no caso de atuadores lineares eu não sei como poderíamos resolver por que o motor tem que dar 3 voltas completas para que ele alcance 96mm de curso( usando fusos de esfera passo 32, ele anda 32mm a cada revolução). No caso de servos motores AC industriais eles possuem um encoder integrado o que avisa mecanicamente o driver de controle qual o posicionamento mecânico do motor obrigando o motor a voltar para o posicionamento correto.
2. para Servos motores industrias ac. como ele possui encoder integrado geralmente ele tem uma saída de informação do encoder o que poderia voltar para o arduino como sinal do potenciômetro mas teríamos que criar um programa onde ele pudesse contar os pulso sem um limite de giros(praticamente infinitamente).
basicamente seria um controle de motores de passo em realtime direto do x-sim, assim resolveremos muitos problemas criando um sistema muito simples de ser configurado tanto no arduino determinando somente o curso dos atuadores que estaram sendo usados quanto no x-sim. o ideal seria ter um plugin no x-sim onde poderíamos set as informações mecânicas que ficaria mais ou menos assim:
primeira pagina de configuração :
aqui determinaríamos em que pinos e portas estamos ligando os drivers dos motores exemplo :
pin 1 : enable
pin 2 : axis 1 dir
pin 3 : axis 1 step
pin 4 : axis 2 dir
pin 5 : axis 2 step
pin 6 : axis 3 dir
pin 7 : axis 3 step
pin 8 : axis 4 dir
pin 9 : axis 4 step
pin 10 : axis 5 dir
pin 11 : axis 5 step
pin 12 : axis 6 dir
pin 13 : axis 6 step
Etc...
pin 20 : home axis 1
pin 21 : home axis 2
pin 22 : home axis 3
pin 23 : home axis 4
pin 24 : home axis 5
pin 25 : home axis 6
Etc..
Pagina 2 de configuração :
Passos do motor: ( geralmente são 200 passos por revolução em um ângulo de 1.8 graus)
Numero de micro passos do driver : ( o drivers pode ser setado para dividir estes 200 passo do motor em até 52.200 micro passo isso almenta a resolução do motor deixando ele mais preciso mais também mais lento, isso poderia ser usado em casos de motores de passo com redução)
Relação do redutor : 1:1 4:1 etc ( sendo quatro volta do motor para 1 do redutor)
Passos do fusos : ( fusos de esfera variam muitos os passos 5,10,20,25,32 e etc, sendo por exemplo passo 5 ele anda 5mm por revolução, passo 10 ele anda 10mm por revolução e assim vai. Isto também possibilitaria o uso de cremalheiras e fusos trapezoidais que tem um custo muito baixo) assim ele saberia que para andar 100mm ele teria que mandar determinado números de pulsos levando em consideração as informações anteriores.
Tamanho do eixo : ( onde determinaríamos o curso máximo do atuador tanto linear quanto em graus, mais isto também seria que ser especificado previamente )
Posicionamento do sensor de 0 : ( onde informaríamos onde esta o sensor em relação ao 0, exemplo se ele esta na base do atuador então ele esta em 0 se ele esta em cima do atuador ele esta em 500mm por exemplo )
velocidade de Home : ( onde informamos qual a velocidade em que o motor ira procurar o sensor de 0 para que ele não va na velocidade máxima evitando que ele se choque demasiadamente forte com a chave. porque devido a inercia e a curva de aceleração ele também precisa de um determinado tempo para para antes de chegar a velocidade 0 )
Velocidade máxima do motor : ( o que poderia ser contado como Passos Por segundo, milímetros por segundo ou metros por segundo )
Curva de aceleração : ( o motor de passo funciona diferente do motores comuns, o motor comum quanto mais rápido ele girar mais torque ele tem o motor de passo quanto mais rápido ele girar menos força ele tem, então para superamos a inercia temos que elevar sua velocidade gradualmente para que ele não perca passos. Isso com motores mais fortes se torna instantâneo não gerando problemas para nos, e em motores mais fracos pode ser resolvido na relação fuso redutor. isto também seria informado como anteriormente )
este seria basicamente um plug-ins universal para a maiorias de sistemas de automação encontrados no mercado, mas e só um exemplo !
Não faço ideia de como criar isso Rssss.
então partamos do principio de fazer com que o x-sim reconheça as portas do arduino de entrada e saída de informações, e que o arduino mande os sinais em realtime para os driver dos motores em sinais de pulso, dir e enable, e reconheça os encoder como informação de feedback ou controle o numero de pulsos sabendo exatamente qual a cordenada mandar o motor( se o motor não perder passos vai funcionar perfeitamente).
Que dia podemos fazer uma conferencia para clarearmos mais as ideias ? vc acha que pode fazer este tipo de programação no Arduino ?
encontrei muitas informações na net de como controlar os motores de passo e me parece que o plugin e o firware open soucer xpid do Sirnoname funciona bem, então pensei em juntar os dois, também acho que o sistema do Thanos esta bem próximo do que precisamos mas não encontrei o firmeware para ver como e o plugin dele.
vc pode me mandar um e-mail também no
Grupovcalegari@gmail.com ai recebo direto no meu cel e respondo na hora !
fico no aguardo !
até mais
André Felipe Calegari