2 Comentários

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
Talvez você goste:
Comentários:

2
Deixe um comentário

avatar
1 Comentários
1 Respostas
0 Seguidores
 
Discussão de maior alcance
Discussão mais quente
2 Autores de comentários
Arysson OliveiraIsmael Lopes da Silva Comentários recentes
  Notificações  
recentes antigos mais votados
Notificar
Ismael Lopes da Silva
Membro

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

Séries

Menu