INHOUDSOPGAWE:

Framboos Pi - ADXL345 3 -as versnellingsmeter Python -tutoriaal: 4 stappe
Framboos Pi - ADXL345 3 -as versnellingsmeter Python -tutoriaal: 4 stappe

Video: Framboos Pi - ADXL345 3 -as versnellingsmeter Python -tutoriaal: 4 stappe

Video: Framboos Pi - ADXL345 3 -as versnellingsmeter Python -tutoriaal: 4 stappe
Video: Teste do acelerômetro no Raspberry 2024, Julie
Anonim

Die ADXL345 is 'n klein, dun, ultra-lae, drie-as versnellingsmeter met 'n hoë resolusie (13-bis) meting tot ± 16 g. Digitale uitsetdata word geformateer as 'n 16-bis tweeling-aanvulling en is toeganklik via die I2 C digitale koppelvlak. Dit meet die statiese versnelling van swaartekrag in kantelwaarnemingstoepassings, sowel as dinamiese versnelling as gevolg van beweging of skok. Die hoë resolusie (3,9 mg/LSB) maak dit moontlik om hellingsveranderings van minder as 1,0 ° te meet. Hier is 'n demonstrasie met framboos pi met behulp van python -kode.

Stap 1: wat u nodig het..

Wat jy nodig het..!!
Wat jy nodig het..!!
Wat jy nodig het..!!
Wat jy nodig het..!!

1. Framboos Pi

2. ADXL345

3. I²C -kabel

4. I²C -skild vir Framboos Pi

5. Ethernet -kabel

Stap 2: Verbinding:

Verbinding
Verbinding
Verbinding
Verbinding
Verbinding
Verbinding
Verbinding
Verbinding

Neem 'n I2C skild vir framboos pi en druk dit liggies oor die gpio penne van framboos pi.

Koppel dan die een kant van die I2C -kabel aan die ADXL345 -sensor en die ander kant aan die I2C -skild.

Koppel ook die Ethernet -kabel aan die pi, of u kan 'n WiFi -module gebruik.

Verbindings word op die foto hierbo getoon.

Stap 3: Kode:

Kode
Kode

Die python-kode vir ADXL345 kan afgelaai word vanaf ons GitHub-bewaarplek- Dcube Store

Hier is die skakel vir dieselfde:

github.com/DcubeTechVentures/ADXL345..

Ons het SMBus -biblioteek gebruik vir python -kode, die stappe om SMBus op framboos pi te installeer word hier beskryf:

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

U kan die kode ook hiervandaan kopieer; dit word soos volg gegee:

# Versprei met 'n vrywillige lisensie.

# Gebruik dit soos u wil, wins of gratis, mits dit in die lisensies van die gepaardgaande werke pas.

# ADXL345

# Hierdie kode is ontwerp om te werk met die ADXL345_I2CS I2C Mini Module wat beskikbaar is in Dcube Store.

invoer smbus

invoer tyd

# Kry I2C -bus

bus = smbus. SMBus (1)

# ADXL345 adres, 0x53 (83)

# Kies bandbreedtesnelheidsregister, 0x2C (44)# 0x0A (10) Normale modus, Uitvoerdatasnelheid = 100 Hz

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

# ADXL345 adres, 0x53 (83)

# Kies kragbeheerregister, 0x2D (45)

# 0x08 (08) Auto Sleep deaktiveer

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

# ADXL345 adres, 0x53 (83)

# Kies dataformaatregister, 0x31 (49)

# 0x08 (08) Selftoets gedeaktiveer, 4-draads koppelvlak

# Volle resolusie, reikwydte = +/- 2g

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

tyd. slaap (0,5)

# ADXL345 adres, 0x53 (83)

# Lees data terug van 0x32 (50), 2 grepe

# X-Axis LSB, X-Axis MSB

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

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

# Skakel die data om na 10-bisse

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

as xAccl> 511:

xAccl -= 1024

# ADXL345 adres, 0x53 (83)

# Lees data terug van 0x34 (52), 2 grepe

# Y-as LSB, Y-as MSB

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

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

# Skakel die data om na 10-bisse

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

as yAccl> 511:

yAccl -= 1024

# ADXL345 adres, 0x53 (83)

# Lees data terug van 0x36 (54), 2 grepe

# Z-as LSB, Z-as MSB

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

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

# Skakel die data om na 10-bisse

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

as zAccl> 511:

zAccl -= 1024

# Uitset data na die skerm

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

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

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

Stap 4: Aansoeke:

ADXL345 is 'n klein, dun, ultra-lae, 3-as versnellingsmeter wat gebruik kan word in toestelle, mediese instrumente, ens.

Aanbeveel: