
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-23 15:02


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.

1. Raspberry Pi
2. MMA8452Q
3. Kabel I²C
4. Osłona I²C dla Raspberry Pi
5. Kabel Ethernet
Krok 2: Połączenia:




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 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:
Sterowanie wieloma diodami LED za pomocą Pythona i pinów GPIO Raspberry Pi: 4 kroki (ze zdjęciami)

Kontrolowanie wielu diod LED za pomocą Pythona i pinów GPIO Raspberry Pi: Ta instrukcja pokazuje, jak kontrolować wiele pinów GPIO na RaspberryPi, aby zasilać 4 diody LED. Wprowadzi Cię również do parametrów i instrukcji warunkowych w Pythonie. Nasze poprzednie instrukcje używania pinów GPIO Twojego Raspberry Pi do Con
Akcelerometr kontrolera Xbox 360 / modyfikacja sterowania żyroskopem: 7 kroków

Modyfikacja akcelerometru/żyroskopu kontrolera dla konsoli Xbox 360: Gram w Assetto Corsa na kontrolerze dla konsoli Xbox 360. Niestety sterowanie drążkiem analogowym jest bardzo nieporęczne i nie mam miejsca na ustawienie kół. Próbowałem wymyślić sposoby, w jakie mógłbym wbić lepszy mechanizm kierowniczy do t
Podstawy MPU6050-Akcelerometr + czujnik żyroskopowy: 3 kroki

MPU6050-Akcelerometr + czujnik żyroskopowy Podstawy: MPU6050 jest bardzo przydatnym czujnikiem. MPU 6050 to IMU: Bezwładnościowa jednostka pomiarowa (IMU) to urządzenie elektroniczne, które mierzy i raportuje specyficzną siłę ciała, prędkość kątową, a czasem orientację ciała, stosując kombinację
Akcelerometr Kontroler gier: 8 kroków

Akcelerometr kontroler gier: tekst Voorlopige
Obwody GPIO Raspberry Pi: Korzystanie z czujnika analogowego LDR bez ADC (konwerter analogowo-cyfrowy): 4 kroki

Obwody GPIO Raspberry Pi: Używanie czujnika analogowego LDR bez ADC (konwerter analogowo-cyfrowy): W naszych wcześniejszych Instruktażach pokazaliśmy, jak można połączyć piny GPIO Raspberry Pi z diodami LED i przełącznikami oraz jak piny GPIO mogą być wysokie lub Niski. Ale co, jeśli chcesz używać Raspberry Pi z czujnikiem analogowym? Jeśli chcemy użyć