imu --- Arduino Nano 33 BLE Sense 的 IMU 輔助模組¶
備註
本頁說明 Arduino Nano 33 BLE Sense 的 Python imu 模組(板載 IMU 驅動程式的小型包裝)。若需瞭解 OPENMV_N6、OPENMV_RT1060 與 OPENMV_AE3 相機板上隨附的 OpenMV C 層級 imu 模組,請參閱 imu --- imu 感測器。
此模組是一個專屬於該板的薄包裝層,將 Arduino Nano 33 BLE Sense 的板載慣性測量單元以單一 IMU 物件的形式公開。該板的兩個硬體版本皆可透明地處理:
Rev 1 使用單一顆 LSM9DS1 九軸 IMU。
Rev 2 結合了 Bosch BMI270(加速度計+陀螺儀)與 Bosch BMM150 磁力計。
建構函式會探測 I2C 匯流排上是否存在 BMI270 位址(0x68),並自動選擇對應的驅動程式,因此使用者程式碼只需撰寫一次即可在任一版本上執行。
範例::
import time
import imu
from machine import Pin, I2C
bus = I2C(1, scl=Pin("P15"), sda=Pin("P14"))
sensor = imu.IMU(bus)
while True:
print('Accelerometer: x:{:>8.3f} y:{:>8.3f} z:{:>8.3f}'.format(*sensor.accel()))
print('Gyroscope: x:{:>8.3f} y:{:>8.3f} z:{:>8.3f}'.format(*sensor.gyro()))
print('Magnetometer: x:{:>8.3f} y:{:>8.3f} z:{:>8.3f}'.format(*sensor.magnet()))
print("")
time.sleep_ms(100)
class IMU¶
- class imu.IMU(bus: 'machine.I2C')¶
建構一個繫結至 I2C 匯流排的 IMU 物件。
bus 是一個已初始化的
machine.I2C實例,連接至板載的 IMU。
建構時會掃描匯流排:若有裝置在位址
0x68回應,則實例化一組BMI270加BMM150(Nano 33 BLE Sense Rev 2),否則實例化一顆LSM9DS1(Rev 1)。底層驅動程式會保留在imu屬性上,並以預設量程與輸出資料率進行設定。