Índice:

Medição de aceleração usando ADXL345 e Raspberry Pi: 4 etapas
Medição de aceleração usando ADXL345 e Raspberry Pi: 4 etapas

Vídeo: Medição de aceleração usando ADXL345 e Raspberry Pi: 4 etapas

Vídeo: Medição de aceleração usando ADXL345 e Raspberry Pi: 4 etapas
Vídeo: Teste de Funcionamento do ADXL345 - Módulo de Acelerômetro Digital com Sensor de Ângulo 2024, Novembro
Anonim
Image
Image

O ADXL345 é um acelerômetro de 3 eixos pequeno, fino e de potência ultrabaixa com medição de alta resolução (13 bits) de até ± 16 g. Os dados de saída digital são formatados como complemento de dois de 16 bits e são acessíveis por meio da interface digital I2C. Ele mede a aceleração estática da gravidade em aplicações de detecção de inclinação, bem como a aceleração dinâmica resultante de movimento ou choque. Sua alta resolução (3,9 mg / LSB) permite a medição de mudanças de inclinação inferiores a 1,0 °.

Neste tutorial a interface do módulo sensor ADXL345 com raspberry pi é demonstrada e sua programação em linguagem python também foi ilustrada. Para ler os valores de aceleração em todos os 3 eixos, usamos raspberry pi com um adaptador I2C. Este adaptador I2C torna a conexão ao módulo sensor mais fácil e confiável.

Etapa 1: Hardware necessário:

Hardware necessário
Hardware necessário
Hardware necessário
Hardware necessário
Hardware necessário
Hardware necessário

Os materiais de que precisamos para cumprir nosso objetivo incluem os seguintes componentes de hardware:

1. ADXL345

2. Raspberry Pi

3. Cabo I2C

4. Escudo I2C para framboesa pi

5. Cabo Ethernet

Etapa 2: Conexão de Hardware:

Conexão de hardware
Conexão de hardware
Conexão de hardware
Conexão de hardware

A seção de conexão de hardware explica basicamente as conexões de fiação necessárias entre o sensor e o raspberry pi. Garantir as conexões corretas é a necessidade básica ao trabalhar em qualquer sistema para a saída desejada. Portanto, as conexões necessárias são as seguintes:

O ADXL345 funcionará em I2C. Aqui está o diagrama de fiação de exemplo, demonstrando como conectar cada interface do sensor.

Fora da caixa, a placa é configurada para uma interface I2C, como tal, recomendamos usar esta conexão se você for agnóstico.

Você só precisa de quatro fios! São necessárias apenas quatro conexões dos pinos Vcc, Gnd, SCL e SDA e estes são conectados com a ajuda do cabo I2C.

Essas conexões são demonstradas nas fotos acima.

Etapa 3: Código para medição de aceleração:

Código para medição de aceleração
Código para medição de aceleração

A vantagem de usar raspberry pi é que oferece a flexibilidade da linguagem de programação em que se deseja programar a placa para fazer a interface do sensor com ela. Aproveitando essa vantagem desta placa, estamos demonstrando aqui sua programação em python. O código python para ADXL345 pode ser baixado de nossa comunidade github que é Control Everything Community.

Além da facilidade dos usuários, também explicamos o código aqui:

Como primeira etapa da codificação, você precisa baixar a biblioteca smbus no caso do python, porque esta biblioteca suporta as funções usadas no código. Portanto, para baixar a biblioteca você pode visitar o seguinte link:

pypi.python.org/pypi/smbus-cffi/0.5.1

Você também pode copiar o código python de trabalho para este sensor aqui:

import smbus

tempo de importação

# Obtenha busbus I2C = smbus. SMBus (1)

# Endereço ADXL345, 0x53 (83)

# Selecione o registro da taxa de largura de banda, 0x2C (44)

# 0x0A (10) Modo normal, taxa de dados de saída = 100 Hz

bus.write_byte_data (0x53, 0x2C, 0x0A)

# Endereço ADXL345, 0x53 (83)

# Selecione o registro de controle de energia, 0x2D (45)

# 0x08 (08) Desativar suspensão automática

bus.write_byte_data (0x53, 0x2D, 0x08)

# Endereço ADXL345, 0x53 (83)

# Selecione o registro de formato de dados, 0x31 (49)

# 0x08 (08) Autoteste desabilitado, interface de 4 fios

# Resolução total, intervalo = +/- 2g

bus.write_byte_data (0x53, 0x31, 0x08)

tempo.sono (0,5)

# Endereço ADXL345, 0x53 (83)

# Leia os dados de 0x32 (50), 2 bytes

# X-Axis LSB, X-Axis MSB

data0 = bus.read_byte_data (0x53, 0x32)

data1 = bus.read_byte_data (0x53, 0x33)

# Converta os dados para 10 bits

xAccl = ((dados1 & 0x03) * 256) + dados0

se xAccl> 511:

xAccl - = 1024

# Endereço ADXL345, 0x53 (83)

# Leia os dados de 0x34 (52), 2 bytes

# LSB do eixo Y, MSB do eixo Y

data0 = bus.read_byte_data (0x53, 0x34)

data1 = bus.read_byte_data (0x53, 0x35)

# Converta os dados para 10 bits

yAccl = ((dados1 & 0x03) * 256) + dados0

se yAccl> 511:

yAccl - = 1024

# Endereço ADXL345, 0x53 (83)

# Leia os dados de 0x36 (54), 2 bytes

# LSB do eixo Z, MSB do eixo Z

data0 = bus.read_byte_data (0x53, 0x36)

data1 = bus.read_byte_data (0x53, 0x37)

# Converta os dados para 10 bits

zAccl = ((dados1 & 0x03) * 256) + dados0

se zAccl> 511:

zAccl - = 1024

# Dados de saída para a tela

print "Aceleração no eixo X:% d"% xAccl

print "Aceleração no eixo Y:% d"% yAccl

print "Aceleração no eixo Z:% d"% zAccl

A parte do código mencionada abaixo inclui as bibliotecas necessárias para a execução correta dos códigos Python.

import smbusimport time

O código pode ser executado digitando o comando mencionado abaixo no prompt de comando.

$> python ADXL345.py

A saída do sensor também é mostrada na imagem acima para referência do usuário.

Etapa 4: Aplicativos:

Formulários
Formulários

ADXL345 é um acelerômetro de 3 eixos pequeno, fino e de potência ultrabaixa que pode ser empregado em aparelhos, instrumentação médica, etc. Sua aplicação também inclui dispositivos de jogo e apontadores, instrumentação industrial, dispositivos de navegação pessoal e proteção de unidade de disco rígido (HDD).

Recomendado: