collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[27 de Março de 2024, 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


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


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


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]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


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

Autor Tópico: leitura de sinal ppm com arduino  (Lida 6553 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.753
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: 9.733
  • 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.753
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: 9.733
  • 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.


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: 9.733
  • 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