Inhoudsopgave:

Raspberry Pi - ADXL345 3-assige accelerometer Python-zelfstudie - Ajarnpa
Raspberry Pi - ADXL345 3-assige accelerometer Python-zelfstudie - Ajarnpa

Video: Raspberry Pi - ADXL345 3-assige accelerometer Python-zelfstudie - Ajarnpa

Video: Raspberry Pi - ADXL345 3-assige accelerometer Python-zelfstudie - Ajarnpa
Video: PiicoDev 3-Axis Accelerometer LIS3DH | Guide for Micro:Bit 2024, November
Anonim

De ADXL345 is een kleine, dunne, ultralaag vermogen, 3-assige accelerometer met hoge resolutie (13-bits) meting tot ±16 g. Digitale uitvoergegevens zijn geformatteerd als 16-bits tweetallen en zijn toegankelijk via de digitale I2 C-interface. Het meet de statische versnelling van de zwaartekracht in toepassingen met kanteldetectie, evenals dynamische versnelling als gevolg van beweging of schokken. De hoge resolutie (3,9 mg/LSB) maakt het mogelijk om hellingsveranderingen van minder dan 1,0° te meten. Hier is het demonstratie met Raspberry Pi met behulp van python-code.

Stap 1: Wat je nodig hebt.

Wat je nodig hebt..!!
Wat je nodig hebt..!!
Wat je nodig hebt..!!
Wat je nodig hebt..!!

1. Raspberry Pi

2. ADXL345

3. I²C-kabel

4. I²C-schild voor Raspberry Pi

5. Ethernet-kabel

Stap 2: Aansluiting:

Verbinding
Verbinding
Verbinding
Verbinding
Verbinding
Verbinding
Verbinding
Verbinding

Neem een I2C-schild voor Raspberry Pi en duw het voorzichtig over de gpio-pinnen van Raspberry Pi.

Sluit vervolgens het ene uiteinde van de I2C-kabel aan op de ADXL345-sensor en het andere uiteinde op de I2C-afscherming.

Sluit ook de Ethernet-kabel aan op de pi of u kunt een WiFi-module gebruiken.

De aansluitingen zijn weergegeven in de afbeelding hierboven.

Stap 3: Coderen:

Code
Code

De python-code voor ADXL345 kan worden gedownload van onze GitHub-repository - Dcube Store

Hier is de link voor hetzelfde:

github.com/DcubeTechVentures/ADXL345..

We hebben de SMBus-bibliotheek gebruikt voor python-code, de stappen om SMBus op raspberry pi te installeren worden hier beschreven:

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

U kunt de code ook hier kopiëren, deze wordt als volgt gegeven:

# Gedistribueerd met een vrije wilslicentie.

# Gebruik het zoals je wilt, winst of gratis, op voorwaarde dat het past in de licenties van de bijbehorende werken.

# ADXL345

# Deze code is ontworpen om te werken met de ADXL345_I2CS I2C Mini Module die verkrijgbaar is in de Dcube Store.

import smbus

import tijd

# Krijg I2C-bus

bus = smbus. SMBus(1)

# ADXL345 adres, 0x53(83)

# Selecteer bandbreedtesnelheidsregister, 0x2C(44)# 0x0A(10) Normale modus, Uitvoergegevenssnelheid = 100 Hz

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

# ADXL345 adres, 0x53(83)

# Selecteer vermogensregelregister, 0x2D(45)

# 0x08(08) Automatische slaap uitschakeling

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

# ADXL345 adres, 0x53(83)

# Selecteer dataformaat register, 0x31(49)

# 0x08(08) Zelftest uitgeschakeld, 4-draads interface

# Volledige resolutie, bereik = +/- 2g

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

tijd.slaap(0.5)

# ADXL345 adres, 0x53(83)

# Lees gegevens terug van 0x32(50), 2 bytes

# X-as LSB, X-as MSB

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

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

# Converteer de gegevens naar 10-bits

xAccl = ((data1 & 0x03) * 256) + data0

als xAccl > 511:

xAccl -= 1024

# ADXL345 adres, 0x53(83)

# Lees gegevens terug van 0x34(52), 2 bytes

# Y-as LSB, Y-as MSB

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

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

# Converteer de gegevens naar 10-bits

yAccl = ((data1 & 0x03) * 256) + data0

als yAccl > 511:

yAccl -= 1024

# ADXL345 adres, 0x53(83)

# Lees gegevens terug van 0x36(54), 2 bytes

# Z-as LSB, Z-as MSB

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

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

# Converteer de gegevens naar 10-bits

zAccl = ((data1 & 0x03) * 256) + data0

als zAccl > 511:

zAccl -= 1024

# Gegevens uitvoeren naar scherm

print "Versnelling in X-as: %d" %xAccl

print "Versnelling in Y-as: %d" %yAccl

print "Versnelling in Z-as: %d" %zAccl

Stap 4: Toepassingen:

ADXL345 is een kleine, dunne 3-assige accelerometer met ultralaag vermogen die kan worden gebruikt in handsets, medische instrumenten enz. De toepassing ervan omvat ook gaming- en aanwijsapparaten, industriële instrumenten, persoonlijke navigatieapparatuur en bescherming van de harde schijf (HDD).

Aanbevolen: