imu — imu sensörü

imu modülü, kamera sensörünün altındaki IMU sensörünü okumak için kullanılır.

Not

IMU sensörü (ve bu modül) tüm OpenMV Cam modellerinde bulunmaz.

Kamera kartı yüzü yukarı bakacak şekilde bir masada yatarken:

  • X, kamera sensörünün sağını gösterir.

  • Y, kamera sensörünün altını gösterir (kartın alt kısmına doğru).

  • Z, kamera sensörünün ters yönünü gösterir (masanın içine doğru).

Örnek kullanım – ham ivmeölçeri, jiroskopu ve sıcaklığı sorgula:

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)

Örnek kullanım – kameranın hangi yöne eğildiğini tespit et:

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)

Fonksiyonlar

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

(x, y, z) için ivmeyi milli-g cinsinden bir kayan nokta demeti olarak döndürür.

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

(x, y, z) için açısal hızı saniyede milli-derece cinsinden bir kayan nokta demeti olarak döndürür.

imu.temperature_c() float

IMU sensörü sıcaklığını Celsius derecesi cinsinden döndürür.

imu.roll() float

Kamera modülünün yuvarlanma (roll) açısını derece cinsinden döndürür.

  • 0 -> Kamera dik duruyor.

  • 90 -> Kamera sola döndürülmüş.

  • 180 -> Kamera baş aşağı.

  • 270 -> Kamera sağa döndürülmüş.

imu.pitch() float

Kamera modülünün yunuslama (pitch) açısını derece cinsinden döndürür.

  • 0 -> Kamera dik duruyor.

  • 90 -> Kamera aşağıyı gösteriyor.

  • 180 -> Kamera baş aşağı.

  • 270 -> Kamera yukarıyı gösteriyor.

imu.sleep(enable: bool) None

enable değeri True olarak ayarlandığında IMU sensörünü uyku moduna alır. False onu yeniden uyandırır (varsayılan).

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

addr konumundaki IMU yazmacını val değerine ayarlar.

imu.__read_reg(addr: int) int

addr konumundaki IMU yazmacının değerini döndürür.