FAVORITAR
Faça login para como favoritoFechar

Medição de ângulo com acelerômetro LIS3DH e Franzininho C0

Introdução

No artigo anterior sobre o acelerômetro LIS3DH, ensinamos como realizar as leituras brutas do acelerômetro e convertê-las em miligramas (mg). No entanto, você sabia que também é possível calcular a angulação do dispositivo utilizando essas leituras de aceleração? Sim, é possível! Neste artigo, vamos modificar nosso código main.c para incluir a obtenção de dados de ângulo nos eixos X, Y e Z, permitindo uma análise completa da orientação do dispositivo.

Cálculo de inclinação

Para determinar a orientação de um dispositivo, utilizamos os valores de aceleração medidos pelo acelerômetro em cada eixo (X, Y e Z). A partir desses valores, podemos calcular os ângulos de inclinação em relação a cada eixo. Esses ângulos nos ajudam a entender a inclinação do dispositivo em relação a uma posição de referência.

Posição de Referência

A posição de referência é quando o dispositivo está com os eixos X e Y paralelos ao plano horizontal (sem aceleração nestes eixos, ou seja, 0 g) e o eixo Z perpendicular ao plano horizontal (com aceleração de 1 g devido à gravidade).

  • θ (Theta): Ângulo entre o eixo X do acelerômetro e o horizonte.
  • ψ (Psi): Ângulo entre o eixo Y do acelerômetro e o horizonte.
  • φ (Phi): Ângulo entre o eixo Z do acelerômetro e o vetor de gravidade.

Na posição de referência, onde não há inclinação (0 g nos eixos X e Y, e 1 g no eixo Z), todos os ângulos calculados serão 0°. Isso é mostrado na figura abaixo. 

Seminário Linux Embarcado 2024: Evento Presencial em São Paulo

Participe do Seminário Linux Embarcado 2024 em São Paulo. Conhecimento técnico, palestras, workshops e oportunidade de networking com profissionais experientes.

Inscreva-se

A trigonometria básica pode ser usada para mostrar que os ângulos de inclinação podem ser calculados usando a Equação 11, Equação 12 e Equação 13.

Se desejar aprofundar no assunto, sugiro a leitura de Application Note AN-1057 da Analog Devices.

Mão na massa, modificando o código main.c

  1. Adicione as seguintes bibliotecas:

Lembrando que estamos utilizando o código base feito em lis3dh.h e lis3dh.c na parte 1 (link parte 1). 

  1. Em int main:

Basicamente, inicializamos nosso acelerômetro e no while realizamos os cálculos necessários para encontrar o valor da inclinação. 

  1. Após gravar o código, observamos os seguinte funcionamento:

Conclusão

Para concluir, este artigo mostrou como utilizar o acelerômetro LIS3DH em conjunto com a Franzininho C0 para calcular ângulos de inclinação nos eixos X, Y e Z. Ao modificar o código main.c conforme descrito, pudemos realizar leituras de aceleração, calcular os ângulos de inclinação utilizando trigonometria básica e exibir os resultados através da comunicação UART. Esses ângulos são essenciais para determinar a orientação do dispositivo em relação a uma posição de referência. Foi utilizado como base para esse código as bibliotecas e configurações feitas no artigo abordando o LIS3DH.

Outros artigos da série

<< Leitura dos Eixos X, Y e Z do acelerômetro LIS3DH com a Franzininho C0 via SPIDetecção de Queda Livre com acelerômetro LIS3DH e Franzininho C0 >>
Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.
Comentários:
Notificações
Notificar
0 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Home » Hardware » Medição de ângulo com acelerômetro LIS3DH e Franzininho C0

EM DESTAQUE

WEBINARS

LEIA TAMBÉM

JUNTE-SE HOJE À COMUNIDADE EMBARCADOS

Talvez você goste:


Seminário de
Sistemas Embarcados e IoT 2024
 
Data: 25/06 | Local: Hotel Holiday Inn Anhembi, São Paulo-SP
 
GARANTA SEU INGRESSO

 
close-link