สารบัญ:

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

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

วีดีโอ: Raspberry Pi MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer Python Tutorial: 4 ขั้นตอน
วีดีโอ: ADXL335: Raspberry Pi Interfacing with MEMS Sensor - 3 Axis Accelerometer 2024, กรกฎาคม
Anonim
Image
Image

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

ขั้นตอนที่ 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: รหัส:

รหัส
รหัส

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

นี่คือลิงค์.

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

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

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

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

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

# MMA8452Q

# รหัสนี้ออกแบบมาเพื่อทำงานกับโมดูลขนาดเล็ก MMA8452Q_I2CS I2C

นำเข้า smbus

เวลานำเข้า

# รับรถบัส I2C

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

# MMA8452Q ที่อยู่ 0x1C(28)

# เลือกควบคุมการลงทะเบียน 0x2A(42)

# 0x00(00) โหมดสแตนด์บาย

bus.write_byte_data(0x1C, 0x2A, 0x00)

# MMA8452Q ที่อยู่ 0x1C(28)

# เลือกควบคุมการลงทะเบียน 0x2A(42)

# 0x01(01) โหมดแอคทีฟ

bus.write_byte_data(0x1C, 0x2A, 0x01)

# MMA8452Q ที่อยู่ 0x1C(28)

# เลือกการลงทะเบียนการกำหนดค่า 0x0E (14)

# 0x00(00) ตั้งค่าช่วงเป็น +/- 2g

bus.write_byte_data(0x1C, 0x0E, 0x00)

เวลานอน(0.5)

# MMA8452Q ที่อยู่ 0x1C(28)

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

# การลงทะเบียนสถานะ, X-Axis MSB, X-Axis LSB, Y-Axis MSB, Y-Axis LSB, Z-Axis MSB, Z-Axis LSB

ข้อมูล = bus.read_i2c_block_data(0x1C, 0x00, 7)

#แปลงข้อมูล

xAccl = (ข้อมูล[1] * 256 + ข้อมูล[2]) / 16

ถ้า xAccl > 2047:

xAccl -= 4096

yAccl = (ข้อมูล[3] * 256 + ข้อมูล[4]) / 16

ถ้า yAccl > 2047:

yAccl -= 4096 z

Accl = (ข้อมูล[5] * 256 + ข้อมูล[6]) / 16

ถ้า zAccl > 2047:

zAccl -= 4096

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

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

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

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

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

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

แนะนำ: