imu — imu érzékelő

Az imu modul a kamera érzékelője alatt lévő IMU érzékelő olvasására szolgál.

Megjegyzés

Az IMU érzékelő (és ez a modul) nincs jelen minden OpenMV Cam modellen.

Amikor a kameralap az asztalon fekszik, felfelé nézve:

  • Az X a kamera érzékelőjétől jobbra mutat.

  • Az Y a kamera érzékelője alá mutat (a lap alja felé).

  • A Z a kamera érzékelőjével ellentétes irányba mutat (az asztal felé).

Példa használat – a nyers gyorsulásmérő, giroszkóp és hőmérséklet lekérdezése:

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élda használat – annak észlelése, melyik irányba van döntve a kamera:

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)

Függvények

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

Visszaadja az (x, y, z) gyorsulását float tuple-ként milli-g-ben.

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

Visszaadja az (x, y, z) szögsebességét float tuple-ként milli-fok-per-másodpercben.

imu.temperature_c() float

Visszaadja az IMU érzékelő hőmérsékletét Celsius-fokban.

imu.roll() float

Visszaadja a kameramodul dőlésszögét (roll) fokban.

  • 0 -> A kamera áll.

  • 90 -> A kamera balra van forgatva.

  • 180 -> A kamera fejjel lefelé áll.

  • 270 -> A kamera jobbra van forgatva.

imu.pitch() float

Visszaadja a kameramodul bólintási szögét (pitch) fokban.

  • 0 -> A kamera áll.

  • 90 -> A kamera lefelé néz.

  • 180 -> A kamera fejjel lefelé áll.

  • 270 -> A kamera felfelé néz.

imu.sleep(enable: bool) None

Az enable True értékre állítása alvó állapotba helyezi az IMU érzékelőt. A False visszaébreszti (ez az alapértelmezett).

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

Az addr címen lévő IMU regisztert a val értékre állítja.

imu.__read_reg(addr: int) int

Visszaadja az addr címen lévő IMU regiszter értékét.