Măsurarea accelerării folosind BMA250 și Raspberry Pi: 4 pași
Măsurarea accelerării folosind BMA250 și Raspberry Pi: 4 pași
Anonim
Image
Image

BMA250 este un accelerometru pe 3 axe, mic, subțire, cu putere foarte mică, cu măsurare cu rezoluție înaltă (13 biți), până la ± 16 g. Datele de ieșire digitală sunt formatate ca două bi-16 complement și sunt accesibile prin interfața digitală I2C. Măsurează accelerația statică a gravitației în aplicațiile de detectare a înclinării, precum și accelerația dinamică rezultată din mișcare sau șoc. Rezoluția sa înaltă (3,9 mg / LSB) permite măsurarea modificărilor de înclinație mai mici de 1,0 °.

În acest tutorial vom măsura accelerația în toate cele trei axe perpendiculare folosind BMA250 și Raspberry Pi. Senzorul a fost programat în limbaj python.

Pasul 1: Hardware necesar:

Hardware necesar
Hardware necesar
Hardware necesar
Hardware necesar
Hardware necesar
Hardware necesar

Materialele de care avem nevoie pentru îndeplinirea obiectivului nostru includ următoarele componente hardware:

1. BMA250

2. Raspberry Pi

3. Cablu I2C

4. I2C Shield pentru Raspberry Pi

5. Cablu Ethernet

Pasul 2: conectare hardware:

Conectare hardware
Conectare hardware
Conectare hardware
Conectare hardware

Secțiunea de conectare hardware explică practic conexiunile de cablare necesare între senzor și raspberry pi. Asigurarea conexiunilor corecte este necesitatea de bază în timp ce lucrați la orice sistem pentru ieșirea dorită. Deci, conexiunile necesare sunt următoarele:

BMA250 va funcționa pe I2C. Iată exemplul schemei de cablare, care demonstrează cum se conectează fiecare interfață a senzorului.

Out-of-the-box, placa este configurată pentru o interfață I2C, ca atare, vă recomandăm să utilizați această conexiune dacă sunteți altfel agnostic. Nu ai nevoie decât de patru fire!

Sunt necesare doar patru conexiuni Vcc, Gnd, SCL și pinii SDA și acestea sunt conectate cu ajutorul cablului I2C.

Aceste conexiuni sunt prezentate în imaginile de mai sus.

Pasul 3: Cod Python pentru măsurarea accelerării:

Cod Python pentru măsurarea accelerării
Cod Python pentru măsurarea accelerării
Cod Python pentru măsurarea accelerării
Cod Python pentru măsurarea accelerării

Avantajul utilizării raspberry pi este că vă oferă flexibilitatea limbajului de programare în care doriți să programați placa pentru a interfața senzorul cu aceasta. Profitând de acest avantaj al acestei plăci, demonstrăm aici programarea sa în python. Python este unul dintre cele mai ușoare limbaje de programare cu cea mai ușoară sintaxă. Codul python pentru BMA250 poate fi descărcat din comunitatea noastră GitHub care este Dcube Store

Pe lângă ușurința utilizatorilor, explicăm și codul aici:

Ca primul pas al codificării, trebuie să descărcați biblioteca SMBus în cazul python, deoarece această bibliotecă acceptă funcțiile utilizate în cod. Deci, pentru a descărca biblioteca puteți vizita următorul link:

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

Puteți copia codul de lucru și de aici:

import smbus

timpul de import

# Obțineți autobuzul I2C = smbus. SMBus (1)

# Adresă BMA250, 0x18 (24)

# Selectați registrul de selecție a intervalului, 0x0F (15)

# 0x03 (03) Setare interval = +/- 2gbus.write_byte_data (0x18, 0x0F, 0x03)

# Adresa BMA250, 0x18 (24) # Selectați registrul lățimii de bandă, 0x10 (16)

# 0x08 (08) Lățime de bandă = 7,81 Hzbus.write_byte_data (0x18, 0x10, 0x08)

time.sleep (0,5)

# Adresă BMA250, 0x18 (24)

# Citiți datele înapoi de la 0x02 (02), 6 octeți

# Axa X LSB, Axa X MSB, Axa Y LSB, Axa Y MSB, Axa Z LSB, Axa Z MSB

data = bus.read_i2c_block_data (0x18, 0x02, 6)

# Convertiți datele în 10 biți

xAccl = (data [1] * 256 + (data [0] & 0xC0)) / 64

dacă xAccl> 511:

xAccl - = 1024

yAccl = (data [3] * 256 + (data [2] & 0xC0)) / 64

dacă yAccl> 511:

yAccl - = 1024

zAccl = (date [5] * 256 + (date [4] & 0xC0)) / 64

dacă zAccl> 511:

zAccl - = 1024

# Ieșire date pe ecran

print "Accelerare în axa X:% d"% xAccl

print "Accelerare în axa Y:% d"% yAccl

print "Accelerare în axa Z:% d"% zAccl

Codul este executat folosind următoarea comandă:

$> python BMA250.py gt; python BMA250.py

Ieșirea senzorului este prezentată în imaginea de mai sus pentru referința utilizatorului.

Pasul 4: Aplicații:

Aplicații
Aplicații

Accelerometrele precum BMA250 își găsesc mai ales aplicația în jocuri și în comutarea profilului de afișare. Acest modul senzor este utilizat și în sistemul avansat de gestionare a energiei pentru aplicații mobile. BMA250 este un senzor digital de accelerație triaxial care este încorporat cu un controler inteligent de întrerupere declanșat de mișcare pe cip.

Recomandat: