Spisu treści:

Raspberry Pi MMA8452Q 3-osiowy 12-bitowy/8-bitowy cyfrowy akcelerometr - samouczek Pythona: 4 kroki
Raspberry Pi MMA8452Q 3-osiowy 12-bitowy/8-bitowy cyfrowy akcelerometr - samouczek Pythona: 4 kroki

Wideo: Raspberry Pi MMA8452Q 3-osiowy 12-bitowy/8-bitowy cyfrowy akcelerometr - samouczek Pythona: 4 kroki

Wideo: Raspberry Pi MMA8452Q 3-osiowy 12-bitowy/8-bitowy cyfrowy akcelerometr - samouczek Pythona: 4 kroki
Wideo: Raspberry Pi MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Java Tutorial 2024, Lipiec
Anonim
Image
Image

MMA8452Q to inteligentny, energooszczędny, trójosiowy, pojemnościowy akcelerometr z 12-bitową rozdzielczością. Elastyczne opcje programowalne przez użytkownika są dostarczane za pomocą wbudowanych funkcji w akcelerometrze, konfigurowalnych do dwóch styków przerwań. Posiada wybierane przez użytkownika pełne skale ±2g/±4g/±8g z filtrowanymi danymi filtra górnoprzepustowego, a także niefiltrowanymi danymi dostępnymi w czasie rzeczywistym. Oto jego demonstracja z raspberry pi przy użyciu kodu Pythona.

Krok 1: Czego potrzebujesz.

Czego potrzebujesz..!!
Czego potrzebujesz..!!

1. Raspberry Pi

2. MMA8452Q

3. Kabel I²C

4. Osłona I²C dla Raspberry Pi

5. Kabel Ethernet

Krok 2: Połączenia:

Znajomości
Znajomości
Znajomości
Znajomości
Znajomości
Znajomości
Znajomości
Znajomości

Weź nakładkę I2C dla raspberry pi i delikatnie nałóż ją na piny gpio raspberry pi.

Następnie podłącz jeden koniec kabla I2C do czujnika MMA8452Q, a drugi koniec do ekranu I2C.

Podłącz również kabel Ethernet do pi lub możesz użyć modułu WiFi.

Połączenia prezentuje powyższy obrazek.

Krok 3: Kod:

Kod
Kod

Kod Pythona dla MMA8452Q można pobrać z naszego repozytorium github - ControlEverythingCommunity

Tutaj jest link.

Użyliśmy biblioteki SMBus do kodu Pythona, kroki instalacji SMBus na raspberry pi są opisane tutaj:

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

Możesz również skopiować kod stąd, jest on podany w następujący sposób:

# Rozprowadzany z wolną licencją.

# Używaj go w dowolny sposób, z zyskiem lub za darmo, pod warunkiem, że pasuje do licencji powiązanych z nim utworów.

# MMA8452Q

# Ten kod jest przeznaczony do pracy z minimodułem MMA8452Q_I2CS I2C.

importuj smbus

czas importu

# Uzyskaj magistralę I2C

autobus = smbus. SMBus(1)

# Adres MMA8452Q, 0x1C(28)

# Wybierz rejestr kontrolny, 0x2A(42)

# 0x00(00) Tryb czuwania

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

# Adres MMA8452Q, 0x1C(28)

# Wybierz rejestr kontrolny, 0x2A(42)

# 0x01(01) Tryb aktywny

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

# Adres MMA8452Q, 0x1C(28)

# Wybierz rejestr konfiguracji, 0x0E(14)

# 0x00(00) Ustaw zakres na +/- 2g

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

czas.sen(0.5)

# Adres MMA8452Q, 0x1C(28)

# Odczytaj dane z powrotem z 0x00(0), 7 bajtów

# Rejestr statusu, Oś X MSB, Oś X LSB, Oś Y MSB, Oś Y LSB, Oś Z MSB, Oś Z LSB

dane = bus.read_i2c_block_data(0x1C, 0x00, 7)

# Konwertuj dane

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

jeśli xAccl > 2047:

xAccl -= 4096

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

jeśli yAccl > 2047:

yAccl -= 4096 z

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

jeśli zAccl > 2047:

zZak -= 4096

# Dane wyjściowe na ekran

print "Przyspieszenie w osi X: %d" %xAccl

print "Przyspieszenie w osi Y: %d" %yAccl

print "Przyspieszenie w osi Z: %d" %zAccl

Krok 4: Aplikacje:

MMA8452Q ma różne aplikacje, w tym aplikacje E-kompas, wykrywanie orientacji statycznej, która obejmuje orientację pionową/poziomą, góra/dół, lewo/prawo, tył/przód, notebook, czytnik e-booków oraz wykrywanie upadku i upadku laptopa, w czasie rzeczywistym wykrywanie orientacji, w tym wirtualna rzeczywistość i informacje zwrotne o pozycji użytkownika w grach 3D, analiza aktywności w czasie rzeczywistym, taka jak liczenie kroków krokomierza, wykrywanie swobodnego spadania na dysk twardy, kopia zapasowa GPS z funkcją martwego liczenia i wiele więcej.

Zalecana: