bmi270 --- BMI270 6軸IMU¶
Bosch BMI270 低消費電力6軸慣性計測ユニット(3軸加速度センサーと3軸ジャイロスコープ)をI2C経由で制御するためのドライバです。このドライバはコンストラクション時にBMI270の完全な初期化シーケンス(ソフトリセット、省電力モードの無効化、構成ブロブのアップロード、ステータス検証)を実行してから、指定された出力データレートとフルスケールレンジを設定します。
このクラスは、外部の bmm150.BMM150 磁力計インスタンスとオプションでリンクできます。これにより、呼び出し側は magnet() メソッドを通じてBMI270とBMM150のペアを単一の9軸デバイスとして扱えます。
注釈
このドライバは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バスです。csSPIモード用に予約されています。
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()はゼロを返します。