imu — imu-sensor

De imu-module wordt gebruikt voor het uitlezen van de IMU-sensor onder de camerasensor.

Notitie

De IMU-sensor (en deze module) is niet op alle OpenMV Cam-modellen aanwezig.

Voor wanneer het camerabord met de voorkant naar boven op een tafel ligt:

  • X wijst naar rechts van de camerasensor.

  • Y wijst naar beneden onder de camerasensor (richting de onderkant van het bord).

  • Z wijst in de tegenovergestelde richting van de camerasensor (de tafel in).

Voorbeeldgebruik – peil de ruwe versnellingsmeter, gyroscoop en temperatuur:

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)

Voorbeeldgebruik – detecteer in welke richting de camera gekanteld is:

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)

Functies

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

Retourneert de versnelling voor (x, y, z) als een float-tuple in milli-g’s.

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

Retourneert de hoeksnelheid voor (x, y, z) als een float-tuple in milli-graden-per-seconde.

imu.temperature_c() float

Retourneert de temperatuur van de IMU-sensor in graden Celsius.

imu.roll() float

Retourneert de rolhoek van de cameramodule in graden.

  • 0 -> Camera staat rechtop.

  • 90 -> Camera is naar links gedraaid.

  • 180 -> Camera staat ondersteboven.

  • 270 -> Camera is naar rechts gedraaid.

imu.pitch() float

Retourneert de pitchhoek van de cameramodule in graden.

  • 0 -> Camera staat rechtop.

  • 90 -> Camera wijst naar beneden.

  • 180 -> Camera staat ondersteboven.

  • 270 -> Camera wijst naar boven.

imu.sleep(enable: bool) None

enable ingesteld op True zet de IMU-sensor in slaapstand. False maakt hem weer wakker (de standaard).

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

Stelt het IMU-register op addr in op val.

imu.__read_reg(addr: int) int

Retourneert de waarde van het IMU-register op addr.