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) як кортеж float у мілі-g.

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

Повертає кутову швидкість для (x, y, z) як кортеж float у міліградусах на секунду.

imu.temperature_c() float

Повертає температуру датчика IMU у градусах Цельсія.

imu.roll() float

Повертає кут крену модуля камери у градусах.

  • 0 -> Камера стоїть вертикально.

  • 90 -> Камера повернута вліво.

  • 180 -> Камера перевернута донизу.

  • 270 -> Камера повернута вправо.

imu.pitch() float

Повертає кут тангажу модуля камери у градусах.

  • 0 -> Камера стоїть вертикально.

  • 90 -> Камера нахилена вниз.

  • 180 -> Камера перевернута донизу.

  • 270 -> Камера нахилена вгору.

imu.sleep(enable: bool) None

enable зі значенням True переводить датчик IMU у сплячий режим. False виводить його з нього (за замовчуванням).

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

Встановлює регістр IMU за адресою addr у значення val.

imu.__read_reg(addr: int) int

Повертає значення регістра IMU за адресою addr.