Índice:

Raspberry Pi - ADXL345 Acelerômetro de 3 eixos Python Tutorial: 4 etapas
Raspberry Pi - ADXL345 Acelerômetro de 3 eixos Python Tutorial: 4 etapas

Vídeo: Raspberry Pi - ADXL345 Acelerômetro de 3 eixos Python Tutorial: 4 etapas

Vídeo: Raspberry Pi - ADXL345 Acelerômetro de 3 eixos Python Tutorial: 4 etapas
Vídeo: Raspberry Pi + ADXL345 2024, Novembro
Anonim

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 °. Aqui está uma demonstração com raspberry pi usando código python.

Etapa 1: O que você precisa..

O que você precisa..!!
O que você precisa..!!
O que você precisa..!!
O que você precisa..!!

1. Raspberry Pi

2. ADXL345

3. Cabo I²C

4. Escudo I²C para Raspberry Pi

5. Cabo Ethernet

Etapa 2: Conexão:

Conexão
Conexão
Conexão
Conexão
Conexão
Conexão
Conexão
Conexão

Pegue um escudo I2C para raspberry pi e empurre-o suavemente sobre os pinos gpio de raspberry pi.

Em seguida, conecte uma extremidade do cabo I2C ao sensor ADXL345 e a outra extremidade à blindagem I2C.

Também conecte o cabo Ethernet ao pi ou você pode usar um módulo WiFi.

As conexões são mostradas na imagem acima.

Etapa 3: Código:

Código
Código

O código python para ADXL345 pode ser baixado de nosso repositório GitHub - Dcube Store

Aqui está o link para o mesmo:

github.com/DcubeTechVentures/ADXL345..

Usamos a biblioteca SMBus para o código python. As etapas para instalar o SMBus no raspberry pi são descritas aqui:

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

Você também pode copiar o código daqui, ele é fornecido da seguinte forma:

# Distribuído com uma licença de livre arbítrio.

# Use-o da forma que quiser, com ou sem lucro, desde que se enquadre nas licenças das suas obras associadas.

# ADXL345

# Este código foi desenvolvido para funcionar com o Mini Módulo ADXL345_I2CS I2C disponível na Dcube Store.

import smbus

tempo de importação

# Pegue o ônibus I2C

bus = smbus. SMBus (1)

# Endereço ADXL345, 0x53 (83)

# Selecione o registro de 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

Etapa 4: Aplicativos:

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: