2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
MMA8452Q este un accelerometru inteligent, de mică putere, cu trei axe, capacitiv, micromachined, cu 12 biți de rezoluție. Opțiunile flexibile programabile de utilizator sunt furnizate cu ajutorul funcțiilor încorporate în accelerometru, configurabile pentru doi pini de întrerupere. Are scări complete selectabile de utilizator de ± 2g / ± 4g / ± 8g cu date filtrate cu filtru trecător înalt, precum și date non-filtrate disponibile în timp real. Iată demonstrația sa cu raspberry pi folosind codul python.
Pasul 1: De ce ai nevoie..
1. Raspberry Pi
2. MMA8452Q
3. Cablu I²C
4. Scut I²C pentru Raspberry Pi
5. Cablu Ethernet
Pasul 2: Conexiuni:
Luați un scut I2C pentru raspberry pi și împingeți-l ușor peste pinii gpio ai raspberry pi.
Apoi conectați capătul cablului I2C la senzorul MMA8452Q și celălalt capăt la ecranul I2C.
De asemenea, conectați cablul Ethernet la pi sau puteți utiliza un modul WiFi.
Conexiunile sunt afișate în imaginea de mai sus.
Pasul 3: Cod:
Codul python pentru MMA8452Q poate fi descărcat din depozitul nostru github- ControlEverythingCommunity
Iată linkul.
Am folosit biblioteca SMBus pentru codul Python, pașii pentru instalarea SMBus pe raspberry pi sunt descriși aici:
pypi.python.org/pypi/smbus-cffi/0.5.1
De asemenea, puteți copia codul de aici, acesta este dat după cum urmează:
# Distribuit cu o licență de voință liberă.
# Folosiți-l în orice mod doriți, profit sau gratuit, cu condiția să se încadreze în licențele lucrărilor sale asociate.
# MMA8452Q
# Acest cod este conceput pentru a funcționa cu Mini-modulul MMA8452Q_I2CS I2C.
import smbus
timpul de import
# Ia autobuzul I2C
autobuz = smbus. SMBus (1)
# Adresă MMA8452Q, 0x1C (28)
# Selectați Registrul de control, 0x2A (42)
# 0x00 (00) Mod StandBy
bus.write_byte_data (0x1C, 0x2A, 0x00)
# Adresă MMA8452Q, 0x1C (28)
# Selectați Registrul de control, 0x2A (42)
# 0x01 (01) Mod activ
bus.write_byte_data (0x1C, 0x2A, 0x01)
# Adresă MMA8452Q, 0x1C (28)
# Selectați Registrul de configurare, 0x0E (14)
# 0x00 (00) Setați intervalul la +/- 2g
bus.write_byte_data (0x1C, 0x0E, 0x00)
time.sleep (0,5)
# Adresă MMA8452Q, 0x1C (28)
# Citiți datele înapoi de la 0x00 (0), 7 octeți
# Registrul de stare, Axa X MSB, Axa X LSB, Axa Y MSB, Axa Y LSB, Axa Z MSB, Axa Z LSB
data = bus.read_i2c_block_data (0x1C, 0x00, 7)
# Convertiți datele
xAccl = (date [1] * 256 + date [2]) / 16
dacă xAccl> 2047:
xAccl - = 4096
yAccl = (date [3] * 256 + date [4]) / 16
dacă yAccl> 2047:
yAccl - = 4096 z
Accl = (date [5] * 256 + date [6]) / 16
dacă zAccl> 2047:
zAccl - = 4096
# 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
Pasul 4: Aplicații:
MMA8452Q are diverse aplicații care includ aplicații E-Compass, detecție statică a orientării care încorporează portret / peisaj, sus / jos, stânga / dreapta, identificare poziție spate / față, notebook, e-reader și detectare de cadere și cădere liberă pentru laptop, în timp real detectarea orientării, inclusiv realitatea virtuală și feedback-ul poziției utilizatorului 3D pentru jocuri, analiza activității în timp real, cum ar fi contorizarea pasului pedometrului, detectarea căderilor gratuite pentru HDD, backup GPS calculat și multe altele.