Tabla de contenido:

Raspberry Pi - Tutorial de Java con acelerómetro de 3 ejes ADXL345: 4 pasos
Raspberry Pi - Tutorial de Java con acelerómetro de 3 ejes ADXL345: 4 pasos

Video: Raspberry Pi - Tutorial de Java con acelerómetro de 3 ejes ADXL345: 4 pasos

Video: Raspberry Pi - Tutorial de Java con acelerómetro de 3 ejes ADXL345: 4 pasos
Video: Acelerómetro MPU6050 con Raspberry pi B+ mediante JAVA utilizando la librería PI4J. 2024, Mes de julio
Anonim
Image
Image

El ADXL345 es un acelerómetro de 3 ejes pequeño, delgado y de potencia ultrabaja con medición de alta resolución (13 bits) de hasta ± 16 g. Los datos de salida digital están formateados como un complemento de dos de 16 bits y se puede acceder a ellos a través de la interfaz digital I2 C. Mide la aceleración estática de la gravedad en aplicaciones de detección de inclinación, así como la aceleración dinámica resultante de movimientos o golpes. Su alta resolución (3,9 mg / LSB) permite medir cambios de inclinación inferiores a 1,0 °. Aquí está la demostración con raspberry pi usando código java.

Paso 1: ¡¡Lo que necesitas …

Que necesitas..!!
Que necesitas..!!

1. Raspberry Pi

2. ADXL345

3. Cable I²C

4. Escudo I²C para Raspberry Pi

5. Cable Ethernet

Paso 2: Conexiones:

Conexiones
Conexiones
Conexiones
Conexiones
Conexiones
Conexiones
Conexiones
Conexiones

Tome un protector I2C para raspberry pi y empújelo suavemente sobre los pines gpio de raspberry pi.

Luego, conecte un extremo del cable I2C al sensor ADXL345 y el otro extremo al blindaje I2C.

También conecte el cable Ethernet al pi o puede usar un módulo WiFi.

Las conexiones se muestran en la imagen de arriba.

Paso 3: Código:

Código
Código

El código java para ADXL345 se puede descargar desde nuestro repositorio de GitHub - Dcube Store

Aquí está el enlace para el mismo:

github.com/DcubeTechVentures/ADXL345

Hemos utilizado la biblioteca pi4j para el código java, los pasos para instalar pi4j en raspberry pi se describen aquí:

pi4j.com/install.html

También puede copiar el código desde aquí, se proporciona de la siguiente manera:

// Distribuido con licencia de libre albedrío.

// Úselo de la forma que desee, lucrativa o gratuita, siempre que encaje en las licencias de sus obras asociadas.

// ADXL345

// Este código está diseñado para funcionar con el mini módulo ADXL345_I2CS I2C disponible en Dcube Store.

import com.pi4j.io.i2c. I2CBus;

import com.pi4j.io.i2c. I2CDevice;

import com.pi4j.io.i2c. I2CFactory;

import java.io. IOException;

clase pública ADXL345

{

public static void main (String args ) arroja una excepción

{

// Crear bus I2C

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

// Obtener el dispositivo I2C, la dirección del dispositivo I2C es 0x53 (83)

Dispositivo I2CDevice = Bus.getDevice (0x53);

// Seleccionar registro de tasa de ancho de banda

// Modo normal, velocidad de datos de salida = 100 Hz

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

// Seleccionar registro de control de potencia

// Desactivación del reposo automático

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

// Seleccionar registro de formato de datos

// Autoprueba desactivada, interfaz de 4 cables, resolución completa, rango = +/- 2g

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

Hilo.sueño (500);

// Leer 6 bytes de datos

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

byte datos = nuevo byte [6];

datos [0] = (byte) dispositivo.read (0x32);

datos [1] = (byte) dispositivo.read (0x33);

datos [2] = (byte) dispositivo.read (0x34);

datos [3] = (byte) dispositivo.read (0x35);

datos [4] = (byte) dispositivo.read (0x36);

datos [5] = (byte) dispositivo.read (0x37);

// Convierte los datos a 10 bits

int xAccl = ((datos [1] y 0x03) * 256 + (datos [0] y 0xFF));

si (xAccl> 511)

{

xAccl - = 1024;

}

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

si (yAccl> 511)

{

yAccl - = 1024;

}

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

si (zAccl> 511)

{

zAccl - = 1024;

}

// Salida de datos a la pantalla

System.out.printf ("Aceleración en el eje X:% d% n", xAccl);

System.out.printf ("Aceleración en el eje Y:% d% n", yAccl);

System.out.printf ("Aceleración en el eje Z:% d% n", zAccl);

}

}

Paso 4: Aplicaciones:

ADXL345 es un acelerómetro de 3 ejes pequeño, delgado y ultrabajo de potencia que puede emplearse en teléfonos móviles, instrumentación médica, etc. Su aplicación también incluye juegos y dispositivos señaladores, instrumentación industrial, dispositivos de navegación personal y protección de unidades de disco duro (HDD).

Recomendado: