2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
MMA8452Q je chytrý, tříosý, kapacitní, mikroosý akcelerometr s nízkým výkonem a 12bitovým rozlišením. Flexibilní uživatelsky programovatelné možnosti jsou poskytovány pomocí vestavěných funkcí v akcelerometru, konfigurovatelných na dva kolíky přerušení. Má uživatelem volitelná plná měřítka ± 2 g/± 4 g/± 8 g s filtrovanými daty filtrovanými horním průchodem i nefiltrovanými daty, která jsou k dispozici v reálném čase. Zde je jeho ukázka s malinou pi pomocí kódu pythonu.
Krok 1: Co potřebujete..
1. Raspberry Pi
2. MMA8452Q
3. I²C kabel
4. I²C štít pro Raspberry Pi
5. Ethernetový kabel
Krok 2: Připojení:
Vezměte I2C štít pro malinový pi a jemně jej zatlačte přes gpio piny malinového pi.
Poté připojte jeden konec kabelu I2C k senzoru MMA8452Q a druhý konec ke stínění I2C.
Připojte také ethernetový kabel k pí nebo můžete použít modul WiFi.
Připojení jsou znázorněna na obrázku výše.
Krok 3: Kód:
Pythonový kód pro MMA8452Q lze stáhnout z našeho úložiště github- ControlEverythingCommunity
Tady je odkaz.
Pro kód pythonu jsme použili knihovnu SMBus, kroky k instalaci SMBus na Raspberry Pi jsou popsány zde:
pypi.python.org/pypi/smbus-cffi/0.5.1
Odtud můžete také zkopírovat kód, který je uveden následovně:
# Distribuováno s licencí svobodné vůle.
# Použijte jej jakýmkoli způsobem, ať už ziskem nebo zdarma, za předpokladu, že se vejde do licencí souvisejících děl.
# MMA8452Q
# Tento kód je navržen pro práci s mini modulem MMA8452Q_I2CS I2C.
importovat smbus
čas importu
# Získejte autobus I2C
bus = smbus. SMBus (1)
# MMA8452Q adresa, 0x1C (28)
# Vyberte řídicí registr, 0x2A (42)
# 0x00 (00) Standby režim
bus.write_byte_data (0x1C, 0x2A, 0x00)
# MMA8452Q adresa, 0x1C (28)
# Vyberte řídicí registr, 0x2A (42)
# 0x01 (01) Aktivní režim
bus.write_byte_data (0x1C, 0x2A, 0x01)
# MMA8452Q adresa, 0x1C (28)
# Vyberte konfigurační registr, 0x0E (14)
# 0x00 (00) Nastavit rozsah na +/- 2g
bus.write_byte_data (0x1C, 0x0E, 0x00)
time.sleep (0,5)
# MMA8452Q adresa, 0x1C (28)
# Přečtěte data zpět od 0x00 (0), 7 bytů
# Stavový registr, osa X MSB, osa X LSB, osa Y MSB, osa Y LSB, osa Z MSB, osa Z LSB
data = bus.read_i2c_block_data (0x1C, 0x00, 7)
# Převeďte data
xAccl = (data [1] * 256 + data [2]) / 16
pokud xAccl> 2047:
xAccl -= 4096
yAccl = (data [3] * 256 + data [4]) / 16
pokud yAccl> 2047:
yAccl -= 4096 z
Accl = (data [5] * 256 + data [6]) / 16
pokud zAccl> 2047:
zAccl -= 4096
# Výstup dat na obrazovku
tisk "Zrychlení v ose X: %d" %xAccl
tisk "Zrychlení v ose Y: %d" %yAccl
tisk "Zrychlení v ose Z: %d" %zAccl
Krok 4: Aplikace:
MMA8452Q má různé aplikace, které zahrnují aplikace E-Compass, detekci statické orientace, která zahrnuje portrét/krajina, nahoru/dolů, doleva/doprava, identifikace polohy zezadu/zepředu, notebook, elektronická čtečka a detekce pádu a volného pádu notebooku, v reálném čase detekce orientace včetně virtuální reality a hraní 3D zpětná vazba o poloze uživatele, analýza aktivity v reálném čase, jako je počítání kroků krokoměru, detekce pádu volného pádu pro pevný disk, zálohování GPS s mrtvým účtem a mnoho dalšího.