สารบัญ:

Raspberry Pi - ADXL345 3-Axis Accelerometer Java Tutorial: 4 ขั้นตอน
Raspberry Pi - ADXL345 3-Axis Accelerometer Java Tutorial: 4 ขั้นตอน

วีดีโอ: Raspberry Pi - ADXL345 3-Axis Accelerometer Java Tutorial: 4 ขั้นตอน

วีดีโอ: Raspberry Pi - ADXL345 3-Axis Accelerometer Java Tutorial: 4 ขั้นตอน
วีดีโอ: Accelerometer (Raspberry Pi) 2024, กรกฎาคม
Anonim
Image
Image

ADXL345 เป็นมาตรความเร่งแบบ 3 แกนที่มีขนาดเล็ก บาง และใช้พลังงานต่ำเป็นพิเศษ พร้อมการวัดความละเอียดสูง (13 บิต) ที่สูงถึง ±16 กรัม ข้อมูลเอาท์พุตดิจิตอลมีรูปแบบเป็นส่วนประกอบสองส่วน 16 บิต และสามารถเข้าถึงได้ผ่านอินเทอร์เฟซดิจิตอล I2 C มันวัดความเร่งคงที่ของแรงโน้มถ่วงในการใช้งานการตรวจจับการเอียง รวมถึงการเร่งความเร็วแบบไดนามิกที่เกิดจากการเคลื่อนไหวหรือการกระแทก ความละเอียดสูง (3.9 มก./LSB) ช่วยให้สามารถวัดการเปลี่ยนแปลงความเอียงได้น้อยกว่า 1.0 ° นี่คือการสาธิตด้วย raspberry pi โดยใช้รหัส java

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

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

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

2. ADXL345

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

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

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

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

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

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

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

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

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

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

รหัส
รหัส

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

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

github.com/DcubeTechVentures/ADXL345

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

pi4j.com/install.html

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

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

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

// ADXL345

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

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

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

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

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

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

{

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

{

// สร้างบัส I2C

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

// รับอุปกรณ์ I2C ที่อยู่ I2C ของอุปกรณ์คือ 0x53 (83)

อุปกรณ์ I2CDevice = Bus.getDevice(0x53);

// เลือกการลงทะเบียนอัตราแบนด์วิดท์

// โหมดปกติ อัตราข้อมูลออก = 100 Hz

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

// เลือกการลงทะเบียนควบคุมพลังงาน

// ปิดการใช้งานโหมดสลีปอัตโนมัติ

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

// เลือก Data format register

// ปิดใช้งานการทดสอบตัวเอง, อินเทอร์เฟซ 4 สาย, ความละเอียดเต็ม, ช่วง = +/-2g

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

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

// อ่านข้อมูลขนาด 6 ไบต์

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

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

data[0] = (ไบต์)device.read(0x32);

data[1] = (ไบต์)device.read(0x33);

data[2] = (ไบต์)device.read(0x34);

data[3] = (ไบต์)device.read(0x35);

ข้อมูล[4] = (ไบต์)device.read(0x36);

ข้อมูล[5] = (ไบต์)device.read(0x37);

// แปลงข้อมูลเป็น 10 บิต

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

ถ้า(xAccl > 511)

{

xAccl -= 1024;

}

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

ถ้า (yAccl > 511)

{

yAccl -= 1024;

}

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

ถ้า(zAccl > 511)

{

zAccl -= 1024;

}

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

System.out.printf("การเร่งความเร็วในแกน X: %d %n", xAccl);

System.out.printf("การเร่งความเร็วในแกน Y: %d %n", yAccl);

System.out.printf("การเร่งความเร็วในแกน Z: %d %n", zAccl);

}

}

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

ADXL345 เป็นมาตรความเร่งแบบ 3 แกนขนาดเล็ก บาง ใช้พลังงานต่ำเป็นพิเศษ ซึ่งสามารถใช้ในเครื่องโทรศัพท์ อุปกรณ์ทางการแพทย์ ฯลฯ แอปพลิเคชันนี้ยังรวมถึงอุปกรณ์เล่นเกมและอุปกรณ์ชี้ตำแหน่ง เครื่องมือวัดทางอุตสาหกรรม อุปกรณ์นำทางส่วนบุคคล และการป้องกันฮาร์ดดิสก์ไดรฟ์ (HDD)

แนะนำ: