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

enable, установленный в True, переводит датчик IMU в спящий режим. False снова пробуждает его (по умолчанию).

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

Устанавливает регистр IMU по адресу addr в значение val.

imu.__read_reg(addr: int) int

Возвращает значение регистра IMU по адресу addr.