Eu tenho um acelerômetro ADXL203 de dispositivos analógicos em uma placa de montagem e queria usá-lo para medir a inclinação de alguns equipamentos em uma frequência razoavelmente alta (20-30 Hz). estou ligando-o a um campbells cr3000 logger para fazer a detecção. Alguém tem instruções sobre como interpretar as saídas do sensor. obrigado
accelerometer
inclination
troy jensen
fonte
fonte
Respostas:
Eu tenho várias coisas a dizer aqui, e algumas delas envolvem concordar com pingswept e outras com penjuin.
cr3000
A amostragem cr3000 em 16 bits e 100 Hz será um pouco lenta para você remover facilmente o ruído dos seus dados, mas com uma precisão significativamente maior, será utilizável. Duvido que você possa obter 13 ou 14 bits de precisão sem alguns algoritmos de filtragem muito bons. Os acelerômetros me ensinaram que a vibração é o diabo, fótons detonados.
Capacitor de saída
Você precisa fazer o que a folha de dados diz e a teoria dos sinais indica. Para citar a folha de dados:
Isso significa que você precisa escolher um capacitor para manter sua taxa abaixo de 50Hz. Se você colocá-lo acima disso, poderá obter o alias e o alias torna o ruído da vibração um demônio com o qual você assinou um acordo. Eles afirmam como calcular os níveis de ruído do dispositivo e, a uma largura de banda de 50Hz, um pico de pico a ruído de 0,006 * A gravidade nem será notada se você o tiver em um dispositivo com vibrações.
Interpretando Dados
Provavelmente é nisso que você mais se interessa e é relativamente fácil de fazer. Você precisa marcar um tempo em que o dispositivo está em ponto morto, quando é plano e você o mantém relativamente parado. Aguarde um ou dois segundos nesse momento e, em seguida, você pode tirar a mediana desses dados para determinar a tensão sem G. Em seguida, você pode usar isso como um ponto com o qual você comparou o dispositivo. Agora, a partir deste ponto, posso citar diretamente a folha de dados:
Portanto, você pode simplesmente usar essa aproximação se não quiser inclinar muito, mas precisará usar a geometria se planeja inclinar na direção e em ângulos que não são extremamente pequenos.
Se você estiver indo para um tamanho maior, eles ainda terão as equações definidas como:
Tanto quanto eu posso dizer, seu dispositivo oferece uma mudança de 1V por 1G de aceleração colocada nele. Se você tiver realizado a fase de calibração, poderá fazer medições, subtrair o deslocamento e ter o número de Gs sendo experimentados.
Pare de ler aqui, a menos que você tenha problemas ou queira obter mais informações para melhorar a abordagem.
Eu adicionei um pouco mais decente de falar sobre outras abordagens e métodos para melhorar sua abordagem para sistemas ou sistemas em rápida mudança nos quais você vai programar o dispositivo fazendo as amostras.
Frequência de amostragem
Você precisa fazer uma amostragem significativamente mais rápida do que a velocidade com que o dispositivo altera as direções em que está acelerando, pois é necessário medir a orientação de 20 a 30 vezes por segundo. você precisa ser capaz de medir com rapidez suficiente para filtrar o ruído de vibração e a aceleração devido a outros efeitos, que eu achei bastante grandes ao trabalhar com um acelerômetro.
Acelerômetro de 3 eixos
Segundo, se você tiver um acelerômetro de três eixos, poderá facilmente reconhecer quando um eixo está perdendo parte da aceleração devido à gravidade (ou seja, quando o eixo z tem sua queda de magnitude em 2m / s ^ 2, você sabe que o ganho que você viu no outro eixo é a gravidade). Isso ainda será confuso, mas, em geral, haverá uma adição de aceleração que fornece a velocidade necessária para alterar sua orientação e, em seguida, uma alteração na aceleração devido à mudança de orientação, permitindo que você reconheça a orientação.
Problemas com 2 eixos
Isso será, como disse penjuin, quase impossível com um acelerômetro de 2 eixos e superficial na melhor das hipóteses se você tiver um sistema que possa ter de 20 a 30 orientações diferentes por segundo ou se precisar de uma medida exata de orientação em todas as vezes. Estou certo de que um aluno de mestrado poderia escrever uma tese bastante interessante sobre isso, ou um doutorado poderia escrever uma dissertação sobre como melhorar esse algoritmo.
Ruído de vibração
Para adicionar mais, se você puder colocar seu dispositivo em cima de algo que o manterá estaticamente bloqueado ao movimento do dispositivo, mas reduzirá a vibração, você obterá números muito melhores e não precisará de tanta filtragem de software. Algum preenchimento simples de espuma pode ser colocado entre o acelerômetro e o dispositivo, e se for digital, isso não aumentará o ruído elétrico e ajudará a absorver o ruído da vibração. Isso só deve ser feito se houver problemas com o ruído da vibração.
Acelerômetro digital
Eu sugeriria um acelerômetro digital ao qual você pode usar o SPI para se conectar. Os dados podem ser atingidos com uma taxa muito alta e você pode trabalhar em segundo plano, pois o seu SPI realiza o trabalho constante de carregar o próximo conjunto de valores. Você precisará de um bom microcontrolador se for feito digitalmente. Se você pode me dar melhores detalhes sobre o que você quer fazer, posso dar um feedback melhor. Se você deseja um aviso com base na detecção de inclinação, deve ser muito fácil fazer com todos os analógicos, mas se você deseja medir a posição e o ângulo do equipamento durante a operação, prepare-se para algum trabalho.
Informe-me se há algo que eu possa adicionar para tornar essa resposta mais clara ou aplicável ao que você estava procurando.
fonte
Eu escrevi e reescrevi esta resposta várias vezes com muitas idéias matemáticas loucas, mas sinceramente não acho que isso possa ser feito com precisão. Você pode fazer algumas matemáticas vetoriais, mas e se:
Embora eu tenha certeza de que há alguma solução maluca para fazer esse tipo de coisa, não tenho certeza de que valeria a pena; acelerômetros simplesmente não foram projetados para esta tarefa (pelo menos que eu saiba). Para o que você está tentando alcançar, gostaria de sugerir uma abordagem giroscópico usando qualquer dos estes , todos os quais seria bastante resistente a todos os problemas acima.
fonte
Se eu entender a folha de dados corretamente, a saída para cada eixo variará entre 1,5 V e 3,5 V conforme você inclina o eixo. Quando o dispositivo está vazio (ignorando o erro de alinhamento de pacote de ± 1 grau), as duas saídas devem apresentar 2,5 V.
Se você só precisar medir a inclinação em uma direção, poderá tirar o arco de desvio de 2,5 V para obter o ângulo em radianos e depois converter em graus. Se o dispositivo puder inclinar em qualquer direção, você poderá calcular os dois ângulos e, em seguida, calcular o ângulo composto a partir deles.
Para ser explícito: ângulo em torno de um eixo = (180 / π) * arcsin (Vout - 2.5)
Para obter uma boa resposta de frequência, você precisará de pequenos capacitores de saída, Cx e Cy. Da nota de rodapé 6 na p. 3 da folha de dados, parece que 0,02 uF forneceria uma largura de banda de 250 Hz, o que provavelmente é o ideal para a taxa de amostragem. Talvez você possa chegar a 0,1 uF, limitando a largura de banda a 50 Hz, mas seus sinais começarão a ficar atenuados.
fonte
Estou adicionando uma segunda resposta, porque a minha outra é grande e você pode querer apenas simples.
A tampa do filtro precisa ter 0,10 uF ou maior para mantê-lo abaixo da taxa de aliasing (50Hz). Você precisa dar uma fase de calibração de alguns segundos com o dispositivo sentado nivelado com toda a aceleração da gravidade na direção Z, para determinar seu ponto G zero.
A tensão que você mede para o seu ponto G zero, provavelmente será diferente para a direção X e Y, não representa nada. Basta pegar a tensão que você obtiver e subtrair dela. Essa tensão, com o deslocamento subtraído, é o número de Gs que você está recebendo nessa direção.
Pegue o arcsin e você terá o seu ângulo nessa direção.
Isso ignora ruídos e outras acelerações. esteja preparado para que o NaN seja um resultado se você o inclinar totalmente e houver algum ruído.
fonte
Para obter qualquer ângulo, você precisa medir a aceleração da gravidade nas direções X e Y. subtraia a tensão média (2,5V) para que zero seja "sem aceleração".
Agora você pode encontrar o ângulo com arcsin (y / x). Mas isso é chato de usar, por causa da divisão e porque o sinal é ambíguo, então o que você realmente deseja que a função C atan2 (y, x). atan2 () acerta o sinal em todos os 360 graus.
Fora do tópico, como você não está usando um micro: se você está procurando atan2 () para usar em um microcontrolador, há um gerador atan2 () no meu site: http://vivara.net/cgi-bin/ cordic.cgi
fonte