สารบัญ:
- ขั้นตอนที่ 1: ฮาร์ดแวร์ที่จำเป็น:
- ขั้นตอนที่ 2: การเชื่อมต่อฮาร์ดแวร์:
- ขั้นตอนที่ 3: รหัส Python สำหรับการวัดการเร่งความเร็ว:
- ขั้นตอนที่ 4: การใช้งาน:
วีดีโอ: การวัดความเร่งโดยใช้ H3LIS331DL และ Raspberry Pi: 4 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
H3LIS331DL เป็นเครื่องวัดความเร่งเชิงเส้นแบบ 3 แกนประสิทธิภาพสูงที่ใช้พลังงานต่ำซึ่งเป็นของตระกูล "นาโน" พร้อมอินเทอร์เฟซแบบอนุกรม I²C แบบดิจิตอล H3LIS331DL มีสเกลแบบเต็มที่ผู้ใช้สามารถเลือกได้ที่ ±100g/±200g/±400g และสามารถวัดความเร่งด้วยอัตราข้อมูลเอาต์พุตตั้งแต่ 0.5 Hz ถึง 1 kHz H3LIS331DL รับประกันว่าจะทำงานในช่วงอุณหภูมิที่ขยายได้ตั้งแต่ -40 °C ถึง +85 °C
ในบทช่วยสอนนี้ เราจะสาธิตการเชื่อมต่อ H3LIS331DL กับ Raspberry Pi โดยใช้ python เป็นภาษาโปรแกรม
ขั้นตอนที่ 1: ฮาร์ดแวร์ที่จำเป็น:
วัสดุที่เราต้องการเพื่อให้บรรลุเป้าหมายประกอบด้วยส่วนประกอบฮาร์ดแวร์ต่อไปนี้:
1. H3LIS331DL
2. ราสเบอร์รี่ปี่
3. สายเคเบิล I2C
4. I2C Shield สำหรับราสเบอร์รี่ pi
5. สายเคเบิลอีเธอร์เน็ต
ขั้นตอนที่ 2: การเชื่อมต่อฮาร์ดแวร์:
ส่วนการเชื่อมต่อฮาร์ดแวร์โดยทั่วไปจะอธิบายการเชื่อมต่อสายไฟที่จำเป็นระหว่างเซ็นเซอร์และราสเบอร์รี่ pi ตรวจสอบให้แน่ใจว่าการเชื่อมต่อถูกต้องเป็นสิ่งจำเป็นพื้นฐานในขณะที่ทำงานกับระบบใด ๆ สำหรับเอาต์พุตที่ต้องการ ดังนั้น การเชื่อมต่อที่จำเป็นมีดังนี้:
H3LIS331DL จะทำงานบน I2C นี่คือตัวอย่างไดอะแกรมการเดินสาย ซึ่งสาธิตวิธีเชื่อมต่อแต่ละอินเทอร์เฟซของเซ็นเซอร์
นอกกรอบ บอร์ดได้รับการกำหนดค่าสำหรับอินเทอร์เฟซ I2C ดังนั้นเราขอแนะนำให้ใช้การเชื่อมต่อนี้หากคุณไม่เชื่อเรื่องพระเจ้า สิ่งที่คุณต้องมีคือสี่สาย!
ต้องใช้พิน Vcc, Gnd, SCL และ SDA เพียงสี่การเชื่อมต่อเท่านั้น และเชื่อมต่อด้วยสายเคเบิล I2C
การเชื่อมต่อเหล่านี้แสดงให้เห็นในภาพด้านบน
ขั้นตอนที่ 3: รหัส Python สำหรับการวัดการเร่งความเร็ว:
ข้อดีของการใช้ raspberry pi คือ ให้ความยืดหยุ่นของภาษาโปรแกรมที่คุณต้องการตั้งโปรแกรมบอร์ดเพื่อเชื่อมต่อกับเซ็นเซอร์ ใช้ประโยชน์จากข้อได้เปรียบของบอร์ดนี้ เรากำลังสาธิตการเขียนโปรแกรมในไพ ธ อนที่นี่ Python เป็นหนึ่งในภาษาโปรแกรมที่ง่ายที่สุดพร้อมไวยากรณ์ที่ง่ายที่สุด รหัสหลามสำหรับ H3LIS331DL สามารถดาวน์โหลดได้จากชุมชน github ของเราที่ DCUBE Store
เพื่อความสะดวกของผู้ใช้ เรากำลังอธิบายรหัสที่นี่ด้วย:
ในขั้นแรกของการเข้ารหัส คุณต้องดาวน์โหลดไลบรารี SMBus ในกรณีของ python เนื่องจากไลบรารีนี้รองรับฟังก์ชันที่ใช้ในโค้ด ดังนั้น หากต้องการดาวน์โหลดห้องสมุด คุณสามารถไปที่ลิงก์ต่อไปนี้:
pypi.python.org/pypi/smbus-cffi/0.5.1
คุณสามารถคัดลอกรหัสการทำงานได้จากที่นี่ด้วย:
นำเข้า smbus
เวลานำเข้า
# รับ I2C busbus = smbus. SMBus(1)
# H3LIS331DL ที่อยู่ 0x18(24)
# เลือกรีจิสเตอร์ควบคุม 1, 0x20(32)
# 0x27 (39) โหมดเปิดเครื่อง, อัตราการส่งข้อมูล = 50 Hz# X, Y, เปิดใช้งานแกน Z
bus.write_byte_data(0x18, 0x20, 0x27)
# H3LIS331DL ที่อยู่ 0x18 (24) # เลือกควบคุมการลงทะเบียน 4, 0x23 (35)
# 0x00(00) การอัปเดตอย่างต่อเนื่อง, การเลือกขนาดเต็ม = +/-100g
bus.write_byte_data(0x18, 0x23, 0x00)
เวลานอน(0.5)
# H3LIS331DL ที่อยู่ 0x18(24)
# อ่านข้อมูลย้อนหลังตั้งแต่ 0x28 (40), 2 ไบต์
# แกน X LSB, แกน X MSB
data0 = bus.read_byte_data(0x18, 0x28)
data1 = bus.read_byte_data(0x18, 0x29)
# แปลง dataxAccl = data1 * 256 + data0
ถ้า xAccl > 32767:
xAccl -= 65536
# H3LIS331DL ที่อยู่ 0x18(24)
# อ่านข้อมูลย้อนหลังจาก 0x2A (42), 2 ไบต์
# แกน Y LSB, แกน Y MSB
data0 = bus.read_byte_data(0x18, 0x2A)
data1 = bus.read_byte_data(0x18, 0x2B)
#แปลงข้อมูล
yAccl = data1 * 256 + data0
ถ้า yAccl > 32767:
yAccl -= 65536
# H3LIS331DL ที่อยู่ 0x18(24)
# อ่านข้อมูลย้อนหลังจาก 0x2C (44), 2 ไบต์
# แกน Z LSB, แกน Z MSB
data0 = bus.read_byte_data(0x18, 0x2C)
data1 = bus.read_byte_data(0x18, 0x2D)
#แปลงข้อมูล
zAccl = data1 * 256 + data0
ถ้า zAccl > 32767:
zAccl -= 65536
# ส่งออกข้อมูลไปยังหน้าจอ
พิมพ์ "ความเร่งในแกน X: %d" %xAccl
พิมพ์ "ความเร่งในแกน Y: %d" %yAccl
พิมพ์ "ความเร่งในแกน Z: %d" %zAccl
รหัสถูกดำเนินการโดยใช้คำสั่งต่อไปนี้:
$> python H3LIS331DL.py จีที; หลาม H3LIS331DL.py
เอาต์พุตของเซ็นเซอร์แสดงในภาพด้านบนสำหรับการอ้างอิงของผู้ใช้
ขั้นตอนที่ 4: การใช้งาน:
มาตรความเร่งเช่น H3LIS331DL ส่วนใหญ่จะพบแอปพลิเคชั่นในเกมและเปลี่ยนโปรไฟล์การแสดงผล โมดูลเซ็นเซอร์นี้ยังใช้ในระบบการจัดการพลังงานขั้นสูงสำหรับแอปพลิเคชันมือถือ H3LIS331DL เป็นเซ็นเซอร์เร่งความเร็วดิจิตอลแบบสามแกนซึ่งรวมเข้ากับตัวควบคุมการขัดจังหวะบนชิปอัจฉริยะที่ทริกเกอร์การเคลื่อนไหวบนชิป
แนะนำ:
การวัดความเร่งโดยใช้ ADXL345 และอนุภาคโฟตอน: 4 ขั้นตอน
การวัดความเร่งโดยใช้ ADXL345 และอนุภาคโฟตอน: ADXL345 เป็นมาตรความเร่งแบบ 3 แกนที่มีกำลังไฟต่ำและบางเป็นพิเศษซึ่งใช้พลังงานต่ำมากและมีความละเอียดสูง (13 บิต) ที่การวัดสูงสุด ±16 กรัม ข้อมูลเอาท์พุตดิจิตอลมีรูปแบบเป็นส่วนประกอบสองส่วน 16 บิต และสามารถเข้าถึงได้ผ่านอินเทอร์เฟซดิจิตอล I2 C มันวัดการ
การวัดความเร่งโดยใช้ H3LIS331DL และ Arduino Nano: 4 ขั้นตอน
การวัดความเร่งโดยใช้ H3LIS331DL และ Arduino Nano: H3LIS331DL เป็นเครื่องวัดความเร่งเชิงเส้นแบบ 3 แกนประสิทธิภาพสูงที่ใช้พลังงานต่ำซึ่งเป็นของตระกูล "นาโน" พร้อมอินเทอร์เฟซแบบอนุกรม I²C แบบดิจิตอล H3LIS331DL มีสเกลแบบเต็มที่ผู้ใช้สามารถเลือกได้ ±100g/±200g/±400g และสามารถวัดความเร่งด้วย
การวัดความเร่งโดยใช้ H3LIS331DL และอนุภาคโฟตอน: 4 ขั้นตอน
การวัดความเร่งโดยใช้ H3LIS331DL และอนุภาคโฟตอน: H3LIS331DL เป็นเครื่องวัดความเร่งเชิงเส้นแบบ 3 แกนประสิทธิภาพสูงที่ใช้พลังงานต่ำซึ่งเป็นของตระกูล "นาโน" พร้อมอินเทอร์เฟซแบบอนุกรม I²C แบบดิจิตอล H3LIS331DL มีสเกลแบบเต็มที่ผู้ใช้สามารถเลือกได้ ±100g/±200g/±400g และสามารถวัดความเร่งด้วย
การวัดความเร่งโดยใช้ ADXL345 และ Raspberry Pi: 4 ขั้นตอน
การวัดความเร่งโดยใช้ ADXL345 และ Raspberry Pi: ADXL345 เป็นเครื่องวัดความเร่งแบบ 3 แกนขนาดเล็ก บางและใช้พลังงานต่ำเป็นพิเศษ พร้อมการวัดความละเอียดสูง (13 บิต) ที่สูงถึง ±16 กรัม ข้อมูลเอาท์พุตดิจิตอลมีรูปแบบเป็นส่วนประกอบสองส่วน 16 บิต และสามารถเข้าถึงได้ผ่านอินเทอร์เฟซดิจิตอล I2 C มันวัดการ
การวัดความเร่งโดยใช้ ADXL345 และ Arduino Nano: 4 ขั้นตอน
การวัดความเร่งโดยใช้ ADXL345 และ Arduino Nano: ADXL345 เป็นมาตรความเร่งแบบ 3 แกนแบบ 3 แกนที่ใช้พลังงานต่ำและใช้พลังงานต่ำเป็นพิเศษ ขนาดเล็ก บางและมีความละเอียดสูง (13 บิต) ที่สูงถึง ±16 กรัม ข้อมูลเอาท์พุตดิจิตอลมีรูปแบบเป็นส่วนประกอบสองส่วน 16 บิต และสามารถเข้าถึงได้ผ่านอินเทอร์เฟซดิจิตอล I2 C มันวัดการ