bmm150 --- BMM150 3-axis magnetometer¶
ไดรเวอร์สำหรับ sensor วัดสนามแม่เหล็ก 3 แกน Bosch BMM150 ผ่าน I2C เมื่อสร้างอินสแตนซ์ ไดรเวอร์จะ soft-reset อุปกรณ์, สลับเข้าสู่โหมดการทำงานปกติที่อัตรา ODR ที่กำหนด และอ่านรีจิสเตอร์ trim ที่ใช้โดยสมการการชดเชยของ Bosch เพื่อแปลงค่าดิบให้เป็นค่าสนามแม่เหล็กที่ผ่านการสอบเทียบแล้ว
Note
โหมด SPI ไม่ได้รับการสนับสนุนโดยไดรเวอร์นี้ การส่ง bus ที่ไม่ใช่ I2C จะทำให้เกิด ValueError
ตัวอย่าง:
import time
from machine import Pin, I2C
from bmm150 import BMM150
imu = BMM150(I2C(1, scl=Pin("P15"), sda=Pin("P14")))
while True:
print("magnetometer: x:{:>8.3f} y:{:>8.3f} z:{:>8.3f}".format(*imu.magnet()))
time.sleep_ms(100)
คลาส¶
- class bmm150.BMM150(bus: machine.I2C, cs: machine.Pin | None = None, address: int = 0x10, magnet_odr: int = 30)¶
สร้างอินสแตนซ์
BMM150, soft-reset ชิป, ตรวจสอบรหัสชิป, กำหนดค่าให้ทำงานในโหมดปกติที่magnet_odrHz และอ่านรีจิสเตอร์ trim จากโรงงานbusbus
machine.I2Cที่กำหนดค่าแล้วซึ่ง sensor เชื่อมต่ออยู่csสงวนไว้สำหรับโหมด SPI ต้องเป็น
None; SPI ยังไม่ได้รับการรองรับในปัจจุบัน และการส่ง bus ที่ไม่ใช่ I2C จะเกิดValueErroraddressที่อยู่ I2C 7 บิตของอุปกรณ์ ค่าเริ่มต้นคือ
0x10magnet_odrอัตราข้อมูลเอาต์พุตของ magnetometer ในหน่วย Hz ต้องเป็นหนึ่งในค่าต่อไปนี้:
2,6,8,10,15,20,25หรือ30; ค่าอื่น ๆ จะเกิดValueError