Sadržaj:

Raspberry Pi - ADXL345 troosni akcelerometar Python Vodič: 4 koraka
Raspberry Pi - ADXL345 troosni akcelerometar Python Vodič: 4 koraka

Video: Raspberry Pi - ADXL345 troosni akcelerometar Python Vodič: 4 koraka

Video: Raspberry Pi - ADXL345 troosni akcelerometar Python Vodič: 4 koraka
Video: Raspberry Pi Accelerometer Rig 2024, Studeni
Anonim

ADXL345 je mali, tanki, troosni akcelerometar ultra male snage s mjerenjima visoke razlučivosti (13 bita) do ± 16 g. Digitalni izlazni podaci oblikovani su kao 16-bitne dvojke nadopunjeni i dostupni su putem I2 C digitalnog sučelja. Mjeri statičko ubrzanje gravitacije u aplikacijama osjetljivog nagiba, kao i dinamičko ubrzanje koje je posljedica kretanja ili udara. Njegova visoka razlučivost (3,9 mg/LSB) omogućuje mjerenje promjena nagiba manjih od 1,0 °. Evo demonstracije s malinom pi pomoću python koda.

Korak 1: Što vam treba..

Što trebaš..!!
Što trebaš..!!
Što trebaš..!!
Što trebaš..!!

1. Malina Pi

2. ADXL345

3. I²C kabel

4. I²C štit za Raspberry Pi

5. Ethernet kabel

Korak 2: Povezivanje:

Priključak
Priključak
Priključak
Priključak
Priključak
Priključak
Priključak
Priključak

Uzmite I2C štit za malinu pi i nježno je gurnite preko gpio igle maline pi.

Zatim spojite jedan kraj I2C kabela na ADXL345 senzor, a drugi kraj na I2C štit.

Također priključite Ethernet kabel na pi ili možete koristiti WiFi modul.

Priključci su prikazani na gornjoj slici.

Korak 3: Kôd:

Kodirati
Kodirati

Python kod za ADXL345 može se preuzeti s našeg GitHub spremišta- Dcube Store

Evo linka za isto:

github.com/DcubeTechVentures/ADXL345..

Koristili smo knjižnicu SMBus za python kôd, koraci za instaliranje SMBusa na malinu pi opisani su ovdje:

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

Ovdje možete i kopirati kôd, dat je na sljedeći način:

# Distribuirano s licencom slobodne volje.

# Koristite ga kako god želite, profitno ili besplatno, pod uvjetom da se uklapa u licence povezanih djela.

# ADXL345

# Ovaj kôd je dizajniran za rad s ADXL345_I2CS I2C mini modulom dostupnim u trgovini Dcube.

uvoz smbus

vrijeme uvoza

# Nabavite I2C autobus

sabirnica = smbus. SMBus (1)

# ADXL345 adresa, 0x53 (83)

# Odaberite registar brzine propusnosti, 0x2C (44)# 0x0A (10) Normalni način rada, Brzina izlaznih podataka = 100 Hz

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

# ADXL345 adresa, 0x53 (83)

# Odaberite registar za kontrolu snage, 0x2D (45)

# 0x08 (08) Onemogućavanje automatskog mirovanja

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

# ADXL345 adresa, 0x53 (83)

# Odaberite registar formata podataka, 0x31 (49)

# 0x08 (08) Samoispitivanje onemogućeno, 4-žično sučelje

# Puna razlučivost, raspon = +/- 2g

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

vrijeme.spavanje (0,5)

# ADXL345 adresa, 0x53 (83)

# Pročitajte podatke natrag s 0x32 (50), 2 bajta

# L-os X-osi, MSB X-osi

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

data1 = sabirnica.čitani_bajtski_podaci (0x53, 0x33)

# Pretvorite podatke u 10-bitne

xAccl = ((podaci1 i 0x03) * 256) + podaci0

ako je xAccl> 511:

xAccl -= 1024

# ADXL345 adresa, 0x53 (83)

# Pročitajte podatke natrag od 0x34 (52), 2 bajta

# Y-osa LSB, Y-osa MSB

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

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

# Pretvorite podatke u 10-bitne

yAccl = ((podaci1 & 0x03) * 256) + podaci0

ako je yAccl> 511:

yAccl -= 1024

# ADXL345 adresa, 0x53 (83)

# Vratite podatke s 0x36 (54), 2 bajta

# Z-osa LSB, Z-osa MSB

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

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

# Pretvorite podatke u 10-bitne

zAccl = ((podaci1 & 0x03) * 256) + podaci0

ako je zAccl> 511:

zAccl -= 1024

# Izlažite podatke na zaslon

ispis "Ubrzanje u osi X: %d" %xAccl

ispis "Ubrzanje u osi Y: %d" %yAccl

ispis "Ubrzanje u osi Z: %d" %zAccl

Korak 4: Aplikacije:

ADXL345 je mali, tanki, troosni akcelerometar ultra male snage koji se može koristiti u mobilnim slušalicama, medicinskim instrumentima itd. Njegova primjena također uključuje igraće i pokazivačke uređaje, industrijske instrumente, osobne navigacijske uređaje i zaštitu tvrdog diska (HDD).

Preporučeni: