Acelerômetro MMA845X com Raspberry pi em Python

Grande parte dos sistemas que necessitam obter a orientação de algum objeto, realizar análise de vibrações, detecção de quedas e outros, necessitam do uso do acelerômetro. Existem vários modelos bastantes difundidos no mercado, cujo princípio de funcionamento já foi explicado anteriormente neste post. Neste artigo utilizaremos a placa MMA845X que possui um acelerômetro de 3-eixos, e possui tais características: 

Sobre o MMA845X

O acelerômetro MMA845X, possui como características:

  • Aceleração instantânea nos 3 eixos, com resolução configurável entre 8 e 12 bits.
  • Tensão de alimentação entre 1.95V e 3.6V
  • Fundo de escala selecionável dinamicamente entre: ±2g/±4g/±8g 
  • Taxa de saída de dados (Output Data Rate-ODR) de 1.56 Hz até 800 Hz
  • Interface de comunicação I2C
  • Consumo de corrente muito baixo, variando de 6 a 165 μA
  • Detecção de queda livre
  • Detecção de orientação (paisagem ou retrato)

Como a comunicação é realizada por meio do protocolo I2C, é necessário configurar o endereço. O MMA845X, por padrão, possui dois endereços disponíveis: 0x1D e 0x1C. A escolha do endereço a ser utilizado, depende do nível lógico aplicado no pino SA0 do acelerômetro, assim, para utilizar o endereço 0x1D, deve-se aplicar nível lógico ALTO (lembre-se que neste pino o nível alto é de 3V3!!). E, para utilizar o endereço 0x1C deverá ser aplicado o nível lógico baixo, conectando o pino SA0 ao GND.

O diagrama de conexão do MMA845x com a Raspberry Pi é mostrado na Figura 1:

acelerômetro MMA845X com Raspberry Pi
Figura 1 – Diagrama de conexão

Configuração da Raspberry

Agora que o acelerômetro está conectado à Raspberry, é necessário configurar a Raspberry para usar a comunicação I2C,  garantindo assim, que o barramento I2C está ativo. Para isto, deve abrir o terminal e digitar o seguinte comando:

 Em seguida, aparecerão as opções tal como mostrado na Figura 2. Selecione a opção “5 – Interfacing Options”.

acelerômetro MMA845X com Raspberry Pi
Figura 2 – Tela de configurações gerais

Em seguida, selecione a opção “P5 – I2C”, e depois, selecione a opção SIM. tal como mostrado nas Figuras 3 e 4. 

acelerômetro MMA845X com Raspberry Pi
Figura 3 – Menu de configurações das opções de interfaces
Figura 4 – Tela de confirmação da habilitação do barramento I2C

Após estes passos, nos certificamos que a Raspberry está com o barramento I2C disponível para ser utilizado para tráfego de informações.

Adicionando biblioteca

A biblioteca para uso do MMA845X, está disponível NESTE repositório. Assim, para usá-lo basta fazer o download ou clonar em uma pasta do seu interesse utilizando o seguinte comando:

Em seguida abra a pasta MMA845X, cujos arquivos baixados são mostrados na Figura 5.  E por fim, execute o código example.py

Figura 5 – Arquivos baixados

Explicando o código para usar o acelerômetro MMA845X com Raspberry Pi

Primeiramente são adicionadas as bibliotecas que serão utilizadas.

Nesse caso, a biblioteca accelerometer, responsável pelo controle do acelerômetro e a biblioteca time, por meio da qual é possível usar a função sleep, podendo assim dando um delay em um determinado ponto.

Em seguida, é instanciada a classe accelerometer, cujo único parâmetro é o endereço que como dito anteriormente, deve ser 0x1D ou 0x1C a depender do nível lógico aplicado no pino SA0.

A última parte do código é responsável por adquirir a aceleração instantânea em cada eixo e imprimir estas informações na tela, assim como obter a orientação da placa do acelerômetro e printar esses dados na tela.

O método read() é responsável por ler a aceleração de cada eixo e guardar nas variáveis x, y e z da classe. Enquanto que o método readPosition() retorna uma string informando a orientação em que se encontra o acelerômetro, que pode ser: Flat, retrato ou paisagem.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Hardware » Acelerômetro MMA845X com Raspberry pi em Python
Comentários:
Notificações
Notificar
guest
2 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Ismael Lopes da Silva
Membro
25/04/2020 11:49

Parabéns pelo artigo. Bem detalhado. Obrigado por compartilhar com todos nós.

Talvez você goste:

Séries

Menu