Мазмуну:

Raspberry Pi - ADXL345 3 -Axis Accelerometer Java үйрөткүчү: 4 кадам
Raspberry Pi - ADXL345 3 -Axis Accelerometer Java үйрөткүчү: 4 кадам

Video: Raspberry Pi - ADXL345 3 -Axis Accelerometer Java үйрөткүчү: 4 кадам

Video: Raspberry Pi - ADXL345 3 -Axis Accelerometer Java үйрөткүчү: 4 кадам
Video: Input Shaper with a Pi Pico - Klipper Tips 2024, Ноябрь
Anonim
Image
Image

ADXL345-кичине, ичке, ультра кубаттуу, 3 октук акселерометр, ± 16 г чейин жогорку чечилиште (13-бит) өлчөө. Санарип чыгуучу маалыматтар 16-бит эки катары толукталган жана I2 C санариптик интерфейси аркылуу жеткиликтүү. Бул эңкейүүнү сезүүчү колдонмолордо тартылуу күчүнүн статикалык ылдамдатуусун, ошондой эле кыймылдан же шоктон келип чыккан динамикалык ылдамданууну өлчөйт. Анын жогорку токтому (3,9 мг/LSB) жантайыштын өзгөрүүсүн 1,0 ° дан аз өлчөөгө мүмкүндүк берет. Бул жерде Java кодун колдонуп, малина пи менен демонстрация.

1 -кадам: Сизге эмне керек..

Сизге эмне керек.. !!
Сизге эмне керек.. !!

1. Raspberry Pi

2. ADXL345

3. I²C кабели

4. Raspberry Pi үчүн I²C Shield

5. Ethernet кабели

2 -кадам: Байланыштар:

Байланыштар
Байланыштар
Байланыштар
Байланыштар
Байланыштар
Байланыштар
Байланыштар
Байланыштар

Малина пи үчүн I2C калканчын алыңыз жана аны акырын малинанын пи gpio казыктарынын үстүнө басыңыз.

Андан кийин I2C кабелинин бир учун ADXL345 сенсоруна, экинчи башын I2C калканчына туташтырыңыз.

Ethernet кабелин пи -ге туташтырыңыз же WiFi модулун колдонсоңуз болот.

Байланыштар жогорудагы сүрөттө көрсөтүлгөн.

3 -кадам: Код:

Код
Код

ADXL345 үчүн java кодун биздин GitHub репозиторийинен көчүрүп алсаңыз болот- Dcube Store

Мына ушуга шилтеме:

github.com/DcubeTechVentures/ADXL345

Биз Java коду үчүн pi4j китепканасын колдондук, малина piге pi4j орнотуу кадамдары бул жерде сүрөттөлгөн:

pi4j.com/install.html

Сиз бул жерден кодду көчүрүп алсаңыз болот, ал төмөнкүчө берилген:

// Эркин лицензия менен таратылган.

// Аны каалагандай колдон, пайда же бекер, эгер ал ага байланыштуу чыгармаларынын лицензиясына туура келсе.

// ADXL345

// Бул код Dcube дүкөнүндө бар ADXL345_I2CS I2C Mini модулу менен иштөө үчүн иштелип чыккан.

com.pi4j.io.i2c. I2CBus импорттоо;

com.pi4j.io.i2c. I2CDevice импорттоо;

com.pi4j.io.i2c. I2CFactory импорттоо;

java.io. IOException импорттоо;

коомдук класс ADXL345

{

public static void main (String args ) Exception ыргытат

{

// I2C шинасын түзүү

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

// I2C аппаратын алыңыз, I2C түзмөгү 0x53 (83)

I2CDevice түзмөгү = Bus.getDevice (0x53);

// Товар ылдамдыгынын регистрин тандаңыз

// Кадимки режим, Чыгуу маалымат ылдамдыгы = 100 Гц

device.write (0x2C, (байт) 0x0A);

// Күчтү башкаруу реестрин тандаңыз

// Авто уйку өчүрүү

device.write (0x2D, (байт) 0x08);

// Маалымат форматынын реестрин тандаңыз

// Өзүн-өзү текшерүү өчүрүлгөн, 4-зымдуу интерфейс, Толук чечим, диапазон = +/- 2g

device.write (0x31, (байт) 0x08);

Thread.sleep (500);

// 6 байт маалыматтарды окуңуз

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

байт маалымат = жаңы байт [6];

data [0] = (байт) device.read (0x32);

data [1] = (байт) device.read (0x33);

data [2] = (байт) device.read (0x34);

data [3] = (байт) device.read (0x35);

data [4] = (байт) device.read (0x36);

data [5] = (байт) device.read (0x37);

// Маалыматтарды 10 битке айландырыңыз

int xAccl = ((маалыматтар [1] & 0x03) * 256 + (маалыматтар [0] & 0xFF));

эгер (xAccl> 511)

{

xAccl -= 1024;

}

int yAccl = ((маалыматтар [3] & 0x03) * 256 + (маалыматтар [2] & 0xFF));

эгер (yAccl> 511)

{

yAccl -= 1024;

}

int zAccl = ((маалыматтар [5] & 0x03) * 256 + (маалыматтар [4] & 0xFF));

эгер (zAccl> 511)

{

zAccl -= 1024;

}

// Экранга маалыматтарды чыгаруу

System.out.printf ("X огунда ылдамдануу: %d %n", xAccl);

System.out.printf ("Y огунда ылдамдануу: %d %n", yAccl);

System.out.printf ("Z огунда ылдамдануу: %d %n", zAccl);

}

}

4 -кадам: Тиркемелер:

ADXL345-бул кичинекей, ичке, ультра кубаттуу, 3-октук акселерометр, аны телефондордо, медициналык приборлордо ж.

Сунушталууда: