Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
MMA8452Q on älykäs, pienitehoinen, kolmiakselinen, kapasitiivinen, mikrotyöstettävä kiihtyvyysanturi, jonka tarkkuus on 12 bittiä. Joustavat käyttäjän ohjelmoitavat vaihtoehdot on varustettu kiihtyvyysmittarin upotetuilla toiminnoilla, jotka voidaan konfiguroida kahteen keskeytystappiin. Siinä on käyttäjän valittavissa olevat täydet asteikot ± 2 g/± 4 g/± 8 g, joissa on ylipäästösuodattimen suodatettua dataa ja reaaliajassa saatavilla suodattamatonta tietoa. Tässä on sen esittely vadelma pi: llä käyttäen python -koodia.
Vaihe 1: Mitä tarvitset..
1. Vadelma Pi
2. MMA8452Q
3. I²C -kaapeli
4. I²C -kilpi Raspberry Pi: lle
5. Ethernet -kaapeli
Vaihe 2: Liitännät:
Ota I2C -kilpi vadelma pi: lle ja työnnä sitä varovasti vadelma pi: n gpio -nastojen päälle.
Liitä sitten I2C -kaapelin toinen pää MMA8452Q -anturiin ja toinen pää I2C -suojaan.
Liitä myös Ethernet -kaapeli pi: hen tai voit käyttää WiFi -moduulia.
Liitännät näkyvät yllä olevassa kuvassa.
Vaihe 3: Koodi:
MMA8452Q: n python-koodin voi ladata github-arkistostamme- ControlEverythingCommunity
Tässä on linkki.
Olemme käyttäneet SMBus -kirjastoa python -koodille, SMBus -asennuksen vaiheet vadelma pi: lle on kuvattu tässä:
pypi.python.org/pypi/smbus-cffi/0.5.1
Voit myös kopioida koodin täältä, se annetaan seuraavasti:
# Jaetaan vapaaehtoisella lisenssillä.
# Käytä sitä haluamallasi tavalla, voittoa tai ilmaiseksi, jos se sopii siihen liittyvien teosten lisensseihin.
# MMA8452Q
# Tämä koodi on suunniteltu toimimaan MMA8452Q_I2CS I2C Mini -moduulin kanssa.
tuoda smbus
tuonnin aika
# Hanki I2C -bussi
väylä = smbus. SMBus (1)
# MMA8452Q -osoite, 0x1C (28)
# Valitse Ohjausrekisteri, 0x2A (42)
# 0x00 (00) Valmiustila
bus.write_byte_data (0x1C, 0x2A, 0x00)
# MMA8452Q -osoite, 0x1C (28)
# Valitse Ohjausrekisteri, 0x2A (42)
# 0x01 (01) Aktiivinen tila
bus.write_byte_data (0x1C, 0x2A, 0x01)
# MMA8452Q -osoite, 0x1C (28)
# Valitse määritysrekisteri, 0x0E (14)
# 0x00 (00) Aseta alueeksi +/- 2 g
bus.write_byte_data (0x1C, 0x0E, 0x00)
aika. unta (0,5)
# MMA8452Q -osoite, 0x1C (28)
# Lue tiedot takaisin 0x00 (0), 7 tavua
# Tilarekisteri, X-Axis MSB, X-Axis LSB, Y-Axis MSB, Y-Axis LSB, Z-Axis MSB, Z-Axis LSB
data = bus.read_i2c_block_data (0x1C, 0x00, 7)
# Muunna tiedot
xAccl = (data [1] * 256 + data [2]) / 16
jos xAccl> 2047:
xAccl -= 4096
yAccl = (data [3] * 256 + data [4]) / 16
jos yAccl> 2047:
yAccl -= 4096 z
Accl = (data [5] * 256 + data [6]) / 16
jos zAccl> 2047:
zAccl -= 4096
# Tulosta tiedot näytölle
tulosta "Kiihtyvyys X-akselilla: %d" %xAccl
tulosta "Kiihtyvyys Y-akselilla: %d" %yAccl
tulosta "Kiihtyvyys Z-akselilla: %d" %zAccl
Vaihe 4: Sovellukset:
MMA8452Q: ssa on useita sovelluksia, joihin kuuluvat E-kompassisovellukset, staattisen suunnan tunnistus, joka sisältää pystysuuntaisen/vaakasuuntaisen, ylös/alas, vasen/oikea, taka-/etuasennon tunnistuksen, kannettavan, e-lukijan ja kannettavan tietokoneen rummun ja putoamisen tunnistuksen, reaaliaikainen suunnan havaitseminen, mukaan lukien virtuaalitodellisuus ja pelaamisen 3D-käyttäjäpalaute, reaaliaikainen toiminta-analyysi, kuten askelmittarin askellaskenta, vapaapudotuksen havaitseminen kiintolevylle, kuolleen laskennan GPS-varmuuskopiointi ja paljon muuta.