Cuprins:

Măsurarea accelerației folosind H3LIS331DL și Raspberry Pi: 4 pași
Măsurarea accelerației folosind H3LIS331DL și Raspberry Pi: 4 pași

Video: Măsurarea accelerației folosind H3LIS331DL și Raspberry Pi: 4 pași

Video: Măsurarea accelerației folosind H3LIS331DL și Raspberry Pi: 4 pași
Video: EXPERIMENTE 01 (Determinarea accelerației gravitaționale prin metoda pendulului gravitațional) 2024, Iulie
Anonim
Image
Image

H3LIS331DL, este un accelerometru liniar cu 3 axe de înaltă performanță, de mică putere, aparținând familiei „nano”, cu interfață serială digitală I²C. H3LIS331DL are scale complete selectabile de utilizator de ± 100g / ± 200g / ± 400g și este capabil să măsoare accelerații cu rate de date de ieșire de la 0,5 Hz la 1 kHz. H3LIS331DL funcționează pe o gamă extinsă de temperatură de la -40 ° C la +85 ° C.

În acest tutorial vom demonstra interfața H3LIS331DL cu Raspberry Pi, folosind python ca limbaj de programare.

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. H3LIS331DL

2. Raspberry Pi

3. Cablu I2C

4. I2C Shield pentru zmeură 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:

H3LIS331DL 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

Avantajul utilizării raspberry pi este acela 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 H3LIS331DL 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 prim pas de codare, trebuie să descărcați biblioteca SMBus în caz de 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ă H3LIS331DL, 0x18 (24)

# Selectați registrul de control 1, 0x20 (32)

# 0x27 (39) Modul de pornire, viteza de ieșire a datelor = 50 Hz # X, Y, Axa Z activată

bus.write_byte_data (0x18, 0x20, 0x27)

# Adresa H3LIS331DL, 0x18 (24) # Selectați registrul de control 4, 0x23 (35)

# 0x00 (00) Actualizare continuă, selecție la scară completă = +/- 100g

bus.write_byte_data (0x18, 0x23, 0x00)

time.sleep (0,5)

# Adresă H3LIS331DL, 0x18 (24)

# Citiți datele înapoi de la 0x28 (40), 2 octeți

# Axa X LSB, Axa X MSB

data0 = bus.read_byte_data (0x18, 0x28)

data1 = bus.read_byte_data (0x18, 0x29)

# Convertiți dataxAccl = data1 * 256 + data0

dacă xAccl> 32767:

xAccl - = 65536

# Adresă H3LIS331DL, 0x18 (24)

# Citiți datele înapoi de la 0x2A (42), 2 octeți

# Axa Y LSB, axa Y MSB

data0 = bus.read_byte_data (0x18, 0x2A)

data1 = bus.read_byte_data (0x18, 0x2B)

# Convertiți datele

yAccl = data1 * 256 + data0

dacă yAccl> 32767:

yAccl - = 65536

# Adresă H3LIS331DL, 0x18 (24)

# Citiți datele înapoi de la 0x2C (44), 2 octeți

# Z-Axis LSB, Z-Axis MSB

data0 = bus.read_byte_data (0x18, 0x2C)

data1 = bus.read_byte_data (0x18, 0x2D)

# Convertiți datele

zAccl = data1 * 256 + data0

dacă zAccl> 32767:

zAccl - = 65536

# 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 H3LIS331DL.py gt; python H3LIS331DL.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 H3LIS331DL își găsesc în mare parte 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. H3LIS331DL 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: