lsm9ds1 --- LSM9DS1 9 轴 IMU¶
用于通过 I2C 连接 ST LSM9DS1 iNEMO 惯性模块的驱动程序。LSM9DS1 将 3 轴加速度计、3 轴陀螺仪和 3 轴磁力计集成在单个封装中;加速度计和陀螺仪共用一个 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 寄存器,配置全部三个传感器,并以连续模式启用加速度计/陀螺仪 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之一。