สารบัญ:
- ขั้นตอนที่ 1: ฮาร์ดแวร์ที่จำเป็น:
- ขั้นตอนที่ 2: การเชื่อมต่อฮาร์ดแวร์:
- ขั้นตอนที่ 3: รหัส Python สำหรับการวัดการเร่งความเร็ว:
- ขั้นตอนที่ 4: การใช้งาน:
วีดีโอ: การวัดอัตราเร่งโดยใช้ BMA250 และ Raspberry Pi: 4 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
BMA250 เป็นเครื่องวัดความเร่งแบบ 3 แกนขนาดเล็ก บาง และใช้พลังงานต่ำเป็นพิเศษ พร้อมการวัดความละเอียดสูง (13 บิต) ที่สูงถึง ±16 กรัม ข้อมูลเอาท์พุตดิจิตอลมีรูปแบบเป็นส่วนประกอบสองส่วน 16 บิต และสามารถเข้าถึงได้ผ่านอินเทอร์เฟซดิจิตอล I2C มันวัดความเร่งคงที่ของแรงโน้มถ่วงในการใช้งานการตรวจจับการเอียง รวมถึงการเร่งความเร็วแบบไดนามิกที่เกิดจากการเคลื่อนไหวหรือการกระแทก ความละเอียดสูง (3.9 มก./LSB) ช่วยให้สามารถวัดการเปลี่ยนแปลงความเอียงได้น้อยกว่า 1.0 °
ในบทช่วยสอนนี้ เราจะวัดความเร่งในแกนตั้งฉากทั้งสามแกนโดยใช้ BMA250 และ Raspberry Pi เซ็นเซอร์ได้รับการตั้งโปรแกรมในภาษาไพ ธ อน
ขั้นตอนที่ 1: ฮาร์ดแวร์ที่จำเป็น:
วัสดุที่เราต้องการเพื่อให้บรรลุเป้าหมายประกอบด้วยส่วนประกอบฮาร์ดแวร์ต่อไปนี้:
1. กทม.250
2. ราสเบอร์รี่ปี่
3. สายเคเบิล I2C
4. I2C Shield สำหรับ Raspberry Pi
5. สายเคเบิลอีเธอร์เน็ต
ขั้นตอนที่ 2: การเชื่อมต่อฮาร์ดแวร์:
ส่วนการเชื่อมต่อฮาร์ดแวร์โดยทั่วไปจะอธิบายการเชื่อมต่อสายไฟที่จำเป็นระหว่างเซ็นเซอร์และราสเบอร์รี่ pi ตรวจสอบให้แน่ใจว่าการเชื่อมต่อถูกต้องเป็นสิ่งจำเป็นพื้นฐานในขณะที่ทำงานกับระบบใด ๆ สำหรับเอาต์พุตที่ต้องการ ดังนั้น การเชื่อมต่อที่จำเป็นมีดังนี้:
BMA250 จะทำงานเหนือ I2C นี่คือตัวอย่างไดอะแกรมการเดินสาย ซึ่งสาธิตวิธีเชื่อมต่อแต่ละอินเทอร์เฟซของเซ็นเซอร์
นอกกรอบ บอร์ดได้รับการกำหนดค่าสำหรับอินเทอร์เฟซ I2C ดังนั้นเราขอแนะนำให้ใช้การเชื่อมต่อนี้หากคุณไม่เชื่อเรื่องพระเจ้า สิ่งที่คุณต้องมีคือสี่สาย!
ต้องใช้พิน Vcc, Gnd, SCL และ SDA เพียงสี่การเชื่อมต่อเท่านั้น และเชื่อมต่อด้วยสายเคเบิล I2C
การเชื่อมต่อเหล่านี้แสดงให้เห็นในภาพด้านบน
ขั้นตอนที่ 3: รหัส Python สำหรับการวัดการเร่งความเร็ว:
ข้อดีของการใช้ raspberry pi คือ ให้ความยืดหยุ่นของภาษาการเขียนโปรแกรมที่คุณต้องการตั้งโปรแกรมบอร์ดเพื่อเชื่อมต่อกับเซ็นเซอร์ ใช้ประโยชน์จากข้อได้เปรียบของบอร์ดนี้ เรากำลังสาธิตการเขียนโปรแกรมในไพ ธ อนที่นี่ Python เป็นหนึ่งในภาษาโปรแกรมที่ง่ายที่สุดพร้อมไวยากรณ์ที่ง่ายที่สุด รหัสหลามสำหรับ BMA250 สามารถดาวน์โหลดได้จากชุมชน GitHub ของเราที่ Dcube Store
เพื่อความสะดวกของผู้ใช้ เรากำลังอธิบายรหัสที่นี่ด้วย:
ในขั้นแรกของการเข้ารหัส คุณต้องดาวน์โหลดไลบรารี SMBus ในกรณีของ python เนื่องจากไลบรารีนี้รองรับฟังก์ชันที่ใช้ในโค้ด ดังนั้น หากต้องการดาวน์โหลดห้องสมุด คุณสามารถไปที่ลิงก์ต่อไปนี้:
pypi.python.org/pypi/smbus-cffi/0.5.1
คุณสามารถคัดลอกรหัสการทำงานได้จากที่นี่ด้วย:
นำเข้า smbus
เวลานำเข้า
# รับ I2C busbus = smbus. SMBus(1)
# BMA250 ที่อยู่ 0x18(24)
# เลือกรีจิสเตอร์การเลือกช่วง 0x0F(15)
# 0x03(03) กำหนดช่วง = +/-2gbus.write_byte_data(0x18, 0x0F, 0x03)
# ที่อยู่ BMA250, 0x18(24)# เลือกการลงทะเบียนแบนด์วิดท์, 0x10(16)
# 0x08(08) แบนด์วิดท์ = 7.81 Hzbus.write_byte_data(0x18, 0x10, 0x08)
เวลานอน(0.5)
# BMA250 ที่อยู่ 0x18(24)
# อ่านข้อมูลย้อนหลังจาก 0x02 (02), 6 ไบต์
# แกน X LSB, แกน X MSB, แกน Y LSB, แกน Y MSB, แกน Z LSB, แกน Z MSB
ข้อมูล = bus.read_i2c_block_data(0x18, 0x02, 6)
# แปลงข้อมูลเป็น 10 บิต
xAccl = (ข้อมูล[1] * 256 + (ข้อมูล[0] & 0xC0)) / 64
ถ้า xAccl > 511:
xAccl -= 1024
yAccl = (ข้อมูล[3] * 256 + (ข้อมูล[2] & 0xC0)) / 64
ถ้า yAccl > 511:
yAccl -= 1024
zAccl = (ข้อมูล[5] * 256 + (ข้อมูล[4] & 0xC0)) / 64
ถ้า zAccl > 511:
zAccl -= 1024
# ส่งออกข้อมูลไปยังหน้าจอ
พิมพ์ "ความเร่งในแกน X: %d" % xAccl
พิมพ์ "ความเร่งในแกน Y: %d" % yAccl
พิมพ์ "ความเร่งในแกน Z: %d" % zAccl
รหัสถูกดำเนินการโดยใช้คำสั่งต่อไปนี้:
$> python BMA250.py จีที; หลาม BMA250.py
เอาต์พุตของเซ็นเซอร์แสดงในภาพด้านบนสำหรับการอ้างอิงของผู้ใช้
ขั้นตอนที่ 4: การใช้งาน:
มาตรความเร่งอย่าง BMA250 ส่วนใหญ่จะพบแอปพลิเคชั่นในเกมและแสดงการสลับโปรไฟล์ โมดูลเซ็นเซอร์นี้ยังใช้ในระบบการจัดการพลังงานขั้นสูงสำหรับแอปพลิเคชันมือถือ BMA250 เป็นเซ็นเซอร์เร่งความเร็วดิจิตอลแบบสามแกนซึ่งรวมเข้ากับตัวควบคุมการขัดจังหวะการเคลื่อนไหวบนชิปอัจฉริยะที่กระตุ้น
แนะนำ:
ติดตาม: ศูนย์สื่อขั้นสูงพร้อม Odroid N2 และ Kodi (รองรับ 4k และ HEVC): 3 ขั้นตอน
ติดตาม: Advanced Media Center พร้อม Odroid N2 และ Kodi (รองรับ 4k และ HEVC): บทความนี้เป็นบทความต่อจากบทความก่อนหน้าของฉันที่ประสบความสำเร็จค่อนข้างมากเกี่ยวกับการสร้างศูนย์สื่ออเนกประสงค์ โดยอ้างอิงจาก Raspberry PI ที่ได้รับความนิยมมากในตอนแรก แต่ ในภายหลัง เนื่องจากไม่มีเอาต์พุตที่สอดคล้องกับ HEVC, H.265 และ HDMI 2.2 จึงมีสวิตช์
Blinds Control ด้วย ESP8266, Google Home และ Openhab Integration และ Webcontrol: 5 ขั้นตอน (พร้อมรูปภาพ)
การควบคุมมู่ลี่ด้วย ESP8266, Google Home และ Openhab Integration และ Webcontrol: ในคำแนะนำนี้ ฉันจะแสดงให้คุณเห็นว่าฉันเพิ่มระบบอัตโนมัติให้กับมู่ลี่ของฉันอย่างไร ฉันต้องการเพิ่มและลบระบบอัตโนมัติได้ ดังนั้นการติดตั้งทั้งหมดจึงเป็นแบบหนีบ ส่วนหลักคือ: สเต็ปเปอร์มอเตอร์ ตัวขับสเต็ปควบคุม bij ESP-01 เกียร์และการติดตั้ง
DIY IBeacon และ Beacon Scanner ด้วย Raspberry Pi และ HM13: 3 ขั้นตอน
DIY IBeacon และ Beacon Scanner ด้วย Raspberry Pi และ HM13: Story A beacon จะส่งสัญญาณอย่างต่อเนื่องเพื่อให้อุปกรณ์บลูทู ธ อื่น ๆ รู้ว่ามีอยู่ และฉันอยากได้บีคอนบลูทูธเพื่อติดตามกุญแจมาตลอด เพราะฉันลืมเอามันมาเหมือน 10 ครั้งในปีที่แล้ว และฉันก็เกิดขึ้น
การวัดอัตราเร่งโดยใช้ BMA250 และ Arduino Nano: 4 ขั้นตอน
การวัดการเร่งความเร็วโดยใช้ BMA250 และ Arduino Nano: BMA250 เป็นมาตรวัดความเร่งแบบ 3 แกนขนาดเล็กบางและใช้พลังงานต่ำเป็นพิเศษ พร้อมการวัดความละเอียดสูง (13 บิต) ที่สูงถึง ±16 กรัม ข้อมูลเอาท์พุตดิจิตอลมีรูปแบบเป็นส่วนประกอบสองส่วน 16 บิต และสามารถเข้าถึงได้ผ่านอินเทอร์เฟซดิจิตอล I2C Itmeasures คงที่
RuuviTag และ PiZero W และ Blinkt! เทอร์โมมิเตอร์แบบ Bluetooth Beacon: 3 ขั้นตอน (พร้อมรูปภาพ)
RuuviTag และ PiZero W และ Blinkt! เครื่องวัดอุณหภูมิที่ใช้ Bluetooth Beacon: คำแนะนำนี้อธิบายวิธีการอ่านข้อมูลอุณหภูมิและความชื้นจาก RuuviTag โดยใช้ Bluetooth กับ Raspberry Pi Zero W และเพื่อแสดงค่าเป็นเลขฐานสองบน Pimoroni กะพริบตา! pHAT.หรือเรียกสั้นๆ ว่า จะสร้างสถานะอย่างไร