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.