INHOUDSOPGAWE:

Raspberry Pi - ADXL345 3 -as versnellingsmeter Java -tutoriaal: 4 stappe
Raspberry Pi - ADXL345 3 -as versnellingsmeter Java -tutoriaal: 4 stappe

Video: Raspberry Pi - ADXL345 3 -as versnellingsmeter Java -tutoriaal: 4 stappe

Video: Raspberry Pi - ADXL345 3 -as versnellingsmeter Java -tutoriaal: 4 stappe
Video: Accelerometer to PC 2024, Julie
Anonim
Image
Image

Die ADXL345 is 'n klein, dun, ultra-lae, drie-as versnellingsmeter met 'n hoë resolusie (13-bis) meting tot ± 16 g. Digitale uitsetdata word geformateer as 'n 16-bis tweeling-aanvulling en is toeganklik via die I2 C digitale koppelvlak. Dit meet die statiese versnelling van swaartekrag in kantelwaarnemingstoepassings, sowel as dinamiese versnelling as gevolg van beweging of skok. Die hoë resolusie (3,9 mg/LSB) maak dit moontlik om hellingsveranderings van minder as 1,0 ° te meet. Hier is 'n demonstrasie met framboos pi met behulp van Java -kode.

Stap 1: wat u nodig het..

Wat jy nodig het..!!
Wat jy nodig het..!!

1. Framboos Pi

2. ADXL345

3. I²C -kabel

4. I²C -skild vir Framboos Pi

5. Ethernet -kabel

Stap 2: Verbindings:

Verbindings
Verbindings
Verbindings
Verbindings
Verbindings
Verbindings
Verbindings
Verbindings

Neem 'n I2C skild vir framboos pi en druk dit liggies oor die gpio penne van framboos pi.

Koppel dan die een kant van die I2C -kabel aan die ADXL345 -sensor en die ander kant aan die I2C -skild.

Koppel ook die Ethernet -kabel aan die pi, of u kan 'n WiFi -module gebruik.

Verbindings word op die foto hierbo getoon.

Stap 3: Kode:

Kode
Kode

Die java-kode vir ADXL345 kan afgelaai word vanaf ons GitHub-bewaarplek- Dcube Store

Hier is die skakel vir dieselfde:

github.com/DcubeTechVentures/ADXL345

Ons het pi4j -biblioteek gebruik vir java -kode, die stappe om pi4j op framboos pi te installeer word hier beskryf:

pi4j.com/install.html

U kan die kode ook hiervandaan kopieer; dit word soos volg gegee:

// Versprei met 'n vrywillige lisensie.

// Gebruik dit op enige manier wat u wil, wins of gratis, mits dit in die lisensies van die gepaardgaande werke pas.

// ADXL345

// Hierdie kode is ontwerp om te werk met die ADXL345_I2CS I2C Mini Module wat beskikbaar is in Dcube Store.

invoer com.pi4j.io.i2c. I2CBus;

voer com.pi4j.io.i2c. I2CD -toestel in;

invoer com.pi4j.io.i2c. I2CFactory;

invoer java.io. IOException;

openbare klas ADXL345

{

openbare statiese leegte hoof (String argumente ) gooi uitsondering

{

// Skep I2C -bus

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

// Kry I2C -toestel, toestel I2C -adres is 0x53 (83)

I2CD -toestel = Bus.getDevice (0x53);

// Kies register van bandwydte

// Normale modus, uitsetdatatempo = 100 Hz

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

// Kies Kragbeheerregister

// Outomatiese slaap deaktiveer

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

// Kies Register vir dataformaat

// Selftoets gedeaktiveer, 4-draads koppelvlak, volle resolusie, reikwydte = +/- 2g

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

Draad.slaap (500);

// Lees 6 grepe data

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

byte data = nuwe byte [6];

data [0] = (byte) device.read (0x32);

data [1] = (byte) device.read (0x33);

data [2] = (byte) device.read (0x34);

data [3] = (byte) device.read (0x35);

data [4] = (byte) device.read (0x36);

data [5] = (byte) device.read (0x37);

// Skakel die data om na 10-bisse

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

as (xAccl> 511)

{

xAccl -= 1024;

}

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

as (yAccl> 511)

{

yAccl -= 1024;

}

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

as (zAccl> 511)

{

zAccl -= 1024;

}

// Uitset data na die skerm

System.out.printf ("Versnelling in X-as: %d %n", xAccl);

System.out.printf ("Versnelling in Y-as: %d %n", yAccl);

System.out.printf ("Versnelling in Z-as: %d %n", zAccl);

}

}

Stap 4: Aansoeke:

ADXL345 is 'n klein, dun, ultra-lae, 3-as versnellingsmeter wat gebruik kan word in toestelle, mediese instrumente, ens.

Aanbeveel: