Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
MMA8452Q er et smart, laveffekt, tre-akset, kapasitivt, mikromaskinert akselerometer med 12 bits oppløsning. Fleksible brukerprogrammerbare alternativer tilbys ved hjelp av innebygde funksjoner i akselerometeret, som kan konfigureres til to avbruddspinner. Den har brukervalgbare hele skalaer på ± 2g/± 4g/± 8g med høypassfilterfiltrerte data, så vel som ikke-filtrerte data tilgjengelig i sanntid. Her er demonstrasjonen med bringebær pi ved hjelp av python -kode.
Trinn 1: Hva du trenger..
1. Bringebær Pi
2. MMA8452Q
3. I²C -kabel
4. I²C Shield for Raspberry Pi
5. Ethernet -kabel
Trinn 2: Tilkoblinger:
Ta et I2C -skjold for bringebærpi og skyv det forsiktig over gpio -pinnene til bringebærpi.
Koble deretter den ene enden av I2C -kabelen til MMA8452Q -sensoren og den andre enden til I2C -skjoldet.
Koble også Ethernet -kabelen til pi eller du kan bruke en WiFi -modul.
Tilkoblinger er vist på bildet ovenfor.
Trinn 3: Kode:
Python-koden for MMA8452Q kan lastes ned fra vårt github-depot- ControlEverythingCommunity
Her er lenken.
Vi har brukt SMBus bibliotek for python -kode, trinnene for å installere SMBus på bringebær pi er beskrevet her:
pypi.python.org/pypi/smbus-cffi/0.5.1
Du kan også kopiere koden herfra, den er gitt som følger:
# Distribuert med en fri viljelisens.
# Bruk den slik du vil, profitt eller gratis, forutsatt at den passer inn i lisensene til de tilhørende verkene.
# MMA8452Q
# Denne koden er designet for å fungere med MMA8452Q_I2CS I2C Mini Module.
importer smbus
importtid
# Få I2C -buss
buss = smbus. SMBus (1)
# MMA8452Q adresse, 0x1C (28)
# Velg Kontrollregister, 0x2A (42)
# 0x00 (00) Standby -modus
bus.write_byte_data (0x1C, 0x2A, 0x00)
# MMA8452Q adresse, 0x1C (28)
# Velg Kontrollregister, 0x2A (42)
# 0x01 (01) Aktiv modus
bus.write_byte_data (0x1C, 0x2A, 0x01)
# MMA8452Q adresse, 0x1C (28)
# Velg konfigurasjonsregister, 0x0E (14)
# 0x00 (00) Sett området til +/- 2g
bus.write_byte_data (0x1C, 0x0E, 0x00)
time.sleep (0,5)
# MMA8452Q adresse, 0x1C (28)
# Les data tilbake fra 0x00 (0), 7 byte
# Statusregister, 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)
# Konverter dataene
xAccl = (data [1] * 256 + data [2]) / 16
hvis xAccl> 2047:
xAccl -= 4096
yAccl = (data [3] * 256 + data [4]) / 16
hvis yAccl> 2047:
yAccl -= 4096 z
Accl = (data [5] * 256 + data [6]) / 16
hvis zAccl> 2047:
zAccl -= 4096
# Utdata til skjermen
print "Akselerasjon i X-aksen: %d" %xAccl
print "Akselerasjon i Y-aksen: %d" %yAccl
print "Akselerasjon i Z-aksen: %d" %zAccl
Trinn 4: Søknader:
MMA8452Q har forskjellige applikasjoner som inkluderer E-Kompass-applikasjoner, Statisk orienteringsdeteksjon som inneholder portrett/landskap, opp/ned, venstre/høyre, bak/front posisjonidentifikasjon, bærbar PC, e-leser og bærbar Tumble og Freefall Detection, sanntid orienteringsdeteksjon, inkludert virtuell virkelighet og spill 3D-tilbakemeldinger fra brukerposisjoner, aktivitetsanalyse i sanntid som skrittellersteller, fritt fallgjenkjenning for harddisk, død-beregning av GPS-sikkerhetskopiering og mye mer.