Mundarija:

Raspberry Pi MMA8452Q 3 o'qli 12-bitli/8-bitli raqamli akselerometrli Java darsligi: 4 qadam
Raspberry Pi MMA8452Q 3 o'qli 12-bitli/8-bitli raqamli akselerometrli Java darsligi: 4 qadam

Video: Raspberry Pi MMA8452Q 3 o'qli 12-bitli/8-bitli raqamli akselerometrli Java darsligi: 4 qadam

Video: Raspberry Pi MMA8452Q 3 o'qli 12-bitli/8-bitli raqamli akselerometrli Java darsligi: 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 java 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 Java kodini bizning GitHub omboridan yuklab olish mumkin- Dcube do'koni

Mana shu havola:

github.com/DcubeTechVentures/MMA8452Q

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

pi4j.com/install.html

Siz bu erdan kodni nusxalashingiz mumkin, u quyidagicha berilgan:

// Ixtiyoriy litsenziya bilan tarqatilgan.

// Agar xohlasangiz, foyda yoki tekin ishlating, agar u tegishli asarlar litsenziyalariga mos kelsa.

// MMA8452Q

// Bu kod Dcube do'konida mavjud MMA8452Q_I2CS I2C Mini moduli bilan ishlash uchun mo'ljallangan.

com.pi4j.io.i2c. I2CBus -ni import qilish;

com.pi4j.io.i2c. I2CDevice -ni import qilish;

com.pi4j.io.i2c. I2CFactory -ni import qilish;

java.io. IOException ni import qilish;

umumiy sinf MMA8452Q

{

public static void main (String args ) istisno qiladi

{

// I2C avtobusini yarating

I2CBus avtobus = I2CFactory.getInstance (I2CBus. BUS_1);

// I2C qurilmasini oling, MMA8452Q I2C manzili 0x1C (28)

I2CDevice qurilmasi = bus.getDevice (0x1C);

// Kutish buyrug'ini yuborish

device.write (0x2A, (bayt) 0x00);

// Faol buyruq yuborish

device.write (0x2A, (bayt) 0x01);

// +/- 2 g gacha bo'lgan diapazonni o'rnating

device.write (0x0E, (bayt) 0x00);

Thread.sleep (500);

// 0x00 (0) manzilidan 7 bayt ma'lumotni o'qing

// Status, X msb, X lsb, Y msb, Y lsb, Z msb, Z lsb

bayt ma'lumotlar = yangi bayt [7];

device.read (0x00, ma'lumotlar, 0, 7);

// Qiymatlarni aylantiring

int xAccl = (((ma'lumotlar [1] & 0xFF) * 256) + (ma'lumotlar [2] & 0xFF)) / 16;

agar (xAccl> 2047)

{

xAccl = xAccl - 4096;

}

int yAccl = (((ma'lumotlar [3] & 0xFF) * 256) + (ma'lumotlar [4] & 0xFF)) / 16;

agar (yAccl> 2047)

{

yAccl = yAccl - 4096;

}

int zAccl = (((ma'lumotlar [5] & 0xFF) * 256) + (ma'lumotlar [6] & 0xFF)) / 16;

agar (zAccl> 2047)

{

zAccl = zAccl - 4096;

}

// Ma'lumotni ekranga chiqarish

System.out.printf ("X o'qi: %d %n", xAccl);

System.out.printf ("Y o'qi: %d %n", yAccl);

System.out.printf ("Z o'qi: %d %n", 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: