obs : Este código é espefíco para as pontes H para robopower (Pontes Simpl H), que tem um aforma de programar, diferente de outras pontes, se for usar outras, deverá reprogramar de acordo com o funcionamento das pontes.
adrianovrm wrote:Parabéns alexandre, sei com estás se sentindo, desculpe a demora, o trabalho me deixa pouco tempo.. Imagino que os seu problema era , ou a falta do plugin do x-sim na pasta do rfactor ou problemas na progamação da leitura da serial, que sempre dá algum trabalho. Segue o código atual que usei em meu ultimo video , ja com os motores de 24volts da bosch fm wm0. Retire do código a biblioteca virtualwire e lcd, pois vc não deve ter estes instrumentos instalados em tua maquina. Posto também uma foto do meu uso. eu estou usando os efeito 25 e 27 (Aceleração longitudinal e lateral) com resolução binária de 16 bits para cada efeito, siginficando que recebo pacotes de informação do x-sim formatados da seguinte forma: O caracter "X" iniciando e seguido por 4 bytes, 2 para o efeito 27 e dois para o efeito 25, segue-se uma pequena conta para montar o valore correto dentro do arduino e o resto é o algoritmo que se segue. Parecido com o do sirnoname pois a lógica é semelhante, mas escrito do zero por mim, demorou dois meses para botar pra funcionar por que meu tempo de trabalho no x-SIm é bem limitado e quase sempre estou cansado quando trbalaho nele, paciëncia, cada um com seu abacaxi. Espero que minhas informações ajude e boa sorte quando meter a cara o simulador de tamanho real... estamos aqui, só demoramos um pouco para responder devido as obrigasçõs da vida moderna
A propósito qquia efeitos estás a usar ? Não estranhe os pinos 32 e 41, estou usando um arduino mega, ele tem bem mais pinos de I/O.
Ooops, já ia me esquecendo, para este código funcionar legal , tem que inverter a saída dos efeitos da tela de math, posto minhas telas de math , para ajudar
Olá Adriano,
Apanhei para entender a USO (Universal Serial Output), e tive vários erros de comport error. Depois de muito fuçar, descobri que o erro estava porque tinha várias entradas ocultas em Select Comport to Edit... Removi todas elas, e desde então o arduino está sempre funcionando de primeira.
A versão com servos funcionou de sexta p/ sábado no X-Sim, sem nenhum erro, inicializando fácil, só alegria
Os efeitos que usei neste vídeo foram lateral e longitudinal: Threshold (collision) + Output 1:1 (G-Force), ainda estou estudando os outros efeitos, outro bem interessante é o efeito de troca de marcha.
Muito obrigado pela ajuda, print screen das telas do x-sim e código do programa. Com certeza vai ser de grande ajuda para mim e toda comunidade.
Aproveitando a ajuda do amigo.
Não manjo nada de programação com arduino (ainda), meu conhecimento em eletrônica é muito escasso, mas, minha vontade de fazer a coisa funcionar é muito grande.
Na sessão X-sim >> Manual >> Eletrônica: Tem um esquema de acionamento dos motores por rele. É uma solução simples, com menor velocidade de resposta nos efeitos, mas acredito que ainda sim, fique muito bom para o primeiro contato com esta tecnologia. No youtube existe vários exemplos de ponte h utilizando reles.
Seria possível acionar seu programa para arduino através de reles?
Aqui no brasil encontramos barato, reles 12V 30A em qualquer auto peça local.
1. simplest DC electric motor relay solution This type of motor use a positive voltage and a negative voltage. If they are inverted at the motor input terminals the drive will reverse its direction. This is a relay standard solution which will simple switch with the maximum power of the motor. There is no speed or acceleration control.
Red and black cables shows you the minus voltage or ground voltage (GND). The green cable is a optional brake cable which shorten the motor pins and produce a reverse magnetically field inside the motor which will work against the drill movement. The blue cables shows the outgoing motor cables which must can be loaded with the different polarization. The following closer sight will show you the correct wiring solution.
The left two relays will connect and disconnect the incoming power to the right two polarization relays. If you enable both right relays the two right relays should be placed correct else the power will be shorten. One of the right relays has to be enabled. The middle clip is the middle relay clip as shown right.
Alexandre, não precisa saber muito de eletrônica não, mas algum conhecimento básico vc vai ter de adquirir. Ex: entender a lei da físicca elétrica, lei de ohm e alguma coisa de acionamento de transistores, é um bom começo. Com pontes H de relës é perfeitamente possivel fazer sim, mas o código não é o mesmo porque as pontes H variam a forma de acionar e ai a programação muda apenas da parte que faz o acionamento destes motores.. Vc tem que se decidir primeiro sobre qual ponte H vai trabalhar e comprar de vez, depois vc me diz quais os pinos são o PWM, DIR1(A), DIR2(B) da ponte e ai posso fazer algumas fotos de como vc deve ligar e mando uma programação para vc testar, no começo eu comprei umas H do mercado livre de 12 volts por 25 amperes, boas mas o barulho doe relês é chato na aplicação do simulador e não achei quem fizesse boas H transistorizadas no Brazil e comprei estas da robopower no EUA, que são as melhores que já peguei, mas funcionam de forma um pouco diferente na programacão. As pontes H com relés trabalham +- assim. o PWM dá a verlocidade do motor, funciona como uma torneira, a medida que vc aumenta o pwm de pino de saída (PWM) do arduino, mais energia é fornecida aos motores e mais velocidade por consequência. os pinos DIR1(A) e DIR2(B) são pinos que dão o sentido do motor comfome exemplo abaixo:
DIR1 DIR2 Movimento 0 0 Motor Livre 0 1 Motor em Movimento Horário 1 0 Motor em Moviemtno Anti-horário 1 1 Motor Freado, Em algumas pontes H não se pode fazer isto, pois dá curto, consultar o vendedor antes de comprar, óbvio.
Mais um pino importante é o terra lógico da ponte H , que deve ser unido ao terra do microcongrolador, Arduino, para que esse tenha uma referência de voltagem para com a ponte H, microcontrolador e ponte H deve, falar a mesma língua, sacou ??
O Interessante é comprar uma ponte H por Motor, tem pontes H para dois motores, mas é pedir para perder grama, não aguentam para nossa aplicação, São para robótica e não para pendurar marmanjos.
1 lógico para o arduino , significa 5volts que portas de saída 0 lógico para o arduino é o próprio Ground(terra) do microcontrolador.
O arduino que vc está usando tem 6 portas de (PWM), vc as identifica pois o arduino , tem pintado perto do número da porta, uma palavra(PWM) ou um sinal (˜). Acho que são as portas, 3,4 7,8 12,13 , verifique olhando a placa do arduino, não tenho bem de cabeça.
o comando para variar a potência aplicada aos motores é algo assim : analogWrite(pino, valor); sendo o valor variando de : 0 à 255. zero para ausência de potênca aplicada e 255 parta full throtle ! a porta deve ser configurada para porta de saída na seessão de setup do arduino. pinMode(pino, OUTPUT);
o comando para setar nível lógico nas saídas do arduino é algo como : digitalWrite(pino, HIGH); e para nível ground digitalWrite(pino,LOW); .
Outro assunto: Não sei se vc reparou mas vc vai ter que comprar potenciometros e ligar , de alguma forma ao exiso do motor, tem que bolr usinae peças, para isto fale com o Zeca que é fera nisto e resolveu minha parte mecânica.
após a ligação do potencimetro ao eixo do motor, este identifica o nível ,ângulo de rotação em que o eixo está. pesquise na internet como loigar um potenciometro ao arduino, ligacão eletrica, pois a mecânica é no eixo do motor.
a instrução para ler o valor de um potenciometro é analogrRead(pino); retorna valores de 0 a 1023 para o curso completo de um potenciometro rotacional comum que é , em média de 300 graus, perfeitamente usável em nossa aplicação. vc não vai querer dar loops, então vai servir. O seu arduino tem 6 portas especificaas para leitura de valores , sensores analógicos, neste caso o poenciomegro é o sensor de posição do motor,
Cuidado com motores de limpa vidros que se comprar em sucata , eles tem a carcaça em ground e queimam as H , quando se inverte o sentido, quando ao bosch 24 volts , não tem o que se preocupar, eles não vêem de fábrica com carcaça aterrada. funcionam em 12 volts, mas ficxam mais fracos.
Depois de entender melhor o funcionamento do sinal pwm, ponte H e aterramento com o arduino, vou acabar comprando uma ponte H de vez, ao invés de ficar querendo re-inventar a roda.
Em relação aos motores, vou usar os bosh F006 WM0 310 24v mesmo. Este motor tem um fenda no eixo, já bolei todo o esquema de alavanca das hastes do banco e ligação ao potenciômetro.
Pretendo utilizar pedal do cambio de moto para abraçar o eixo, e fazer uma chaveta de aço para travar a alavanca ao eixo. Esta chaveta irá sair para fora do eixo pelo centro, dessa forma fica de fácil fixação ao potenciômetro.
Vou bolar um desenho no sketchup para representar esta ligação, e depois posto aqui. Vou baixar e instalar o programa.
Até o momento, obrigado por tudo. Suas informações está sendo de grande ajuda.
Aqui vai mais receita de bolo : para aquele código que mandei, usando as pontes H da RoboPower , segue a forma de ligação elétrica. Estas pontes H possuem 4 jumpers, para operar em H bridge, os jumpers EA e CA devem estar fechados e os jumpers EAB e CAB devem estar abetos, vc não vai entender est parte dos jumnpers sem possuir as pontes H da robopower, mas tenho que deixar documentado.
Attachments
Ligacoes Eletricas arduino - ponte h -motores.png (353.1 KiB) Viewed 3186 times
Ola pessoal! Meu nome é Gustavo e planejo um 3DOF, talvez até com um quarto eixo de rotação livre como o 401cr!
Porem penso em usar motores de passo, acho mais barato que motores AC+inversor+encoder e mais pratico que construir um servo motor DC, porem não vi muita coisa nos foruns sobre a comunicação do converter com motores de passo, to começando a brincar com o arduino, e acho que vou usar ele mesmo para fazer a comunicação entre o computador e os drivers, queria saber se alguém sabe alguma coisa mais a fundo sobre a combinação Motion Converter - Arduino - Motor de passo
Eu estava pensando em 3 motores de 63Kgf (R$355,00) com caixa de redução 1:10 que achei a um bom valor, alavanca e torre central com mola para aliviar o peso nos motores...