Inhoudsopgave:

Raspberry Pi - ADXL345 3-Axis Accelerometer Java-zelfstudie - Ajarnpa
Raspberry Pi - ADXL345 3-Axis Accelerometer Java-zelfstudie - Ajarnpa

Video: Raspberry Pi - ADXL345 3-Axis Accelerometer Java-zelfstudie - Ajarnpa

Video: Raspberry Pi - ADXL345 3-Axis Accelerometer Java-zelfstudie - Ajarnpa
Video: Raspberry Pi Accelerometer using the ADXL345 2024, November
Anonim
Image
Image

De ADXL345 is een kleine, dunne, ultralaag vermogen, 3-assige accelerometer met hoge resolutie (13-bits) meting tot ±16 g. Digitale uitvoergegevens zijn geformatteerd als 16-bits tweetallen en zijn toegankelijk via de digitale I2 C-interface. Het meet de statische versnelling van de zwaartekracht in toepassingen met kanteldetectie, evenals dynamische versnelling als gevolg van beweging of schokken. De hoge resolutie (3,9 mg/LSB) maakt het mogelijk om hellingsveranderingen van minder dan 1,0° te meten. Hier is het demonstratie met Raspberry Pi met behulp van Java-code.

Stap 1: Wat je nodig hebt.

Wat je nodig hebt..!!
Wat je nodig hebt..!!

1. Raspberry Pi

2. ADXL345

3. I²C-kabel

4. I²C-schild voor Raspberry Pi

5. Ethernet-kabel

Stap 2: Aansluitingen:

Aansluitingen
Aansluitingen
Aansluitingen
Aansluitingen
Aansluitingen
Aansluitingen
Aansluitingen
Aansluitingen

Neem een I2C-schild voor Raspberry Pi en duw het voorzichtig over de gpio-pinnen van Raspberry Pi.

Sluit vervolgens het ene uiteinde van de I2C-kabel aan op de ADXL345-sensor en het andere uiteinde op de I2C-afscherming.

Sluit ook de Ethernet-kabel aan op de pi of u kunt een WiFi-module gebruiken.

De aansluitingen zijn weergegeven in de afbeelding hierboven.

Stap 3: Coderen:

Code
Code

De Java-code voor ADXL345 kan worden gedownload van onze GitHub-repository - Dcube Store

Hier is de link voor hetzelfde:

github.com/DcubeTechVentures/ADXL345

We hebben de pi4j-bibliotheek gebruikt voor java-code, de stappen om pi4j op raspberry pi te installeren worden hier beschreven:

pi4j.com/install.html

U kunt de code ook hier kopiëren, deze wordt als volgt gegeven:

// Gedistribueerd met een vrije wilslicentie.

// Gebruik het zoals je wilt, winst of gratis, op voorwaarde dat het past in de licenties van de bijbehorende werken.

// ADXL345

// Deze code is ontworpen om te werken met de ADXL345_I2CS I2C Mini Module die beschikbaar is in Dcube Store.

com.pi4j.io.i2c. I2CBus importeren;

com.pi4j.io.i2c. I2CDevice importeren;

importeer com.pi4j.io.i2c. I2CFactory;

import java.io. IOException;

openbare klasse ADXL345

{

public static void main(String args) gooit Exception

{

// I2C-bus maken

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

// Haal het I2C-apparaat op, het I2C-adres van het apparaat is 0x53 (83)

I2CDevice-apparaat = Bus.getDevice (0x53);

// Selecteer Bandbreedte tariefregister

// Normale modus, uitgangsgegevenssnelheid = 100 Hz

apparaat.schrijven (0x2C, (byte)0x0A);

// Selecteer Power control register

// Automatisch slaap uitschakelen

apparaat.schrijven (0x2D, (byte)0x08);

// Selecteer Data formaat register

// Zelftest uitgeschakeld, 4-draads interface, volledige resolutie, bereik = +/-2g

apparaat.schrijven (0x31, (byte)0x08);

Draad.slaap(500);

// Lees 6 bytes aan gegevens

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

byte data = nieuwe byte[6];

data[0] = (byte)apparaat.lezen(0x32);

data[1] = (byte)apparaat.lezen(0x33);

data[2] = (byte)apparaat.lezen(0x34);

data[3] = (byte)apparaat.lezen(0x35);

data[4] = (byte)apparaat.lezen(0x36);

data[5] = (byte)apparaat.lezen(0x37);

// Converteer de gegevens naar 10-bits

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

if(xAccl > 511)

{

xAccl -= 1024;

}

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

if(yAccl > 511)

{

yAccl -= 1024;

}

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

if(zAccl > 511)

{

zAccl -= 1024;

}

// Gegevens uitvoeren naar scherm

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: Toepassingen:

ADXL345 is een kleine, dunne 3-assige accelerometer met ultralaag vermogen die kan worden gebruikt in handsets, medische instrumenten enz. De toepassing ervan omvat ook gaming- en aanwijsapparaten, industriële instrumenten, persoonlijke navigatieapparatuur en bescherming van de harde schijf (HDD).

Aanbevolen: