Cuprins:
- Pasul 1: Hardware necesar:
- Pasul 2: conectare hardware:
- Pasul 3: Cod pentru măsurarea accelerației:
- Pasul 4: Aplicații:
Video: Măsurarea accelerației folosind ADXL345 și Raspberry Pi: 4 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:43
ADXL345 este un accelerometru cu 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 un complement de doi biți pe 16 biți și sunt accesibile prin interfața digitală I2 C. 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 este demonstrată interfața modulului senzor ADXL345 cu raspberry pi și a fost ilustrată și programarea acestuia folosind limbajul python. Pentru a citi valorile de accelerație pe toate cele 3 axe, am folosit raspberry pi cu un adaptor I2C. Acest adaptor I2C face conexiunea la modulul senzor mai ușoară și mai fiabilă.
Pasul 1: Hardware necesar:
Materialele de care avem nevoie pentru îndeplinirea obiectivului nostru includ următoarele componente hardware:
1. ADXL345
2. Raspberry Pi
3. Cablu I2C
4. I2C Shield pentru zmeură pi
5. Cablu Ethernet
Pasul 2: 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:
ADXL345 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 pentru măsurarea accelerației:
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. Codul python pentru ADXL345 poate fi descărcat din comunitatea noastră github care este Control Everything Community.
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 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 Python de lucru pentru acest senzor și de aici:
import smbus
timpul de import
# Obțineți autobuzul I2C = smbus. SMBus (1)
# Adresă ADXL345, 0x53 (83)
# Selectați registrul ratei lățimii de bandă, 0x2C (44)
# 0x0A (10) Mod normal, rata de ieșire a datelor = 100 Hz
bus.write_byte_data (0x53, 0x2C, 0x0A)
# Adresă ADXL345, 0x53 (83)
# Selectați registrul de control al puterii, 0x2D (45)
# 0x08 (08) Dezactivare oprire automată
bus.write_byte_data (0x53, 0x2D, 0x08)
# Adresă ADXL345, 0x53 (83)
# Selectați registrul formatului de date, 0x31 (49)
# 0x08 (08) Autotest dezactivat, interfață cu 4 fire
# Rezoluție completă, interval = +/- 2g
bus.write_byte_data (0x53, 0x31, 0x08)
time.sleep (0,5)
# Adresă ADXL345, 0x53 (83)
# Citiți datele înapoi de la 0x32 (50), 2 octeți
# Axa X LSB, Axa X MSB
data0 = bus.read_byte_data (0x53, 0x32)
data1 = bus.read_byte_data (0x53, 0x33)
# Convertiți datele în 10 biți
xAccl = ((data1 & 0x03) * 256) + data0
dacă xAccl> 511:
xAccl - = 1024
# Adresă ADXL345, 0x53 (83)
# Citiți datele înapoi de la 0x34 (52), 2 octeți
# Axa Y LSB, axa Y MSB
data0 = bus.read_byte_data (0x53, 0x34)
data1 = bus.read_byte_data (0x53, 0x35)
# Convertiți datele în 10 biți
yAccl = ((data1 & 0x03) * 256) + data0
dacă yAccl> 511:
yAccl - = 1024
# Adresă ADXL345, 0x53 (83)
# Citiți datele înapoi de la 0x36 (54), 2 octeți
# Z-Axis LSB, Z-Axis MSB
data0 = bus.read_byte_data (0x53, 0x36)
data1 = bus.read_byte_data (0x53, 0x37)
# Convertiți datele în 10 biți
zAccl = ((date1 și 0x03) * 256) + date0
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
Partea de cod menționată mai jos include bibliotecile necesare pentru executarea corectă a codurilor python.
import smbusimport timp
Codul poate fi executat tastând comanda menționată mai jos în promptul de comandă.
$> python ADXL345.py
Ieșirea senzorului este, de asemenea, prezentată în imaginea de mai sus pentru referința utilizatorului.
Pasul 4: Aplicații:
ADXL345 este un accelerometru cu 3 axe mic, subțire, cu putere foarte mică, care poate fi utilizat în receptoare, instrumente medicale etc. Aplicația sa include, de asemenea, dispozitive pentru jocuri și indicare, instrumentare industrială, dispozitive de navigație personală și protecție pentru unitatea de disc (HDD).
Recomandat:
Măsurarea accelerației folosind ADXL345 și fotonul de particule: 4 pași
Măsurarea accelerației folosind ADXL345 și fotonul de particule: ADXL345 este un accelerometru pe 3 axe, cu putere mică, subțire, cu o rezoluție înaltă (13 biți), măsurând până la ± 16 g. Datele de ieșire digitală sunt formatate ca un complement de doi biți pe 16 biți și sunt accesibile prin interfața digitală I2 C. Măsurează
Măsurarea accelerației folosind H3LIS331DL și Arduino Nano: 4 pași
Măsurarea accelerației folosind H3LIS331DL și Arduino Nano: H3LIS331DL, este un accelerometru liniar cu 3 axe de înaltă performanță, de mică performanță, 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
Măsurarea accelerației folosind H3LIS331DL și fotonul de particule: 4 pași
Măsurarea accelerației utilizând H3LIS331DL și fotonul de particule: 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
Măsurarea accelerației folosind H3LIS331DL și Raspberry Pi: 4 pași
Măsurarea accelerației utilizând H3LIS331DL și Raspberry Pi: 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
Măsurarea accelerației folosind ADXL345 și Arduino Nano: 4 pași
Măsurarea accelerației utilizând ADXL345 și Arduino Nano: ADXL345 este un accelerometru pe 3 axe, cu putere mică, subțire, cu o rezoluție înaltă (13 biți), măsurând până la ± 16 g. Datele de ieșire digitală sunt formatate ca un complement de doi biți pe 16 biți și sunt accesibile prin interfața digitală I2 C. Măsurează