Съдържание:

Raspberry Pi MMA8452Q 3-ос 12-битов/8-битов цифров акселерометър Java Урок: 4 стъпки
Raspberry Pi MMA8452Q 3-ос 12-битов/8-битов цифров акселерометър Java Урок: 4 стъпки
Anonim
Image
Image

MMA8452Q е интелигентен, триосен, капацитивен, микромашинен акселерометър с ниска мощност с 12 бита резолюция. Гъвкавите програмируеми от потребителя опции се предлагат с помощта на вградени функции в акселерометъра, конфигурирани с два прекъсвания. Той има избираеми от потребителя пълни скали от ± 2 g/± 4 g/± 8 g с високочестотни филтрирани данни, както и нефилтрирани данни, налични в реално време. Ето демонстрацията му с малиново пи, използващо Java код.

Стъпка 1: Какво ви трябва..

От какво имаш нужда..!!
От какво имаш нужда..!!

1. Малина Пи

2. MMA8452Q

3. Кабел I²C

4. I²C щит за Raspberry Pi

5. Ethernet кабел

Стъпка 2: Връзки:

Връзки
Връзки
Връзки
Връзки
Връзки
Връзки
Връзки
Връзки

Вземете I2C щит за малиново пи и внимателно го натиснете върху щифтовете на gpio на малиново пи.

След това свържете единия край на I2C кабела към сензора MMA8452Q, а другия край към I2C щита.

Свържете също Ethernet кабела към pi или можете да използвате WiFi модул.

Връзките са показани на снимката по -горе.

Стъпка 3: Код:

Код
Код

Java кодът за MMA8452Q може да бъде изтеглен от нашето хранилище на GitHub- Dcube Store

Ето линк за същото:

github.com/DcubeTechVentures/MMA8452Q

Използвахме библиотека pi4j за java код, стъпките за инсталиране на pi4j на raspberry pi са описани тук:

pi4j.com/install.html

Можете също да копирате кода от тук, той е даден, както следва:

// Разпространява се с лиценз за свободна воля.

// Използвайте го по какъвто начин искате, печалба или безплатно, при условие че се вписва в лицензите на свързаните с него произведения.

// MMA8452Q

// Този код е проектиран да работи с MMA8452Q_I2CS I2C мини модул, наличен в Dcube Store.

внос com.pi4j.io.i2c. I2CBus;

внос com.pi4j.io.i2c. I2CDevice;

внос com.pi4j.io.i2c. I2CFactory;

импортиране на java.io. IOException;

публичен клас MMA8452Q

{

public static void main (String args ) хвърля Exception

{

// Създаване на I2C шина

I2CBus шина = I2CFactory.getInstance (I2CBus. BUS_1);

// Вземете I2C устройство, MMA8452Q I2C адресът е 0x1C (28)

I2CDevice устройство = bus.getDevice (0x1C);

// Изпращане на команда в режим на готовност

device.write (0x2A, (байт) 0x00);

// Изпращане на активна команда

device.write (0x2A, (байт) 0x01);

// Задайте диапазон до +/- 2g

device.write (0x0E, (байт) 0x00);

Thread.sleep (500);

// Прочетете 7 байта данни от адрес 0x00 (0)

// Състояние, X msb, X lsb, Y msb, Y lsb, Z msb, Z lsb

байт данни = нов байт [7];

device.read (0x00, данни, 0, 7);

// Конвертираме стойностите

int xAccl = (((данни [1] & 0xFF) * 256) + (данни [2] & 0xFF)) / 16;

ако (xAccl> 2047)

{

xAccl = xAccl - 4096;

}

int yAccl = (((данни [3] & 0xFF) * 256) + (данни [4] & 0xFF)) / 16;

ако (yAccl> 2047)

{

yAccl = yAccl - 4096;

}

int zAccl = (((данни [5] & 0xFF) * 256) + (данни [6] & 0xFF)) / 16;

ако (zAccl> 2047)

{

zAccl = zAccl - 4096;

}

// Извеждане на данни на екрана

System.out.printf ("X-ос: %d %n", xAccl);

System.out.printf ("Y-ос: %d %n", yAccl);

System.out.printf ("Z-ос: %d %n", zAccl);

}

}

Стъпка 4: Приложения:

MMA8452Q има различни приложения, които включват приложения за електронни компаси, разпознаване на статична ориентация, които включват портрет/пейзаж, нагоре/надолу, наляво/надясно, идентификация на позицията отзад/отпред, преносим компютър, електронен четец и откриване на преобръщане и свободно падане в реално време откриване на ориентация, включително виртуална реалност и игрална 3D обратна връзка за позицията на потребителя, анализ на активността в реално време, като броене на стъпки на крачкомер, откриване на падане на свободно падане за твърд диск, резервно копие на GPS с мъртви данни и много други.

Препоръчано: