imu — imu senzor

Modul imu se používá k načítání IMU senzoru pod senzorem kamery.

Poznámka

IMU senzor (a tento modul) není přítomen na všech modelech OpenMV Cam.

Pro případ, kdy deska kamery leží na stole lícem nahoru:

  • X ukazuje doprava od senzoru kamery.

  • Y ukazuje dolů pod senzor kamery (směrem ke spodní části desky).

  • Z ukazuje v opačném směru než senzor kamery (do stolu).

Příklad použití – dotazování na surové hodnoty akcelerometru, gyroskopu a teploty:

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)

Příklad použití – detekce, jakým směrem je kamera nakloněna:

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)

Funkce

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

Vrací zrychlení pro (x, y, z) jako n-tici float v mili-g.

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

Vrací úhlovou rychlost pro (x, y, z) jako n-tici float v mili-stupních za sekundu.

imu.temperature_c() float

Vrací teplotu IMU senzoru ve stupních Celsia.

imu.roll() float

Vrací úhel náklonu (roll) modulu kamery ve stupních.

  • 0 -> Kamera stojí vzpřímeně.

  • 90 -> Kamera je otočena doleva.

  • 180 -> Kamera je vzhůru nohama.

  • 270 -> Kamera je otočena doprava.

imu.pitch() float

Vrací úhel sklonu (pitch) modulu kamery ve stupních.

  • 0 -> Kamera stojí vzpřímeně.

  • 90 -> Kamera míří dolů.

  • 180 -> Kamera je vzhůru nohama.

  • 270 -> Kamera míří nahoru.

imu.sleep(enable: bool) None

enable nastavené na True uspí IMU senzor. False jej znovu probudí (výchozí).

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

Nastaví registr IMU na addr na val.

imu.__read_reg(addr: int) int

Vrací hodnotu registru IMU na addr.