Mundarija:

Raspberry Pi - ADXL345 3 o'qli akselerometr Java darsligi: 4 qadam
Raspberry Pi - ADXL345 3 o'qli akselerometr Java darsligi: 4 qadam

Video: Raspberry Pi - ADXL345 3 o'qli akselerometr Java darsligi: 4 qadam

Video: Raspberry Pi - ADXL345 3 o'qli akselerometr Java darsligi: 4 qadam
Video: Raspberry Pi Accelerometer using the ADXL345 2024, Iyun
Anonim
Image
Image

ADXL345-bu kichik, ingichka, ultra quvvatli, 3 o'qli akselerometr, yuqori aniqlikdagi (13 bitli) ± 16 g gacha. Raqamli chiqish ma'lumotlari 16 bitli ikkita qo'shimcha sifatida formatlangan va I2 C raqamli interfeysi orqali kirish mumkin. Nishab olishda tortishish statik tezlanishini, shuningdek harakat yoki zarba natijasida dinamik tezlanishni o'lchaydi. Uning yuqori aniqligi (3,9 mg/LSB) moyillik o'zgarishlarini 1,0 ° dan past o'lchash imkonini beradi. Bu erda malina pi bilan Java kodi yordamida namoyish.

1 -qadam: Sizga nima kerak.. !

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

1. Raspberry Pi

2. ADXL345

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 ADXL345 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

ADXL345 uchun java kodini bizning GitHub omboridan yuklab olish mumkin- Dcube do'koni

Mana shu havola:

github.com/DcubeTechVentures/ADXL345

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.

// ADXL345

// Bu kod Dcube do'konida mavjud ADXL345_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 ADXL345

{

public static void main (String args ) istisno qiladi

{

// I2C avtobusini yarating

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

// I2C qurilmasini oling, qurilma I2C manzili 0x53 (83)

I2CDevice qurilmasi = Bus.getDevice (0x53);

// Tarmoqli kengligi tezligi registrini tanlang

// Oddiy rejim, Chiqish ma'lumoti tezligi = 100 Gts

device.write (0x2C, (bayt) 0x0A);

// Quvvatni boshqarish registrini tanlang

// Avtomatik uyquni o'chirish

device.write (0x2D, (bayt) 0x08);

// Ma'lumotlar formati registrini tanlang

// O'z-o'zini sinab ko'rish o'chirilgan, 4 simli interfeys, To'liq aniqlik, diapazon = +/- 2g

device.write (0x31, (bayt) 0x08);

Thread.sleep (500);

// 6 bayt ma'lumotni o'qing

// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb

bayt ma'lumotlar = yangi bayt [6];

ma'lumotlar [0] = (bayt) device.read (0x32);

ma'lumotlar [1] = (bayt) device.read (0x33);

ma'lumotlar [2] = (bayt) device.read (0x34);

ma'lumotlar [3] = (bayt) device.read (0x35);

ma'lumotlar [4] = (bayt) device.read (0x36);

ma'lumotlar [5] = (bayt) device.read (0x37);

// Ma'lumotni 10 bitga aylantiring

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

agar (xAccl> 511)

{

xAccl -= 1024;

}

int yAccl = ((ma'lumotlar [3] & 0x03) * 256 + (ma'lumotlar [2] & 0xFF));

agar (yAccl> 511)

{

yAccl -= 1024;

}

int zAccl = ((ma'lumotlar [5] & 0x03) * 256 + (ma'lumotlar [4] & 0xFF));

agar (zAccl> 511)

{

zAccl -= 1024;

}

// Ma'lumotni ekranga chiqarish

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

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

System.out.printf ("Z o'qida tezlashtirish: %d %n", zAccl);

}

}

4 -qadam: Ilovalar:

ADXL345-bu kichik, ingichka, ultra quvvatli, 3 o'qli akselerometr bo'lib, u telefonlar, tibbiy asboblar va boshqalarda qo'llanilishi mumkin. O'yin va ishora asboblari, sanoat asboblari, shaxsiy navigatsiya qurilmalari va qattiq disk (HDD) himoyasini o'z ichiga oladi.

Tavsiya: