bmi270 --- BMI270 六轴 IMU¶
用于通过 I2C 操作 Bosch BMI270 低功耗六轴惯性测量单元(三轴加速度计加三轴陀螺仪)的驱动程序。该驱动在构造时执行完整的 BMI270 初始化序列——软复位、关闭省电模式、上传配置数据块(configuration blob)以及状态校验——随后再配置所请求的输出数据速率和满量程范围。
该类可选择性地与一个外部的 bmm150.BMM150 磁力计实例关联起来,从而使调用方能够通过 magnet() 方法将 BMI270 + BMM150 这一组合视为单个九轴设备。
备注
本驱动不支持 SPI 模式;传入非 I2C 总线会引发 ValueError。
示例:
import time
from machine import Pin, I2C
from bmi270 import BMI270
imu = BMI270(I2C(1, scl=Pin("P15"), sda=Pin("P14")))
while True:
print("Accelerometer: x:{:>8.3f} y:{:>8.3f} z:{:>8.3f}".format(*imu.accel()))
print("Gyroscope: x:{:>8.3f} y:{:>8.3f} z:{:>8.3f}".format(*imu.gyro()))
time.sleep_ms(100)
类¶
- class bmi270.BMI270(bus: machine.I2C, cs: machine.Pin | None = None, address: int = 0x68, gyro_odr: float = 100, gyro_scale: int = 2000, accel_odr: float = 100, accel_scale: int = 4, bmm_magnet: BMM150 | None = None)¶
构造一个
BMI270实例并运行完整的配置加载初始化序列。如果芯片 ID 不匹配或加载序列失败,则引发OSError。bus传感器所连接的、已配置好的
machine.I2C总线。cs为 SPI 模式预留。必须保持为
None;当前尚未实现 SPI,传入非 I2C 总线会引发ValueError。address设备的 7 位 I2C 地址。默认为
0x68;某些电路板会将 SDO 引脚拉高,从而选择0x69。gyro_odr陀螺仪输出数据速率,单位为 Hz。必须为
0.78、1.5、3.1、6.25、12.5、25、50、100、200、400、800或1200之一。gyro_scale陀螺仪满量程范围,单位为度每秒。必须为
125、250、500、1000或2000之一。accel_odr加速度计输出数据速率,单位为 Hz。取值范围与
gyro_odr相同。accel_scale加速度计满量程范围,单位为 g。必须为
2、4、8或16之一。bmm_magnet可选的
bmm150.BMM150实例。提供该实例时,magnet()方法会委托给它;否则magnet()返回全零值。