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)를 단일 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에서 장치가 응답하면 BMI270BMM150 쌍이 인스턴스화되고(Nano 33 BLE Sense Rev 2), 그렇지 않으면 LSM9DS1이 인스턴스화됩니다(Rev 1). 기반 드라이버는 imu 속성에 보관되며 기본 범위와 출력 데이터 레이트로 구성됩니다.

accel() tuple[float, float, float]

최신 가속도계 측정값을 g(표준 중력) 단위의 (x, y, z) 튜플로 반환합니다.

gyro() tuple[float, float, float]

최신 자이로스코프 측정값을 초당 도(degrees per second) 단위의 (x, y, z) 튜플로 반환합니다.

magnet() tuple[float, float, float]

최신 자력계 측정값을 마이크로테슬라(uT) 단위의 (x, y, z) 튜플로 반환합니다.