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 9軸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 は、オンボードIMUに接続された初期化済みの
machine.I2Cインスタンスです。
構築時にバスがスキャンされます: アドレス
0x68でデバイスが応答した場合はBMI270とBMM150のペアがインスタンス化され(Nano 33 BLE Sense Rev 2)、そうでなければLSM9DS1がインスタンス化されます(Rev 1)。基盤となるドライバはimu属性に保持され、デフォルトのレンジと出力データレートで設定されます。