Inhoudsopgave:

Raspberry Pi MMA8452Q 3-Axis 12-bit/8-bit Digitale Accelerometer Python Tutorial - Ajarnpa
Raspberry Pi MMA8452Q 3-Axis 12-bit/8-bit Digitale Accelerometer Python Tutorial - Ajarnpa

Video: Raspberry Pi MMA8452Q 3-Axis 12-bit/8-bit Digitale Accelerometer Python Tutorial - Ajarnpa

Video: Raspberry Pi MMA8452Q 3-Axis 12-bit/8-bit Digitale Accelerometer Python Tutorial - Ajarnpa
Video: Raspberry Pi MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Python Tutorial 2024, November
Anonim
Image
Image

De MMA8452Q is een slimme, energiezuinige, drie-assige, capacitieve, micromachined accelerometer met 12 bits resolutie. Flexibele door de gebruiker programmeerbare opties worden geboden met behulp van ingebouwde functies in de accelerometer, configureerbaar tot twee interrupt-pinnen. Het heeft door de gebruiker selecteerbare volledige schalen van ±2g/±4g/±8g met high-pass filter gefilterde data en niet-gefilterde data die in realtime beschikbaar zijn. Hier is de demonstratie met raspberry pi met behulp van python-code.

Stap 1: Wat je nodig hebt.

Wat je nodig hebt..!!
Wat je nodig hebt..!!

1. Raspberry Pi

2. MMA8452Q

3. I²C-kabel

4. I²C-schild voor Raspberry Pi

5. Ethernet-kabel

Stap 2: Aansluitingen:

Aansluitingen
Aansluitingen
Aansluitingen
Aansluitingen
Aansluitingen
Aansluitingen
Aansluitingen
Aansluitingen

Neem een I2C-schild voor Raspberry Pi en duw het voorzichtig over de gpio-pinnen van Raspberry Pi.

Sluit vervolgens het ene uiteinde van de I2C-kabel aan op de MMA8452Q-sensor en het andere uiteinde op de I2C-afscherming.

Sluit ook de Ethernet-kabel aan op de pi of u kunt een WiFi-module gebruiken.

De aansluitingen zijn weergegeven in de afbeelding hierboven.

Stap 3: Coderen:

Code
Code

De python-code voor MMA8452Q kan worden gedownload van onze github-repository- ControlEverythingCommunity

Hier is de link.

We hebben de SMBus-bibliotheek gebruikt voor python-code, de stappen om SMBus op raspberry pi te installeren worden hier beschreven:

pypi.python.org/pypi/smbus-cffi/0.5.1

U kunt de code ook hier kopiëren, deze wordt als volgt gegeven:

# Gedistribueerd met een vrije wilslicentie.

# Gebruik het zoals je wilt, winst of gratis, op voorwaarde dat het past in de licenties van de bijbehorende werken.

# MMA8452Q

# Deze code is ontworpen om te werken met de MMA8452Q_I2CS I2C Mini Module.

import smbus

import tijd

# Krijg I2C-bus

bus = smbus. SMBus(1)

# MMA8452Q adres, 0x1C(28)

# Selecteer Besturingsregister, 0x2A(42)

# 0x00(00) Standby-modus

bus.write_byte_data(0x1C, 0x2A, 0x00)

# MMA8452Q adres, 0x1C(28)

# Selecteer Besturingsregister, 0x2A(42)

# 0x01(01) Actieve modus

bus.write_byte_data(0x1C, 0x2A, 0x01)

# MMA8452Q adres, 0x1C(28)

# Selecteer Configuratieregister, 0x0E(14)

# 0x00(00) Stel bereik in op +/- 2g

bus.write_byte_data(0x1C, 0x0E, 0x00)

tijd.slaap(0.5)

# MMA8452Q adres, 0x1C(28)

# Lees gegevens terug van 0x00 (0), 7 bytes

# 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)

# Converteer de gegevens

xAccl = (gegevens[1] * 256 + gegevens[2]) / 16

als xAccl > 2047:

xAccl -= 4096

yAccl = (gegevens[3] * 256 + gegevens[4]) / 16

indien yAccl > 2047:

yAccl -= 4096 z

Accl = (gegevens[5] * 256 + gegevens[6]) / 16

als zAccl > 2047:

zAccl -= 4096

# Gegevens uitvoeren naar scherm

print "Versnelling in X-as: %d" %xAccl

print "Versnelling in Y-as: %d" %yAccl

print "Versnelling in Z-as: %d" %zAccl

Stap 4: Toepassingen:

MMA8452Q heeft verschillende toepassingen, waaronder E-kompas-toepassingen, detectie van statische oriëntatie met detectie van portret/landschap, omhoog/omlaag, links/rechts, positie-identificatie achter/voor, notebook, e-reader en tuimel- en vrije valdetectie van laptops, realtime oriëntatiedetectie inclusief virtual reality en gaming 3D-gebruikerspositiefeedback, real-time activiteitenanalyse zoals stappenteller tellen, vrije val-valdetectie voor HDD, gegist bestede GPS-back-up en nog veel meer.

Aanbevolen: