Sommario:

Raspberry Pi - Tutorial Java dell'accelerometro a 3 assi ADXL345: 4 passaggi
Raspberry Pi - Tutorial Java dell'accelerometro a 3 assi ADXL345: 4 passaggi

Video: Raspberry Pi - Tutorial Java dell'accelerometro a 3 assi ADXL345: 4 passaggi

Video: Raspberry Pi - Tutorial Java dell'accelerometro a 3 assi ADXL345: 4 passaggi
Video: Raspberry Pi ADXL345 3-Axis Accelerometer Java Tutorial 2024, Luglio
Anonim
Image
Image

L'ADXL345 è un accelerometro a 3 assi piccolo, sottile, a bassissima potenza con misurazione ad alta risoluzione (13 bit) fino a ±16 g. I dati di uscita digitale sono formattati come complemento a due a 16 bit ed è accessibile tramite l'interfaccia digitale I2 C. Misura l'accelerazione statica di gravità nelle applicazioni di rilevamento dell'inclinazione, nonché l'accelerazione dinamica risultante dal movimento o da urti. La sua alta risoluzione (3,9 mg/LSB) consente di misurare variazioni di inclinazione inferiori a 1,0°. Ecco la dimostrazione con raspberry pi usando il codice java.

Passaggio 1: ciò di cui hai bisogno.

Quello di cui hai bisogno..!!
Quello di cui hai bisogno..!!

1. Lampone Pi

2. ADXL345

3. Cavo I²C

4. Scudo I²C per Raspberry Pi

5. Cavo Ethernet

Passaggio 2: connessioni:

Connessioni
Connessioni
Connessioni
Connessioni
Connessioni
Connessioni
Connessioni
Connessioni

Prendi uno scudo I2C per lampone pi e spingilo delicatamente sui pin gpio di lampone pi.

Quindi collegare un'estremità del cavo I2C al sensore ADXL345 e l'altra estremità allo schermo I2C.

Collega anche il cavo Ethernet al pi oppure puoi utilizzare un modulo WiFi.

I collegamenti sono mostrati nell'immagine sopra.

Passaggio 3: codice:

Codice
Codice

Il codice java per ADXL345 può essere scaricato dal nostro repository GitHub- Dcube Store

Ecco il link per lo stesso:

github.com/DcubeTechVentures/ADXL345

Abbiamo usato la libreria pi4j per il codice java, i passaggi per installare pi4j su raspberry pi sono descritti qui:

pi4j.com/install.html

Puoi anche copiare il codice da qui, è fornito come segue:

// Distribuito con una licenza libera.

// Usalo come vuoi, a scopo di lucro o gratuito, a condizione che rientri nelle licenze delle opere associate.

// ADXL345

// Questo codice è progettato per funzionare con il Mini Modulo I2C ADXL345_I2CS disponibile in Dcube Store.

import com.pi4j.io.i2c. I2CBus;

import com.pi4j.io.i2c. I2CDevice;

import com.pi4j.io.i2c. I2CFactory;

import java.io. IOException;

classe pubblica ADXL345

{

public static void main(String args) genera un'eccezione

{

// Crea bus I2C

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

// Ottieni il dispositivo I2C, l'indirizzo I2C del dispositivo è 0x53(83)

I2CDevice device = Bus.getDevice(0x53);

// Seleziona il registro del tasso di larghezza di banda

// Modalità normale, velocità dati in uscita = 100 Hz

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

// Seleziona il registro di controllo dell'alimentazione

// Disattivazione del sonno automatico

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

// Seleziona registro formato dati

// Autotest disabilitato, interfaccia a 4 fili, piena risoluzione, range = +/-2g

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

Thread.sleep(500);

// Legge 6 byte di dati

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

byte dati = nuovo 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);

// Converti i dati in 10 bit

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;

}

// Invia i dati allo schermo

System.out.printf("Accelerazione nell'asse X: %d %n", xAccl);

System.out.printf("Accelerazione nell'asse Y: %d %n", yAccl);

System.out.printf("Accelerazione nell'asse Z: %d %n", zAccl);

}

}

Passaggio 4: applicazioni:

ADXL345 è un piccolo, sottile, accelerometro a 3 assi a potenza ultrabassa che può essere impiegato in telefoni cellulari, strumentazione medica ecc. La sua applicazione include anche dispositivi di puntamento e di gioco, strumentazione industriale, dispositivi di navigazione personale e protezione dell'unità disco rigido (HDD).

Consigliato: