Mục lục:

Raspberry Pi - ADXL345 3-Axis Accelerometer Hướng dẫn Java: 4 bước
Raspberry Pi - ADXL345 3-Axis Accelerometer Hướng dẫn Java: 4 bước

Video: Raspberry Pi - ADXL345 3-Axis Accelerometer Hướng dẫn Java: 4 bước

Video: Raspberry Pi - ADXL345 3-Axis Accelerometer Hướng dẫn Java: 4 bước
Video: Accelerometer (Raspberry Pi) 2024, Tháng mười một
Anonim
Image
Image

ADXL345 là một máy đo gia tốc 3 trục nhỏ, mỏng, công suất cực thấp, có độ phân giải cao (13-bit) với phép đo lên đến ± 16 g. Dữ liệu đầu ra kỹ thuật số được định dạng dưới dạng bổ sung 16 bit hai chiều và có thể truy cập thông qua giao diện kỹ thuật số I2 C. Đo gia tốc tĩnh của trọng lực trong các ứng dụng cảm biến độ nghiêng, cũng như gia tốc động do chuyển động hoặc sốc. Độ phân giải cao của nó (3,9 mg / LSB) cho phép đo các thay đổi độ nghiêng nhỏ hơn 1,0 °. Đây là phần trình diễn với raspberry pi bằng cách sử dụng mã java.

Bước 1: Những gì bạn cần.. !

Những gì bạn cần.. !!
Những gì bạn cần.. !!

1. Raspberry Pi

2. ADXL345

3. Cáp I²C

4. I²C Shield cho Raspberry Pi

5. Cáp Ethernet

Bước 2: Kết nối:

Kết nối
Kết nối
Kết nối
Kết nối
Kết nối
Kết nối
Kết nối
Kết nối

Lấy một tấm chắn I2C cho raspberry pi và nhẹ nhàng đẩy nó qua các chân gpio của raspberry pi.

Sau đó kết nối một đầu của cáp I2C với cảm biến ADXL345 và đầu kia với tấm chắn I2C.

Đồng thời kết nối cáp Ethernet với pi hoặc bạn có thể sử dụng mô-đun WiFi.

Các kết nối được hiển thị trong hình trên.

Bước 3: Mã:

Mã số
Mã số

Có thể tải xuống mã java cho ADXL345 từ kho lưu trữ GitHub của chúng tôi- Dcube Store

Đây là liên kết cho cùng một:

github.com/DcubeTechVentures/ADXL345

Chúng tôi đã sử dụng thư viện pi4j cho mã java, các bước để cài đặt pi4j trên raspberry pi được mô tả ở đây:

pi4j.com/install.html

Bạn cũng có thể sao chép mã từ đây, nó được đưa ra như sau:

// Được phân phối với một giấy phép tự do.

// Sử dụng nó theo bất kỳ cách nào bạn muốn, lợi nhuận hoặc miễn phí, miễn là nó phù hợp với giấy phép của các tác phẩm liên quan.

// ADXL345

// Mã này được thiết kế để hoạt động với ADXL345_I2CS I2C Mini Module có sẵn trong Dcube Store.

nhập com.pi4j.io.i2c. I2CBus;

nhập com.pi4j.io.i2c. I2CDevice;

nhập com.pi4j.io.i2c. I2CFactory;

nhập java.io. IOException;

lớp công khai ADXL345

{

public static void main (String args ) ném Exception

{

// Tạo bus I2C

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

// Lấy thiết bị I2C, địa chỉ I2C của thiết bị là 0x53 (83)

Thiết bị I2CDevice = Bus.getDevice (0x53);

// Chọn thanh ghi tốc độ băng thông

// Chế độ bình thường, Tốc độ dữ liệu đầu ra = 100 Hz

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

// Chọn thanh ghi điều khiển công suất

// Tắt chế độ ngủ tự động

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

// Chọn thanh ghi định dạng dữ liệu

// Tự kiểm tra bị tắt, giao diện 4 dây, Độ phân giải đầy đủ, phạm vi = +/- 2g

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

Thread.sleep (500);

// Đọc 6 byte dữ liệu

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

byte data = byte mới [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);

// Chuyển dữ liệu thành 10 bit

int xAccl = ((dữ liệu [1] & 0x03) * 256 + (dữ liệu [0] & 0xFF));

nếu (xAccl> 511)

{

xAccl - = 1024;

}

int yAccl = ((dữ liệu [3] & 0x03) * 256 + (dữ liệu [2] & 0xFF));

nếu (yAccl> 511)

{

yAccl - = 1024;

}

int zAccl = ((dữ liệu [5] & 0x03) * 256 + (dữ liệu [4] & 0xFF));

nếu (zAccl> 511)

{

zAccl - = 1024;

}

// Xuất dữ liệu ra màn hình

System.out.printf ("Gia tốc theo Trục X:% d% n", xAccl);

System.out.printf ("Gia tốc theo trục Y:% d% n", yAccl);

System.out.printf ("Gia tốc theo Trục Z:% d% n", zAccl);

}

}

Bước 4: Ứng dụng:

ADXL345 là một máy đo gia tốc 3 trục nhỏ, mỏng, công suất cực thấp, có thể được sử dụng trong Thiết bị cầm tay, Thiết bị đo đạc y tế, v.v. Ứng dụng của nó cũng bao gồm Thiết bị chơi game và trỏ, Thiết bị đo công nghiệp, Thiết bị định vị cá nhân và Bảo vệ ổ đĩa cứng (HDD).

Đề xuất: