lsm9ds1 --- LSM9DS1 9 軸 IMU¶
ST LSM9DS1 iNEMO 慣性モジュールを I2C 経由で扱うドライバです。LSM9DS1 は 3 軸加速度計、3 軸ジャイロスコープ、3 軸磁気センサーを単一のパッケージに統合しています。加速度計とジャイロスコープは 1 つの I2C アドレスを共有し、磁気センサーは別のアドレスで応答します。このドライバはまた、オンチップの 16 段ジャイロ/加速度 FIFO を有効にして、iter_accel_gyro() を通じて直近のサンプルを効率的に取り出せるようにします。
例:
import time
from machine import Pin, I2C
from lsm9ds1 import LSM9DS1
imu = LSM9DS1(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("Magnetometer: x:{:>8.3f} y:{:>8.3f} z:{:>8.3f}".format(*imu.magnet()))
print("Gyroscope: x:{:>8.3f} y:{:>8.3f} z:{:>8.3f}".format(*imu.gyro()))
time.sleep_ms(100)
クラス¶
- class lsm9ds1.LSM9DS1(bus: machine.I2C, address_imu: int = 0x6B, address_magnet: int = 0x1E, gyro_odr: float = 952, gyro_scale: int = 245, accel_odr: float = 952, accel_scale: int = 4, magnet_odr: int = 80, magnet_scale: int = 4)¶
LSM9DS1インスタンスを構築し、両方のサブデバイスの WHO_AM_I レジスタを検証し、3 つのセンサーすべてを設定し、加速度/ジャイロ FIFO を連続モードで有効にします。busセンサーが接続されている、設定済みの
machine.I2Cバス。address_imu加速度計/ジャイロスコープのサブデバイスの 7 ビット I2C アドレス。デフォルトは
0x6Bです。address_magnet磁気センサーのサブデバイスの 7 ビット I2C アドレス。デフォルトは
0x1Eです。gyro_odrジャイロスコープの出力データレート(Hz)。
0(オフ)、14.9、59.5、119、238、476、952のいずれかでなければなりません。gyro_scaleジャイロスコープのフルスケール範囲(度毎秒)。
245、500、2000のいずれかでなければなりません。accel_odr加速度計の出力データレート(Hz)。
gyro_odrと同じ値の集合です。accel_scale加速度計のフルスケール範囲(g)。
2、4、8、16のいずれかでなければなりません。magnet_odr磁気センサーの出力データレート(Hz)。
0.625、1.25、2.5、5、10、20、40、80のいずれかでなければなりません。magnet_scale磁気センサーのフルスケール範囲(ガウス)。
4、8、12、16のいずれかでなければなりません。