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초당 각도(degrees-per-second) 단위의 자이로스코프 풀스케일 범위입니다.
245,500또는2000중 하나여야 합니다.accel_odr가속도계 출력 데이터 레이트(Hz)입니다.
gyro_odr과 동일한 값 집합을 사용합니다.accel_scaleg 단위의 가속도계 풀스케일 범위입니다.
2,4,8또는16중 하나여야 합니다.magnet_odr자력계 출력 데이터 레이트(Hz)입니다.
0.625,1.25,2.5,5,10,20,40또는80중 하나여야 합니다.magnet_scale가우스 단위의 자력계 풀스케일 범위입니다.
4,8,12또는16중 하나여야 합니다.