สารบัญ:

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

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

วีดีโอ: Raspberry Pi - ADXL345 3-Axis Accelerometer Python Tutorial: 4 ขั้นตอน
วีดีโอ: Accelerometer (Raspberry Pi) 2024, พฤศจิกายน
Anonim

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

ขั้นตอนที่ 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..

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

pypi.python.org/pypi/smbus-cffi/0.5.1

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

# จัดจำหน่ายด้วยใบอนุญาตอิสระ

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

# ADXL345

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

นำเข้า smbus

เวลานำเข้า

# รับรถบัส I2C

รถบัส = smbus. SMBus(1)

# ADXL345 ที่อยู่ 0x53 (83)

# เลือกการลงทะเบียนอัตราแบนด์วิดท์, 0x2C(44)# 0x0A(10) โหมดปกติ, อัตราข้อมูลเอาท์พุต = 100 Hz

bus.write_byte_data(0x53, 0x2C, 0x0A)

# ADXL345 ที่อยู่ 0x53 (83)

# เลือกรีจิสเตอร์ควบคุมกำลัง 0x2D(45)

# 0x08(08) ปิดใช้งานการนอนหลับอัตโนมัติ

bus.write_byte_data(0x53, 0x2D, 0x08)

# ADXL345 ที่อยู่ 0x53 (83)

# เลือกรูปแบบข้อมูลลงทะเบียน 0x31 (49)

# 0x08(08) ปิดใช้งานการทดสอบตัวเอง, อินเทอร์เฟซ 4 สาย

# ความละเอียดเต็มที่ ช่วง = +/-2g

bus.write_byte_data(0x53, 0x31, 0x08)

เวลานอน(0.5)

# ADXL345 ที่อยู่ 0x53 (83)

# อ่านข้อมูลย้อนหลังตั้งแต่ 0x32 (50), 2 ไบต์

# แกน X LSB, แกน X MSB

data0 = bus.read_byte_data(0x53, 0x32)

data1 = bus.read_byte_data(0x53, 0x33)

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

xAccl = ((data1 & 0x03) * 256) + data0

ถ้า xAccl > 511:

xAccl -= 1024

# ADXL345 ที่อยู่ 0x53 (83)

# อ่านข้อมูลย้อนหลังตั้งแต่ 0x34 (52), 2 ไบต์

# แกน Y LSB, แกน Y MSB

data0 = bus.read_byte_data(0x53, 0x34)

data1 = bus.read_byte_data(0x53, 0x35)

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

yAccl = ((data1 & 0x03) * 256) + data0

ถ้า yAccl > 511:

yAccl -= 1024

# ADXL345 ที่อยู่ 0x53 (83)

# อ่านข้อมูลย้อนหลังจาก 0x36 (54), 2 ไบต์

# แกน Z LSB, แกน Z MSB

data0 = bus.read_byte_data(0x53, 0x36)

data1 = bus.read_byte_data(0x53, 0x37)

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

zAccl = ((data1 & 0x03) * 256) + data0

ถ้า zAccl > 511:

zAccl -= 1024

# ส่งออกข้อมูลไปยังหน้าจอ

พิมพ์ "ความเร่งในแกน X: %d" %xAccl

พิมพ์ "ความเร่งในแกน Y: %d" %yAccl

พิมพ์ "ความเร่งในแกน Z: %d" %zAccl

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

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

แนะนำ: