สารบัญ:

Raspberry Pi MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Java Tutorial: 4 ขั้นตอน
Raspberry Pi MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Java Tutorial: 4 ขั้นตอน

วีดีโอ: Raspberry Pi MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Java Tutorial: 4 ขั้นตอน

วีดีโอ: Raspberry Pi MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Java Tutorial: 4 ขั้นตอน
วีดีโอ: Raspberry Pi MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Java Tutorial 2024, พฤศจิกายน
Anonim
Image
Image

MMA8452Q เป็นเครื่องวัดความเร่งแบบไมโครแมชชีนแบบสามแกน ใช้พลังงานต่ำ อัจฉริยะ ใช้พลังงานต่ำ มีความละเอียด 12 บิต ตัวเลือกที่ตั้งโปรแกรมได้ของผู้ใช้ที่ยืดหยุ่นนั้นมาพร้อมกับฟังก์ชั่นฝังตัวในมาตรความเร่ง ซึ่งสามารถกำหนดค่าเป็นพินอินเทอร์รัปต์สองตัวได้ ผู้ใช้สามารถเลือกสเกลแบบเต็มได้ ±2g/±4g/±8g พร้อมข้อมูลที่กรองผ่านตัวกรองความถี่สูง รวมถึงข้อมูลที่ไม่มีการกรองแบบเรียลไทม์ นี่คือการสาธิตด้วย raspberry pi โดยใช้รหัส java

ขั้นตอนที่ 1: สิ่งที่คุณต้องการ..!

สิ่งที่คุณต้องการ..!!
สิ่งที่คุณต้องการ..!!

1. ราสเบอร์รี่ปี่

2. MMA8452Q

3. สายเคเบิล I²C

4. I²C Shield สำหรับ Raspberry Pi

5. สายเคเบิลอีเธอร์เน็ต

ขั้นตอนที่ 2: การเชื่อมต่อ:

การเชื่อมต่อ
การเชื่อมต่อ
การเชื่อมต่อ
การเชื่อมต่อ
การเชื่อมต่อ
การเชื่อมต่อ
การเชื่อมต่อ
การเชื่อมต่อ

ใช้เกราะป้องกัน I2C สำหรับ raspberry pi แล้วค่อยๆ ดันไปบนหมุด gpio ของ raspberry pi

จากนั้นเชื่อมต่อปลายสาย I2C ด้านหนึ่งกับเซ็นเซอร์ MMA8452Q และปลายอีกด้านหนึ่งเข้ากับแผงป้องกัน I2C

เชื่อมต่อสายอีเทอร์เน็ตกับ pi หรือคุณสามารถใช้โมดูล WiFi ได้

การเชื่อมต่อแสดงในภาพด้านบน

ขั้นตอนที่ 3: รหัส:

รหัส
รหัส

รหัส Java สำหรับ MMA8452Q สามารถดาวน์โหลดได้จากที่เก็บ GitHub ของเรา - Dcube Store

นี่คือลิงค์สำหรับสิ่งเดียวกัน:

github.com/DcubeTechVentures/MMA8452Q

เราใช้ไลบรารี pi4j สำหรับโค้ด java ขั้นตอนในการติดตั้ง pi4j บน raspberry pi ได้อธิบายไว้ที่นี่:

pi4j.com/install.html

คุณสามารถคัดลอกรหัสจากที่นี่ได้ดังนี้:

// แจกจ่ายด้วยใบอนุญาตอิสระ

// ใช้มันตามที่คุณต้องการ ไม่ว่าจะมีกำไรหรือฟรี หากเข้ากับใบอนุญาตของงานที่เกี่ยวข้อง

// MMA8452Q

// รหัสนี้ออกแบบมาเพื่อทำงานกับ MMA8452Q_I2CS I2C Mini Module ที่มีอยู่ใน Dcube Store

นำเข้า com.pi4j.io.i2c. I2CBus;

นำเข้า com.pi4j.io.i2c. I2CDevice;

นำเข้า com.pi4j.io.i2c. I2CFactory;

นำเข้า java.io. IOException;

คลาสสาธารณะ MMA8452Q

{

โมฆะคงที่สาธารณะหลัก (สตริง args ) พ่นข้อยกเว้น

{

// สร้างบัส I2C

บัส I2CBus = I2CFactory.getInstance(I2CBus. BUS_1);

// รับอุปกรณ์ I2C ที่อยู่ MMA8452Q I2C คือ 0x1C(28)

อุปกรณ์ I2CDevice = bus.getDevice(0x1C);

// ส่งคำสั่งสแตนด์บาย

อุปกรณ์.write(0x2A, (ไบต์)0x00);

// ส่งคำสั่งที่ใช้งาน

อุปกรณ์.write(0x2A, (ไบต์)0x01);

// ตั้งค่าช่วงไม่เกิน +/-2g

อุปกรณ์.write(0x0E, (ไบต์)0x00);

เธรดการนอนหลับ (500);

// อ่านข้อมูล 7 ไบต์จากที่อยู่ 0x00(0)

// สถานะ, X msb, X lsb, Y msb, Y lsb, Z msb, Z lsb

ไบต์ data = ไบต์ใหม่[7];

อุปกรณ์อ่าน (0x00, ข้อมูล, 0, 7);

// แปลงค่า

int xAccl = (((ข้อมูล[1] & 0xFF) * 256) + (ข้อมูล[2] & 0xFF)) / 16;

ถ้า (xAccl > 2047)

{

xAccl = xAccl - 4096;

}

int yAccl = (((ข้อมูล[3] & 0xFF) * 256) + (ข้อมูล[4] & 0xFF)) / 16;

ถ้า (yAccl > 2047)

{

yAccl = yAccl - 4096;

}

int zAccl = (((ข้อมูล[5] & 0xFF) * 256) + (ข้อมูล[6] & 0xFF)) / 16;

ถ้า (zAccl > 2047)

{

zAccl = zAccl - 4096;

}

// ส่งออกข้อมูลไปที่หน้าจอ

System.out.printf("แกน X: %d %n", xAccl);

System.out.printf("แกน Y: %d %n", yAccl);

System.out.printf("แกน Z: %d %n", zAccl);

}

}

ขั้นตอนที่ 4: การใช้งาน:

MMA8452Q มีแอปพลิเคชันต่างๆ ซึ่งรวมถึงแอปพลิเคชัน E-Compass, การตรวจจับการวางแนวคงที่ซึ่งรวมถึงแนวตั้ง/แนวนอน, ขึ้น/ลง, ซ้าย/ขวา, การระบุตำแหน่งกลับ/ ด้านหน้า, โน้ตบุ๊ก, e-reader และ Laptop Tumble and Freefall Detection แบบเรียลไทม์ การตรวจจับการวางแนวรวมถึงความเป็นจริงเสมือนและข้อเสนอแนะตำแหน่งผู้ใช้ 3D ในการเล่นเกม การวิเคราะห์กิจกรรมแบบเรียลไทม์ เช่น การนับก้าวของ pedometer การตรวจจับการตกอย่างอิสระสำหรับ HDD การสำรองข้อมูล GPS ที่คำนวณไม่ทัน และอีกมากมาย

แนะนำ: