collapse

* Links de Robótica

* Posts Recentes

TV Avariou - Sanyo por almamater
[Hoje às 13:54]


Qual a melhor técnica? por Tech_JA
[Hoje às 12:52]


Ligar telefone fixo a arduino por helderjsd
[Hoje às 11:07]


Procuro cristal de 30.875 Mhz? por Hugu
[Ontem às 17:20]


Encomenda Colectiva N2-2016[@Mouser - Aberta a pedidos!] por Hugu
[Ontem às 16:42]


Ontem pequei... por Hugu
[Ontem às 16:19]


Mosfet trocado? por almamater
[Ontem às 12:42]


Motherboard por SerraCabo
[24 de Setembro de 2016, 10:04]


Ficha desconhecida por SerraCabo
[22 de Setembro de 2016, 22:28]


Livros Elektor por beirao
[20 de Setembro de 2016, 22:04]

Autor Tópico: leitura de sinal ppm com arduino  (Lida 2084 vezes)

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

Offline RAD

  • Mini Robot
  • *
  • Mensagens: 3
leitura de sinal ppm com arduino
« em: 09 de Maio de 2014, 15:32 »
Olá galera.....
Tenho a necessidade de fazer a leitura da saída de um canal de radio TURNIGY 9X pelo arduino e reproduzir na saída do arduino o mesmo sinal que entrou. O propósito disso é usar em um robô com duas rodas independentes, cada uma com seu motor e controlador, visto que dessa maneira o robô quando recebe comando de ir em linha reta se desvia por conta de alguma diferença entre as rotações das duas rodas. O que eu pretendo fazer é ler o sinal do receptor com o arduino e depois gerar sinal de comando para os motores com o arduino, mas fazendo isso eu fico com a possibilidade de inserir um sensor acelerômetro entre o sinal do radio o a saída do arduino para corrigir a o desvio de direção indesejado que houver no percurso.
Primeiramente eu não sou Expert com arduino, por isso estou aqui, mas andei pesquisando a respeito e sei que se eu usar interrupções externas posso ler o sinal do receptor, acionar uma interrupção, habilitar um timer, contar o tempo decorrido do pulso de nível alto do PPM e depois coletar esse tempo para usa-lo na referencia de saída para os motores. O problema é que não sei como fazer para habilitar um timer no momento que eu quero e desabilita-lo quando quiser e também pegar esse tempo e usa-lo.
Eu também terei dificuldades para criar a logica para fazer a inserção do acelerômetro para que funcione bem o que eu pretendo.
Obs: Os canais 1 e 2 responsáveis pela locomoção das duas rodas são mixados, desta maneira quando movimento o stick profundor o robô movimenta as duas rodas para levar o robô para frente.
Caso alguém tenha sugestões ou algum projeto similar ficarei muito grato.

Desde já agradeço pela ajuda!

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.689
Re: LEITURA DE SINAL PPM COM ARDUINO
« Responder #1 em: 09 de Maio de 2014, 16:48 »
Olá,
Em relação a projectos, todos estes projectos fazem isso :)

Tenho ideia de que os timers do avr têm um modo para fazer esse leitura sem dar tanto trabalho mas posso estar a confundir com outro, procurar no datasheet do atmega328

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 8.942
  • Helpdesk do sitio
Re: LEITURA DE SINAL PPM COM ARDUINO
« Responder #2 em: 09 de Maio de 2014, 18:51 »
Usando o arduino e só para um canal ou dois, é simplesmente usar o pulseIn().
Se não usa-se uma base de tempo, tipo milis(mais mais rápida) e conta-se o tempo entre a transição ascendente e descendente do sinal.

Só vais conseguir meter os motores a rodar precisamente á mesma velocidade implementado um encoder em cada motor, se não, um deles roda sempre no sentido contrário ao outro e nunca tem a mesma rotação para a mesma voltagem/corrente.
Avr fanboy

Offline RAD

  • Mini Robot
  • *
  • Mensagens: 3
Re: LEITURA DE SINAL PPM COM ARDUINO
« Responder #3 em: 09 de Maio de 2014, 19:29 »
Esqueci de mencionar galera... não posso tem tipo de sensor que seja frágil, pois o robô vai participar de competições violentas e um sensor frágil não aguentaria. Quanto ao pulseIn, eu preciso ler dois canais é imprescindível, pois preciso controlar os dois motores de forma independente, dai a necessidade de usar a interrupção, mas eu gostaria de saber como eu posso acionar o timer na borda de subida do sinal PPM, parar a contagem na borda de descida e coletar o tempo que passou entre o evento.

Agradeço pelas postagens, vamos se falando que chegaremos a uma solução.

Offline metRo_

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 3.689
Re: LEITURA DE SINAL PPM COM ARDUINO
« Responder #4 em: 09 de Maio de 2014, 19:33 »
Esqueci de mencionar galera... não posso tem tipo de sensor que seja frágil, pois o robô vai participar de competições violentas e um sensor frágil não aguentaria. Quanto ao pulseIn, eu preciso ler dois canais é imprescindível, pois preciso controlar os dois motores de forma independente, dai a necessidade de usar a interrupção, mas eu gostaria de saber como eu posso acionar o timer na borda de subida do sinal PPM, parar a contagem na borda de descida e coletar o tempo que passou entre o evento.

Agradeço pelas postagens, vamos se falando que chegaremos a uma solução.

Acho que para começar devias dividir os dois problemas. Vai ver o que faz a função pulsein()

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 8.942
  • Helpdesk do sitio
Re: LEITURA DE SINAL PPM COM ARDUINO
« Responder #5 em: 09 de Maio de 2014, 19:59 »
E um encoder não é fragil, se bem que idealmente devias usar motores já com encoders.
Avr fanboy

Offline RAD

  • Mini Robot
  • *
  • Mensagens: 3
Re: leitura de sinal ppm com arduino
« Responder #6 em: 10 de Maio de 2014, 00:00 »
Só pra terem uma noção do que ele irá ter que enfrentar da  uma olhada nisso.
https://www.youtube.com/watch?v=mpVK7GA6Ywk

E ainda pode haver lutas mais violentas, não sei se um encoder suportaria tal impacto.

nosso amigo metRo sugeriu utilizar a função PulseIn, não sei se consigo ler dois canais com o PulseIn, vou dar uma olhada, mas ja andei lendo em outros posts que o melhor mesmo é o  interrupt.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 8.942
  • Helpdesk do sitio
Re: leitura de sinal ppm com arduino
« Responder #7 em: 10 de Maio de 2014, 12:45 »
Os robots de desminagem usam encoders, volta e meia rebenta uma mina, e os encoders ficam vivos..
Já estou a falar em motores com encoders precisamente por ser mais robusto que um encoder na roda..
Avr fanboy