สารบัญ:
- ขั้นตอนที่ 1: ฮาร์ดแวร์ที่จำเป็น:
- ขั้นตอนที่ 2: การเชื่อมต่อฮาร์ดแวร์:
- ขั้นตอนที่ 3: รหัสสำหรับการวัดความเร่ง:
- ขั้นตอนที่ 4: การใช้งาน:
วีดีโอ: การวัดความเร่งโดยใช้ ADXL345 และ Raspberry Pi: 4 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
ADXL345 เป็นมาตรความเร่งแบบ 3 แกนที่มีขนาดเล็ก บาง และใช้พลังงานต่ำเป็นพิเศษ พร้อมการวัดความละเอียดสูง (13 บิต) ที่สูงถึง ±16 กรัม ข้อมูลเอาท์พุตดิจิตอลมีรูปแบบเป็นส่วนประกอบสองส่วน 16 บิต และสามารถเข้าถึงได้ผ่านอินเทอร์เฟซดิจิตอล I2 C มันวัดความเร่งคงที่ของแรงโน้มถ่วงในการใช้งานการตรวจจับการเอียง รวมถึงการเร่งความเร็วแบบไดนามิกที่เกิดจากการเคลื่อนไหวหรือการกระแทก ความละเอียดสูง (3.9 มก./LSB) ช่วยให้สามารถวัดการเปลี่ยนแปลงความเอียงได้น้อยกว่า 1.0 °
ในบทช่วยสอนนี้ มีการสาธิตการเชื่อมต่อโมดูลเซ็นเซอร์ ADXL345 กับ raspberry pi และแสดงการเขียนโปรแกรมโดยใช้ภาษาไพ ธ อนด้วย ในการอ่านค่าความเร่งใน 3 แกนทั้งหมด เราได้ใช้ raspberry pi กับอะแดปเตอร์ I2C อะแดปเตอร์ I2C นี้ทำให้การเชื่อมต่อกับโมดูลเซ็นเซอร์ทำได้ง่ายและเชื่อถือได้มากขึ้น
ขั้นตอนที่ 1: ฮาร์ดแวร์ที่จำเป็น:
วัสดุที่เราต้องการเพื่อให้บรรลุเป้าหมายประกอบด้วยส่วนประกอบฮาร์ดแวร์ต่อไปนี้:
1. ADXL345
2. ราสเบอร์รี่ปี่
3. สายเคเบิล I2C
4. I2C Shield สำหรับราสเบอร์รี่ pi
5. สายเคเบิลอีเธอร์เน็ต
ขั้นตอนที่ 2: การเชื่อมต่อฮาร์ดแวร์:
ส่วนการเชื่อมต่อฮาร์ดแวร์โดยทั่วไปจะอธิบายการเชื่อมต่อสายไฟที่จำเป็นระหว่างเซ็นเซอร์และราสเบอร์รี่ pi ตรวจสอบให้แน่ใจว่าการเชื่อมต่อถูกต้องเป็นสิ่งจำเป็นพื้นฐานในขณะที่ทำงานกับระบบใด ๆ สำหรับเอาต์พุตที่ต้องการ ดังนั้น การเชื่อมต่อที่จำเป็นมีดังนี้:
ADXL345 จะทำงานมากกว่า I2C นี่คือตัวอย่างไดอะแกรมการเดินสาย ซึ่งสาธิตวิธีเชื่อมต่อแต่ละอินเทอร์เฟซของเซ็นเซอร์
นอกกรอบ บอร์ดได้รับการกำหนดค่าสำหรับอินเทอร์เฟซ I2C ดังนั้นเราขอแนะนำให้ใช้การเชื่อมต่อนี้หากคุณไม่เชื่อเรื่องพระเจ้า
สิ่งที่คุณต้องมีคือสี่สาย! ต้องใช้พิน Vcc, Gnd, SCL และ SDA เพียงสี่การเชื่อมต่อเท่านั้น และเชื่อมต่อด้วยสายเคเบิล I2C
การเชื่อมต่อเหล่านี้แสดงให้เห็นในภาพด้านบน
ขั้นตอนที่ 3: รหัสสำหรับการวัดความเร่ง:
ข้อดีของการใช้ raspberry pi คือ ให้ความยืดหยุ่นของภาษาการเขียนโปรแกรมที่คุณต้องการตั้งโปรแกรมบอร์ดเพื่อเชื่อมต่อกับเซ็นเซอร์ ใช้ประโยชน์จากข้อได้เปรียบของบอร์ดนี้ เรากำลังสาธิตการเขียนโปรแกรมในไพ ธ อนที่นี่ รหัสหลามสำหรับ ADXL345 สามารถดาวน์โหลดได้จากชุมชน github ของเราที่ควบคุมทุกอย่างในชุมชน
เพื่อความสะดวกของผู้ใช้ เรากำลังอธิบายรหัสที่นี่ด้วย:
ในขั้นแรกของการเข้ารหัส คุณต้องดาวน์โหลดไลบรารี smbus ในกรณีของ python เนื่องจากไลบรารีนี้รองรับฟังก์ชันที่ใช้ในโค้ด ดังนั้น หากต้องการดาวน์โหลดห้องสมุด คุณสามารถไปที่ลิงก์ต่อไปนี้:
pypi.python.org/pypi/smbus-cffi/0.5.1
คุณสามารถคัดลอกโค้ดหลามที่ใช้งานได้สำหรับเซ็นเซอร์นี้จากที่นี่ด้วย:
นำเข้า smbus
เวลานำเข้า
# รับ I2C busbus = 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
ส่วนของรหัสที่กล่าวถึงด้านล่างประกอบด้วยไลบรารีที่จำเป็นสำหรับการดำเนินการรหัสหลามที่ถูกต้อง
นำเข้า smbusimport เวลา
รหัสสามารถดำเนินการได้โดยพิมพ์คำสั่งที่กล่าวถึงด้านล่างในพรอมต์คำสั่ง
$> python ADXL345.py
เอาต์พุตของเซ็นเซอร์ยังแสดงในภาพด้านบนสำหรับการอ้างอิงของผู้ใช้
ขั้นตอนที่ 4: การใช้งาน:
ADXL345 เป็นมาตรความเร่งแบบ 3 แกนขนาดเล็ก บาง ใช้พลังงานต่ำเป็นพิเศษ ซึ่งสามารถใช้ในเครื่องโทรศัพท์ อุปกรณ์ทางการแพทย์ ฯลฯ แอปพลิเคชันนี้ยังรวมถึงอุปกรณ์เล่นเกมและอุปกรณ์ชี้ตำแหน่ง เครื่องมือวัดทางอุตสาหกรรม อุปกรณ์นำทางส่วนบุคคล และการป้องกันฮาร์ดดิสก์ไดรฟ์ (HDD)
แนะนำ:
การวัดความเร่งโดยใช้ 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 และสามารถวัดความเร่งด้วย
การวัดความเร่งโดยใช้ H3LIS331DL และ Raspberry Pi: 4 ขั้นตอน
การวัดความเร่งโดยใช้ H3LIS331DL และ Raspberry Pi: H3LIS331DL เป็นเครื่องวัดความเร่งเชิงเส้นแบบ 3 แกนประสิทธิภาพสูงที่ใช้พลังงานต่ำซึ่งอยู่ในตระกูล "นาโน" พร้อมอินเทอร์เฟซแบบอนุกรม I²C แบบดิจิตอล H3LIS331DL มีสเกลแบบเต็มที่ผู้ใช้สามารถเลือกได้ ±100g/±200g/±400g และสามารถวัดความเร่งด้วย
การวัดความเร่งโดยใช้ ADXL345 และ Arduino Nano: 4 ขั้นตอน
การวัดความเร่งโดยใช้ ADXL345 และ Arduino Nano: ADXL345 เป็นมาตรความเร่งแบบ 3 แกนแบบ 3 แกนที่ใช้พลังงานต่ำและใช้พลังงานต่ำเป็นพิเศษ ขนาดเล็ก บางและมีความละเอียดสูง (13 บิต) ที่สูงถึง ±16 กรัม ข้อมูลเอาท์พุตดิจิตอลมีรูปแบบเป็นส่วนประกอบสองส่วน 16 บิต และสามารถเข้าถึงได้ผ่านอินเทอร์เฟซดิจิตอล I2 C มันวัดการ