imu — imu senzor

Modul imu koristi se za čitanje IMU senzora ispod senzora kamere.

Napomena

IMU senzor (i ovaj modul) nije prisutan na svim modelima OpenMV Cam.

Za slučaj kada ploča kamere leži na stolu okrenuta licem prema gore:

  • X pokazuje udesno od senzora kamere.

  • Y pokazuje prema dolje ispod senzora kamere (prema dnu ploče).

  • Z pokazuje u suprotnom smjeru od senzora kamere (u stol).

Primjer uporabe – ispitivanje sirovih vrijednosti akcelerometra, žiroskopa i temperature:

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)

Primjer uporabe – otkrivanje u kojem je smjeru kamera nagnuta:

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)

Funkcije

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

Vraća ubrzanje za (x, y, z) kao tuple float vrijednosti u mili-g jedinicama.

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

Vraća kutnu brzinu za (x, y, z) kao tuple float vrijednosti u mili-stupnjevima po sekundi.

imu.temperature_c() float

Vraća temperaturu IMU senzora u stupnjevima Celzija.

imu.roll() float

Vraća kut valjanja (roll) modula kamere u stupnjevima.

  • 0 -> Kamera stoji uspravno.

  • 90 -> Kamera je zakrenuta ulijevo.

  • 180 -> Kamera je naopako.

  • 270 -> Kamera je zakrenuta udesno.

imu.pitch() float

Vraća kut poniranja (pitch) modula kamere u stupnjevima.

  • 0 -> Kamera stoji uspravno.

  • 90 -> Kamera je usmjerena prema dolje.

  • 180 -> Kamera je naopako.

  • 270 -> Kamera je usmjerena prema gore.

imu.sleep(enable: bool) None

enable postavljen na True uspavljuje IMU senzor. False ga ponovno budi (zadano).

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

Postavlja IMU registar na addr na val.

imu.__read_reg(addr: int) int

Vraća vrijednost IMU registra na addr.