imu — imu 센서

imu 모듈은 카메라 센서 아래의 IMU 센서를 읽는 데 사용됩니다.

참고

IMU 센서(및 이 모듈)는 모든 OpenMV Cam 모델에 존재하는 것은 아닙니다.

카메라 보드가 위를 향한 채로 테이블 위에 놓여 있을 때:

  • X는 카메라 센서의 오른쪽을 가리킵니다.

  • Y는 카메라 센서 아래쪽(보드의 하단 방향)을 가리킵니다.

  • Z는 카메라 센서의 반대 방향(테이블 안쪽)을 가리킵니다.

사용 예시 – 원시 가속도계, 자이로 및 온도를 폴링:

import imu
import time

while True:
    ax, ay, az = imu.acceleration_mg()
    gx, gy, gz = imu.angular_rate_mdps()
    t = imu.temperature_c()
    print("accel (mg)  : {:8.1f} {:8.1f} {:8.1f}".format(ax, ay, az))
    print("gyro  (mdps): {:8.1f} {:8.1f} {:8.1f}".format(gx, gy, gz))
    print("temp  (degC): {:5.1f}".format(t))
    time.sleep_ms(200)

사용 예시 – 카메라가 어느 방향으로 기울었는지 검출:

import imu
import time

while True:
    r = imu.roll()
    if abs(r - 90) < 15:
        print("camera rotated left")
    elif abs(r - 270) < 15:
        print("camera rotated right")
    elif abs(r - 180) < 15:
        print("camera upside down")
    else:
        print("camera upright")
    time.sleep_ms(100)

함수

imu.acceleration_mg() Tuple[float, float, float]

(x, y, z) 의 가속도를 밀리-g 단위의 부동소수점 튜플로 반환합니다.

imu.angular_rate_mdps() Tuple[float, float, float]

(x, y, z) 의 각속도를 밀리-도-매-초 단위의 부동소수점 튜플로 반환합니다.

imu.temperature_c() float

IMU 센서 온도를 섭씨 단위로 반환합니다.

imu.roll() float

카메라 모듈의 롤 각도를 도 단위로 반환합니다.

  • 0 -> 카메라가 똑바로 서 있습니다.

  • 90 -> 카메라가 왼쪽으로 회전됨.

  • 180 -> 카메라가 거꾸로 뒤집힘.

  • 270 -> 카메라가 오른쪽으로 회전됨.

imu.pitch() float

카메라 모듈의 피치 각도를 도 단위로 반환합니다.

  • 0 -> 카메라가 똑바로 서 있습니다.

  • 90 -> 카메라가 아래를 가리킴.

  • 180 -> 카메라가 거꾸로 뒤집힘.

  • 270 -> 카메라가 위를 가리킴.

imu.sleep(enable: bool) None

enableTrue 로 설정하면 IMU 센서를 슬립 상태로 전환합니다. False 는 다시 깨웁니다(기본값).

imu.__write_reg(addr: int, val: int) None

addr 의 IMU 레지스터를 val 로 설정합니다.

imu.__read_reg(addr: int) int

addr 의 IMU 레지스터 값을 반환합니다.