Ir ao conteúdo

Posts recomendados

Postado

Pessoal estou precisando de ajuda para eliminar vibrações sofridas no acelerômetro, basicamente estou utilizando o código a seguir no compilador CCS.

 

  for (i = 0; i < 128; i++)
  
   {
      set_adc_channel(8);
      read_y=read_y+read_adc();   
      delay_us(8); 
            
      set_adc_channel(9);
      read_x=read_x+read_adc();  
      delay_us(8); 
   }
   
 
   read_x=read_x/128;
   read_y=read_y/128; 
 
 
Postado

@Rogerio Fiorotti,

 

A melhor solução é tirar as vibrações. Em aeromodelismo fazemos isso usando borrachas e espumas entre a placa e o corpo do aeromodelo.

 

O problema é que essas vibrações interferem muito no acelerômetro, causando erros nas medidas.

 

Paulo

Postado

Paulo, já fiz isso mas não é o suficiente.

 

Meu projeto realmente é pra aeromodelos, mais especificamente VCC (voo circular controlado) onde estou utilizando o acelerômetro para controlar a rotação do motor, existe um produto similar ao meu onde na existência da vibração ele reduz o ganho de variação da saída (PWM) que vai para o ESC.

Postado

@Rogerio Fiorotti,

 

Eu tenho um Hexacóptero, foi um inferno ajustar ele, tive de tirar também o magnetômetro e colocar ele acima quase 30 cm, e o acelerômetro só resolveu quando usei espuma bem macia para fixar a controladora. Parece até suspensão de alto-falante de borracha. Ainda assim, tinham vibrações que atrapalhavam, e só resolveu quando balanceei as 6 hélices. Agora vibra um pouco só e funciona muito bem o sistema de controle, inclusive por GPS e sonar para manter estabilizado em altitude baixa.

 

O software controlador é o Multiwii, voce pode baixar os fontes do Arduino e ver os truques que usaram .  Outra boa dica é o Open Pilot, também tem os fontes.

 

Paulo

  • Membro VIP
Postado

Além da mecânica, tem-se as soluções eletronica e 'softwárica'

-eletronica: dependendo do tempo de resposta que queres do teu sistema, podes usar algum simples filtro RC nas entradas AD

-softwárica: dependendo do tempo de resposta necessário, podes medir vários valores e tirar a média deles, de fato como já o fizeste. No entanto creio não ser interessante mudar de canal a cada medida pois isso pode zoar o resultado. Tente:

set_adc_channel(8);for (i = 0; i < 64; i++)   {      read_y=read_y+read_adc();         delay(xxx);   } delay_us(100); //pode aumentar 1 pouco        set_adc_channel(9);for (i = 0; i < 64; i++)   {      read_y=read_y+read_adc();         delay(xxx);   }    read_x=read_x/64;   read_y=read_y/64;
Postado

Pois é, o próprio acelerômetro tem opção de ajuste do tempo de resposta alterando o filtro rc dele, estava em mente algo como filtro passa baixa, porém os exemplos que tenho encontrado até mesmo no forum da CCS não funcionaram.

Postado

Talvez apenas um circuito passa-baixas de primeira ordem (RC) não baste.

Você teria que:

 

Esta opção só funciona para sinais analógicos. Se o sinal que o acelerômetro entrega ao uC for digital, então tem que usar Transformada Z. Aí o buraco é mais embaixo.

 

1 - Determinar qual é a máxima frequência que o seu sistema deve funcionar. Considerando-se que o acelerômetro seja para controlar uma aeronave, existe, devido a inércia do aparelho aéreo, uma máxima frequência que o aparelho responde. Além desta frequência o aparelho não possui condições de alterar, à tempo, sua posição com controle. Chame esta frequência de Fsistema.

2 - Medir a frequência mínima de vibração gerada no acelerômetro. Chame esta frequência de Fvibração. Esta frequência tem que ser superior à Fsistema, para poder aplicar este método.

3 - Meça a amplitude dos dois sinais e a distribuição deles ao longo do tempo. Converta estes sinais para o domínio das frequências. É a transformada de Fourier. Na realidade seria a Integral de Fourier, já que os sinais não são periódicos. Com isso você terá duas tabelas em que uma das colunas é a frequência e a outra é a amplitude dos dois sinais.

4 - Com estas tabelas você faz um gráfico com duas curvas. Uma do sinal e a outra da vibração.

5 - Faça uma terceira tabela com a relação das amplitudes das frequências Fsistema / Fvibração.

6 - Considere que a relação mínima desejada das amplitudes entre Fsistema  e Fvibração seja de (digamos) 100 vezes (Fsistema / Fvibração > 100).

7 - Crie uma nova curva de quanto é necessário atenuar a amplitude de Fvibração para que a relação fique em 100 vezes. Esta nova curva é a função do seu filtro entre o acelerômetro e seu sistema. A quantidade de atenuação vai influenciar diretamente na ordem (grau) do filtro, se de primeira ordem ou mais.

8 - Projetando este filtro, pode-se reduzir o problema da interferência da vibração no sinal útil.

Em tempo:

Eu não saberia fazer isso tudo sem investir muito tempo de estudos. Ufa!!! :P

Sendo assim, já deve haver muita informação na NET sobre este assunto. São atalhos entre o seu problema e a solução. Pesquise.

 

MOR_AL

  • Curtir 2
Postado

Talvez apenas um circuito passa-baixas de primeira ordem (RC) não baste.

Você teria que:

 

Esta opção só funciona para sinais analógicos. Se o sinal que o acelerômetro entrega ao uC for digital, então tem que usar Transformada Z. Aí o buraco é mais embaixo.

 

1 - Determinar qual é a máxima frequência que o seu sistema deve funcionar. Considerando-se que o acelerômetro seja para controlar uma aeronave, existe, devido a inércia do aparelho aéreo, uma máxima frequência que o aparelho responde. Além desta frequência o aparelho não possui condições de alterar, à tempo, sua posição com controle. Chame esta frequência de Fsistema.

2 - Medir a frequência mínima de vibração gerada no acelerômetro. Chame esta frequência de Fvibração. Esta frequência tem que ser superior à Fsistema, para poder aplicar este método.

3 - Meça a amplitude dos dois sinais e a distribuição deles ao longo do tempo. Converta estes sinais para o domínio das frequências. É a transformada de Fourier. Na realidade seria a Integral de Fourier, já que os sinais não são periódicos. Com isso você terá duas tabelas em que uma das colunas é a frequência e a outra é a amplitude dos dois sinais.

4 - Com estas tabelas você faz um gráfico com duas curvas. Uma do sinal e a outra da vibração.

5 - Faça uma terceira tabela com a relação das amplitudes das frequências Fsistema / Fvibração.

6 - Considere que a relação mínima desejada das amplitudes entre Fsistema  e Fvibração seja de (digamos) 100 vezes (Fsistema / Fvibração > 100).

7 - Crie uma nova curva de quanto é necessário atenuar a amplitude de Fvibração para que a relação fique em 100 vezes. Esta nova curva é a função do seu filtro entre o acelerômetro e seu sistema. A quantidade de atenuação vai influenciar diretamente na ordem (grau) do filtro, se de primeira ordem ou mais.

8 - Projetando este filtro, pode-se reduzir o problema da interferência da vibração no sinal útil.

Em tempo:

Eu não saberia fazer isso tudo sem investir muito tempo de estudos. Ufa!!! :P

Sendo assim, já deve haver muita informação na NET sobre este assunto. São atalhos entre o seu problema e a solução. Pesquise.

 

MOR_AL

Muito bem, muito obrigado veremos como sairei na prática, tenho só um detalhe muito importante que é o uC, pequeno  mas creio que consiga..é o 12F1840.

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!