Mục lục:

Raspberry Pi MMA8452Q 3-Axis 12-bit / 8-bit Digital Accelerometer Java Hướng dẫn: 4 bước
Raspberry Pi MMA8452Q 3-Axis 12-bit / 8-bit Digital Accelerometer Java Hướng dẫn: 4 bước

Video: Raspberry Pi MMA8452Q 3-Axis 12-bit / 8-bit Digital Accelerometer Java Hướng dẫn: 4 bước

Video: Raspberry Pi MMA8452Q 3-Axis 12-bit / 8-bit Digital Accelerometer Java Hướng dẫn: 4 bước
Video: Raspberry Pi LIS3DHTR 3-Axis Accelerometer Python Tutorial 2024, Tháng bảy
Anonim
Image
Image

MMA8452Q là một gia tốc kế thông minh, công suất thấp, ba trục, điện dung, được gia tốc vi cơ với độ phân giải 12 bit. Các tùy chọn có thể lập trình của người dùng linh hoạt được cung cấp với sự hỗ trợ của các chức năng nhúng trong gia tốc kế, có thể định cấu hình cho hai chân ngắt. Nó có các thang đo đầy đủ có thể lựa chọn của người dùng là ± 2g / ± 4g / ± 8g với dữ liệu được lọc bộ lọc thông cao cũng như dữ liệu không được lọc có sẵn trong thời gian thực. Đây là phần trình diễn của nó với raspberry pi 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. MMA8452Q

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 MMA8452Q và đầu kia với lá 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ố

Mã Java cho MMA8452Q có thể được tải xuống 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/MMA8452Q

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.

// MMA8452Q

// Mã này được thiết kế để hoạt động với MMA8452Q_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 cộng MMA8452Q

{

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 MMA8452Q là 0x1C (28)

Thiết bị I2CDevice = bus.getDevice (0x1C);

// Gửi lệnh chờ

device.write (0x2A, (byte) 0x00);

// Gửi lệnh hoạt động

device.write (0x2A, (byte) 0x01);

// Đặt Phạm vi lên đến +/- 2g

device.write (0x0E, (byte) 0x00);

Thread.sleep (500);

// Đọc 7 byte dữ liệu từ địa chỉ 0x00 (0)

// Trạng thái, X msb, X lsb, Y msb, Y lsb, Z msb, Z lsb

byte data = byte mới [7];

device.read (0x00, dữ liệu, 0, 7);

// Chuyển đổi các giá trị

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

nếu (xAccl> 2047)

{

xAccl = xAccl - 4096;

}

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

if (yAccl> 2047)

{

yAccl = yAccl - 4096;

}

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

nếu (zAccl> 2047)

{

zAccl = zAccl - 4096;

}

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

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

System.out.printf ("Trục Y:% d% n", yAccl);

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

}

}

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

MMA8452Q có các ứng dụng khác nhau bao gồm các ứng dụng E-La bàn, Phát hiện hướng tĩnh kết hợp Chân dung / Phong cảnh, Lên / Xuống, Trái / Phải, Nhận dạng vị trí Sau / Trước, Máy tính xách tay, đầu đọc điện tử và Phát hiện rơi máy tính xách tay và rơi tự do, Thời gian thực phát hiện định hướng bao gồm phản hồi vị trí người dùng 3D thực tế ảo và chơi game, phân tích hoạt động trong thời gian thực như đếm bước đi của máy đếm bước, phát hiện rơi tự do cho ổ cứng, sao lưu GPS tính toán chết và hơn thế nữa.

Đề xuất: