Inhaltsverzeichnis:

Raspberry Pi MMA8452Q 3-Achsen 12-Bit/8-Bit Digitaler Beschleunigungsmesser Python Tutorial - Gunook
Raspberry Pi MMA8452Q 3-Achsen 12-Bit/8-Bit Digitaler Beschleunigungsmesser Python Tutorial - Gunook

Video: Raspberry Pi MMA8452Q 3-Achsen 12-Bit/8-Bit Digitaler Beschleunigungsmesser Python Tutorial - Gunook

Video: Raspberry Pi MMA8452Q 3-Achsen 12-Bit/8-Bit Digitaler Beschleunigungsmesser Python Tutorial - Gunook
Video: BeagleBone Black MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer 'C' Code Tutorial 2024, Juli
Anonim
Image
Image

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.

Was du brauchst..!!
Was du brauchst..!!

1. Himbeer-Pi

2. MMA8452Q

3. I²C-Kabel

4. I²C-Shield für Raspberry Pi

5. Ethernet-Kabel

Schritt 2: Anschlüsse:

Anschlüsse
Anschlüsse
Anschlüsse
Anschlüsse
Anschlüsse
Anschlüsse
Anschlüsse
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:

Code
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.

Empfohlen: