Inhaltsverzeichnis:

Raspberry Pi - ADXL345 3-Achsen-Beschleunigungsmesser Java Tutorial - Gunook
Raspberry Pi - ADXL345 3-Achsen-Beschleunigungsmesser Java Tutorial - Gunook

Video: Raspberry Pi - ADXL345 3-Achsen-Beschleunigungsmesser Java Tutorial - Gunook

Video: Raspberry Pi - ADXL345 3-Achsen-Beschleunigungsmesser Java Tutorial - Gunook
Video: Raspberry Pi Accelerometer using the ADXL345 2024, Juli
Anonim
Image
Image

Der ADXL345 ist ein kleiner, dünner 3-Achsen-Beschleunigungsmesser mit extrem geringem Stromverbrauch und hoher Auflösung (13 Bit) bei bis zu ±16 g. Digitale Ausgangsdaten werden als 16-Bit-Zweierkomplement formatiert und sind über die digitale I2 C-Schnittstelle zugänglich. Es misst die statische Gravitationsbeschleunigung bei Neigungserkennungsanwendungen sowie die dynamische Beschleunigung aufgrund von Bewegungen oder Stößen. Seine hohe Auflösung (3,9 mg/LSB) ermöglicht die Messung von Neigungsänderungen unter 1,0°. Hier ist es eine Demonstration mit Himbeer-Pi mit Java-Code.

Schritt 1: Was Sie brauchen.

Was du brauchst..!!
Was du brauchst..!!

1. Himbeer-Pi

2. ADXL345

3. I²C-Kabel

4. I²C-Shield für Raspberry Pi

5. Ethernet-Kabel

Schritt 2: Anschlüsse:

Anschlüsse
Anschlüsse
Anschlüsse
Anschlüsse
Anschlüsse
Anschlüsse
Anschlüsse
Anschlüsse

Nehmen Sie ein I2C-Schild für Himbeer-Pi und schieben Sie es vorsichtig über die gpio-Pins von Himbeer-Pi.

Verbinden Sie dann das eine Ende des I2C-Kabels mit dem ADXL345-Sensor und das andere Ende mit der I2C-Abschirmung.

Verbinden Sie auch das Ethernet-Kabel mit dem Pi oder verwenden Sie ein WiFi-Modul.

Die Anschlüsse sind im Bild oben dargestellt.

Schritt 3: Code:

Code
Code

Der Java-Code für ADXL345 kann von unserem GitHub-Repository heruntergeladen werden - Dcube Store

Hier der Link dazu:

github.com/DcubeTechVentures/ADXL345

Wir haben die pi4j-Bibliothek für Java-Code verwendet, die Schritte zur Installation von pi4j auf Raspberry Pi sind hier beschrieben:

pi4j.com/install.html

Sie können den Code auch von hier kopieren, er wird wie folgt angegeben:

// Wird mit einer frei wählbaren Lizenz vertrieben.

// Verwenden Sie es, wie Sie wollen, gewinnbringend oder kostenlos, sofern es in die Lizenzen der zugehörigen Werke passt.

// ADXL345

// Dieser Code wurde entwickelt, um mit dem ADXL345_I2CS I2C Mini-Modul zu arbeiten, das im Dcube Store erhältlich ist.

com.pi4j.io.i2c. I2CBus importieren;

com.pi4j.io.i2c. I2CDevice importieren;

com.pi4j.io.i2c. I2CFactory importieren;

import java.io. IOException;

öffentliche Klasse ADXL345

{

public static void main(String args) löst Ausnahme aus

{

// I2C-Bus erstellen

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

// I2C-Gerät abrufen, Geräte-I2C-Adresse ist 0x53(83)

I2CDevice-Gerät = Bus.getDevice(0x53);

// Bandbreitenratenregister auswählen

// Normaler Modus, Ausgangsdatenrate = 100 Hz

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

// Wählen Sie das Leistungssteuerregister

// Auto-Sleep deaktivieren

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

// Datenformatregister auswählen

// Selbsttest deaktiviert, 4-Draht-Schnittstelle, volle Auflösung, Bereich = +/-2g

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

Thread.sleep(500);

// 6 Byte Daten lesen

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

Byte Daten = neues 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);

// Konvertieren Sie die Daten in 10-Bits

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

if(xAccl > 511)

{

xAccl –= 1024;

}

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

if(yAccl > 511)

{

yAccl –= 1024;

}

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

if(zAccl > 511)

{

zAccl –= 1024;

}

// Daten auf Bildschirm ausgeben

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

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

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

}

}

Schritt 4: Anwendungen:

ADXL345 ist ein kleiner, dünner 3-Achsen-Beschleunigungsmesser mit extrem geringem Stromverbrauch, der in Handsets, medizinischen Instrumenten usw. eingesetzt werden kann. Seine Anwendung umfasst auch Spiel- und Zeigegeräte, industrielle Instrumente, persönliche Navigationsgeräte und Festplattenschutz (HDD).

Empfohlen: