Pessoal,
Tags:
Faz uma fifo, armazene os últimos n valores recebidos e faz a media dos mesmos, depois é só jogar no servo, que vai ficar suave e quase sem vibração. Só que dependo da tamanho do filtro, vai ter atraso considerável no movimento. Se tiver vibração na posição de repouso,deixa um região morta próxima do zero.
É exatamente o problema que estou tendo depois de dicas anteriores. Consigo remover a vibração porém há um atraso no movimento...considerável
Leandro, ficou muito bom, poderia disponibilizar os códigos do arduino quando e da interface no pc? Obriagdo
Olá Hugo, enviei somente o do arduino bem simplificado para ser de facil entendimento. Mas é o seguinte, a comunicaçao do software do PC para o arduino é atraves de strings na porta serial. Sempre que clico na setinha para um lado ou para o outro ele envia os valores de a000 até a180. Setinha para um lado ele vai acrescentando de 1 em 1 e para o outro decrescenta. Este "A" é para saber que eh o servo1 e os valores são referentes a quantos graus ele vai girar, de acorda com a biblioteca servo.h. Na setinha para baixo e para cima é a mesma coisa porém com a letra "B" na frente.
Vlew, brother!
Abraço!
Galera, não resolvi o problema do ruído.
Até tentei seguir as dicas dos colegas aqui mas não resolveu.
Mudei então a estratégia.
Percebi que o ideal não é movimentar os servos de acordo com o stick do controle, pois dessa forma eu sempre precisaria estar segurando na posição que eu quero; não "descansaria" meu dedo. O ideal seria ler a posição atual e incrementar a esta graus de acordo com os movimentos do stick e ao soltá-lo (o stick volta à posição de repouso) os servos não ficariam em 90º e sim na posição atual aguardando incrementos à sua posição novamente. Dessa forma consegui resolver o ruído.
Talvez não tenha ficado claro mas verão o que quis dizer no vídeo abaixo.
O esquema que usei foi esse:
Eu utilizei LM 35 pois não sei ainda usar o fritzing e não consegui representar os pinos do receptor RC :)
Cada fileira é um canal. A última é de alimentação. De cima para baixo: PPM, VCC, GND.
Código em anexo.
Vou continuar tentando fazer movimentar de acordo com o stick sem apresentar ruído. Se alguém conseguir compartilha aí. Por enquanto essa solução resolve.
Obrigado a todos!
o vídeo não apareceu. estranho
E aí Jean, blza?!
Conseguiu resolver?
Eu fiz algo parecido, utilizando um TX Futaba convertido para 2,4Ghz com módulo RX Corona. Lí os pulsos do RX com arduíno e repetia para os servos... Utilizei a funcao map()... que é muito tranquilo...
Olha o link do funcionamento:
Ahhh..
No meu caso é assim:
ch5=valores rx // Isso vc ja fez
ch6=valores rx // Isso vc ja fez
Tilt = map(ch5, 1000, 2000, 0, 180); // Essa função converte diretamente os valores min e max do RX direto para pos. servo
Pan = map(ch6, 1000, 2000, 180, 0); // Imprimir os valores min e max na serial para colocar uma margem menor que o menor "1000" e maior que o maior "2000" para o uC nao se perder, se for necessário.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por