2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
Die MMA8452Q is 'n slim, lae-krag, drie-as, kapasitiewe, mikromasjiene versnellingsmeter met 12 bisse resolusie. Buigsame gebruikersprogrammeerbare opsies word voorsien met behulp van ingebedde funksies in die versnellingsmeter, wat op twee onderbrekingspenne ingestel kan word. Dit het volledige gebruikersskale van ± 2g/± 4g/± 8g wat deur die gebruiker gekies kan word, met hoëpasfilter gefiltreerde data, sowel as nie-gefilterde data wat intyds beskikbaar is. Hier is die demonstrasie daarvan met framboos pi met behulp van python -kode.
Stap 1: wat u nodig het..
1. Framboos Pi
2. MMA8452Q
3. I²C -kabel
4. I²C -skild vir Framboos Pi
5. Ethernet -kabel
Stap 2: Verbindings:
Neem 'n I2C skild vir framboos pi en druk dit liggies oor die gpio penne van framboos pi.
Koppel dan die een kant van die I2C -kabel aan die MMA8452Q -sensor en die ander kant aan die I2C -skild.
Koppel ook die Ethernet -kabel aan die pi, of u kan 'n WiFi -module gebruik.
Verbindings word op die foto hierbo getoon.
Stap 3: Kode:
Die python-kode vir MMA8452Q kan afgelaai word vanaf ons github-bewaarplek- ControlEverythingCommunity
Hier is die skakel.
Ons het SMBus -biblioteek gebruik vir python -kode, die stappe om SMBus op framboos pi te installeer word hier beskryf:
pypi.python.org/pypi/smbus-cffi/0.5.1
U kan die kode ook hiervandaan kopieer; dit word soos volg gegee:
# Versprei met 'n vrywillige lisensie.
# Gebruik dit soos u wil, wins of gratis, mits dit in die lisensies van die gepaardgaande werke pas.
# MMA8452Q
# Hierdie kode is ontwerp om te werk met die MMA8452Q_I2CS I2C Mini Module.
invoer smbus
invoer tyd
# Kry I2C -bus
bus = smbus. SMBus (1)
# MMA8452Q adres, 0x1C (28)
# Kies Beheerregister, 0x2A (42)
# 0x00 (00) Standby -modus
bus.write_byte_data (0x1C, 0x2A, 0x00)
# MMA8452Q adres, 0x1C (28)
# Kies Beheerregister, 0x2A (42)
# 0x01 (01) Aktiewe modus
bus.write_byte_data (0x1C, 0x2A, 0x01)
# MMA8452Q adres, 0x1C (28)
# Kies Configuration register, 0x0E (14)
# 0x00 (00) Stel die reeks op +/- 2g
bus.write_byte_data (0x1C, 0x0E, 0x00)
tyd. slaap (0,5)
# MMA8452Q adres, 0x1C (28)
# Lees data terug van 0x00 (0), 7 grepe
# Statusregister, X-as MSB, X-as LSB, Y-as MSB, Y-as LSB, Z-as MSB, Z-as LSB
data = bus.read_i2c_block_data (0x1C, 0x00, 7)
# Skakel die data om
xAccl = (data [1] * 256 + data [2]) / 16
as xAccl> 2047:
xAccl -= 4096
yAccl = (data [3] * 256 + data [4]) / 16
as yAccl> 2047:
yAccl -= 4096 z
Accl = (data [5] * 256 + data [6]) / 16
as zAccl> 2047:
zAccl -= 4096
# Uitset data na die skerm
print "Versnelling in X-as: %d" %xAccl
print "Versnelling in Y-as: %d" %yAccl
print "Versnelling in Z-as: %d" %zAccl
Stap 4: Aansoeke:
MMA8452Q het verskillende toepassings, waaronder E-kompas-toepassings, statiese oriëntasie-opsporing, wat portret/landskap, op/af, links/regs, identifikasie van agter-/voorposisie, notaboek, e-reader en opsporing van draagbare en valbare skootrekenaars insluit, intyds oriëntasie-opsporing, insluitend virtuele werklikheid en terugvoer oor 3D-gebruikersposisies van gebruikers, intydse aktiwiteitsanalise soos stappenteller, vryvalopsporing vir HDD, GPS-rugsteun met afrekening en nog baie meer.