Mundarija:

Raspberry Pi MMA8452Q 3 o'qli 12-bitli/8-bitli raqamli akselerometr Python qo'llanmasi: 4 qadam
Raspberry Pi MMA8452Q 3 o'qli 12-bitli/8-bitli raqamli akselerometr Python qo'llanmasi: 4 qadam

Video: Raspberry Pi MMA8452Q 3 o'qli 12-bitli/8-bitli raqamli akselerometr Python qo'llanmasi: 4 qadam

Video: Raspberry Pi MMA8452Q 3 o'qli 12-bitli/8-bitli raqamli akselerometr Python qo'llanmasi: 4 qadam
Video: Raspberry Pi MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Java Tutorial 2024, Noyabr
Anonim
Image
Image

MMA8452Q-aqlli, kam quvvatli, uch o'qli, sig'imli, mikromashinali 12 bitli o'lchamli akselerometr. Foydalanuvchilar tomonidan dasturlashtiriladigan moslashuvchan variantlar akselerometrga o'rnatilgan ikkita funktsiya yordamida ta'minlanadi, ular ikkita uzilish pimiga o'rnatiladi. U ± 2g/± 4g/± 8g foydalanuvchi tomonidan tanlanishi mumkin bo'lgan to'liq o'lchovlarga ega, yuqori o'tkazuvchan filtrli filtrlangan ma'lumotlar va real vaqtda mavjud bo'lgan filtrlanmagan ma'lumotlar. Bu erda python kodi yordamida malina pi bilan namoyish.

1 -qadam: Sizga nima kerak.. !

Sizga nima kerak.. !!
Sizga nima kerak.. !!

1. Raspberry Pi

2. MMA8452Q

3. I²C kabeli

4. Raspberry Pi uchun I²C qalqoni

5. Ethernet kabeli

2 -qadam: Ulanishlar:

Ulanishlar
Ulanishlar
Ulanishlar
Ulanishlar
Ulanishlar
Ulanishlar
Ulanishlar
Ulanishlar

Malinali pi uchun I2C qalqonini oling va uni malina pi gpio pimlariga sekin suring.

Keyin I2C kabelining bir uchini MMA8452Q sensoriga, ikkinchi uchini esa I2C ekraniga ulang.

Ethernet kabelini pi -ga ulang yoki WiFi modulidan foydalanishingiz mumkin.

Ulanishlar yuqoridagi rasmda ko'rsatilgan.

3 -qadam: Kod:

Kod
Kod

MMA8452Q uchun python kodini bizning github omboridan yuklab olish mumkin- ControlEverythingCommunity

Mana havola.

Biz python kodi uchun SMBus kutubxonasidan foydalandik, malina pi ga SMBus o'rnatish bosqichlari bu erda tasvirlangan:

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

Siz bu erdan kodni nusxalashingiz mumkin, u quyidagicha berilgan:

# Ixtiyoriy litsenziya bilan tarqatilgan.

# Agar xohlasang, foyda yoki tekin, agar u tegishli ish litsenziyalariga mos keladigan bo'lsa, ishlat.

# MMA8452Q

# Bu kod MMA8452Q_I2CS I2C Mini moduli bilan ishlash uchun mo'ljallangan.

smbus import qilish

import vaqti

# I2C avtobusini oling

avtobus = smbus. SMBus (1)

# MMA8452Q manzili, 0x1C (28)

# Boshqarish registrini tanlang, 0x2A (42)

# 0x00 (00) kutish rejimi

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

# MMA8452Q manzili, 0x1C (28)

# Boshqarish registrini tanlang, 0x2A (42)

# 0x01 (01) Faol rejim

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

# MMA8452Q manzili, 0x1C (28)

# Konfiguratsiya registrini tanlang, 0x0E (14)

# 0x00 (00) +/- 2g oralig'ini o'rnating

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

vaqt uyqu (0,5)

# MMA8452Q manzili, 0x1C (28)

# Ma'lumotni 0x00 (0), 7 baytdan qaytarib o'qing

# Status reestri, X-Axis MSB, X-Axis LSB, Y-Axis MSB, Y-Axis LSB, Z-Axis MSB, Z-Axis LSB

ma'lumotlar = bus.read_i2c_block_data (0x1C, 0x00, 7)

# Ma'lumotni aylantirish

xAccl = (ma'lumotlar [1] * 256 + ma'lumotlar [2]) / 16

agar xAccl> 2047:

xAccl -= 4096

yAccl = (ma'lumotlar [3] * 256 + ma'lumotlar [4]) / 16

agar yAccl> 2047:

yAccl -= 4096 z

Accl = (ma'lumotlar [5] * 256 + ma'lumotlar [6]) / 16

agar zAccl> 2047:

zAccl -= 4096

# Ma'lumotlarni ekranga chiqarish

chop etish "X o'qida tezlashtirish: %d" %xAccl

chop etish "Y o'qida tezlashtirish: %d" %yAccl

chop etish "Z o'qida tezlashtirish: %d" %zAccl

4 -qadam: Ilovalar:

MMA8452Q turli xil ilovalarga ega, ular orasida elektron kompas ilovalari, statik yo'nalishni aniqlash, portret/landshaft, yuqoriga/pastga, chapga/o'ngga, orqaga/oldingi holatni aniqlash, daftar, elektron o'quvchi, noutbukning qulashi va tushishini aniqlash, real vaqtda. yo'nalishlarni aniqlash, shu jumladan virtual haqiqat va o'yindagi 3D foydalanuvchi pozitsiyasi haqidagi fikr-mulohazalar, pedometr qadamlarini sanash, HDD uchun tushishni aniqlash, o'lik hisob-kitobli GPS zaxirasi va boshqalar kabi real vaqtda faoliyatni tahlil qilish.

Tavsiya: