bmi270 --- BMI270 六軸 IMU¶
適用於 Bosch BMI270 低功耗六軸慣性測量單元(三軸加速度計加三軸陀螺儀)的 I2C 驅動程式。此驅動程式會在建構時執行完整的 BMI270 初始化序列——軟體重設、停用省電模式、上傳組態 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()會回傳零值。