Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
Der MMA8452Q ist ein intelligenter, stromsparender, dreiachsiger, kapazitiver, mikrobearbeiteter Beschleunigungsmesser mit 12 Bit Auflösung. Flexible, vom Benutzer programmierbare Optionen werden mit Hilfe eingebetteter Funktionen im Beschleunigungsmesser bereitgestellt, die auf zwei Interrupt-Pins konfigurierbar sind. Es verfügt über vom Benutzer wählbare Skalenendwerte von ±2g/±4g/±8g mit hochpassfiltergefilterten Daten sowie ungefilterten Daten, die in Echtzeit verfügbar sind. Hier ist die Demonstration mit Himbeer-Pi mit Python-Code.
Schritt 1: Was Sie brauchen.
1. Himbeer-Pi
2. MMA8452Q
3. I²C-Kabel
4. I²C-Shield für Raspberry Pi
5. Ethernet-Kabel
Schritt 2: Anschlüsse:
Nehmen Sie ein I2C-Schild für Himbeer-Pi und schieben Sie es vorsichtig über die gpio-Pins von Himbeer-Pi.
Verbinden Sie dann das eine Ende des I2C-Kabels mit dem MMA8452Q-Sensor und das andere Ende mit der I2C-Abschirmung.
Verbinden Sie auch das Ethernet-Kabel mit dem Pi oder verwenden Sie ein WiFi-Modul.
Die Anschlüsse sind im Bild oben dargestellt.
Schritt 3: Code:
Der Python-Code für MMA8452Q kann von unserem Github-Repository heruntergeladen werden - ControlEverythingCommunity
Hier ist der Link.
Wir haben die SMBus-Bibliothek für Python-Code verwendet, die Schritte zur Installation von SMBus auf Raspberry Pi sind hier beschrieben:
pypi.python.org/pypi/smbus-cffi/0.5.1
Sie können den Code auch von hier kopieren, er wird wie folgt angegeben:
# Wird mit freier Lizenz verteilt.
# Verwenden Sie es nach Belieben, gewinnbringend oder kostenlos, sofern es in die Lizenzen der zugehörigen Werke passt.
# MMA8452Q
# Dieser Code wurde entwickelt, um mit dem MMA8452Q_I2CS I2C Mini-Modul zu arbeiten.
smbus importieren
Importzeit
# Holen Sie sich den I2C-Bus
bus = smbus. SMBus(1)
# MMA8452Q-Adresse, 0x1C(28)
# Steuerregister auswählen, 0x2A(42)
# 0x00(00) Standby-Modus
bus.write_byte_data(0x1C, 0x2A, 0x00)
# MMA8452Q-Adresse, 0x1C(28)
# Steuerregister auswählen, 0x2A(42)
# 0x01(01) Aktiver Modus
bus.write_byte_data(0x1C, 0x2A, 0x01)
# MMA8452Q-Adresse, 0x1C(28)
# Konfigurationsregister auswählen, 0x0E(14)
# 0x00(00) Bereich auf +/- 2g. setzen
bus.write_byte_data(0x1C, 0x0E, 0x00)
time.sleep(0.5)
# MMA8452Q-Adresse, 0x1C(28)
# Daten von 0x00(0), 7 Bytes zurücklesen
# Statusregister, X-Achsen-MSB, X-Achsen-LSB, Y-Achsen-MSB, Y-Achsen-LSB, Z-Achsen-MSB, Z-Achsen-LSB
data = bus.read_i2c_block_data(0x1C, 0x00, 7)
# Konvertieren Sie die Daten
xAccl = (Daten[1] * 256 + Daten[2]) / 16
wenn xAccl > 2047:
xAccl -= 4096
yAccl = (Daten[3] * 256 + Daten[4]) / 16
wenn yAccl > 2047:
yAccl -= 4096 z
Accl = (Daten[5] * 256 + Daten[6]) / 16
wenn zAccl > 2047:
zAccl -= 4096
# Daten auf den Bildschirm ausgeben
print "Beschleunigung in X-Achse: %d" %xAccl
print "Beschleunigung in Y-Achse: %d" %yAccl
print "Beschleunigung in Z-Achse: %d" %zAccl
Schritt 4: Anwendungen:
MMA8452Q verfügt über verschiedene Anwendungen, darunter E-Kompass-Anwendungen, statische Orientierungserkennung, die Hochformat/Querformat, Oben/Unten, Links/Rechts, Hinten/Vorder-Positionserkennung, Notebook, E-Reader und Laptop-Sturz- und Freifall-Erkennung in Echtzeit umfasst Orientierungserkennung einschließlich Virtual Reality und Gaming 3D-Benutzerpositions-Feedback, Echtzeit-Aktivitätsanalyse wie Schrittzähler, Freifall-Erkennung für HDD, Koppelnavigations-GPS-Backup und vieles mehr.