imu — capteur imu#

Le module imu sert à lire le capteur IMU situé sous le capteur de la caméra.

Note

Le capteur IMU (et ce module) n’est pas présent sur tous les modèles d’OpenMV Cam.

Pour le cas où la carte de la caméra est posée à plat sur une table, face vers le haut :

  • X pointe vers la droite du capteur de la caméra.

  • Y pointe vers le bas, sous le capteur de la caméra (vers le bas de la carte).

  • Z pointe dans la direction opposée au capteur de la caméra (vers l’intérieur de la table).

Exemple d’utilisation – interroger l’accéléromètre, le gyroscope et la température bruts

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)

Exemple d’utilisation – détecter dans quel sens la caméra est inclinée

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)

Fonctions#

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

Renvoie l’accélération pour (x, y, z) sous forme de tuple de flottants en milli-g.

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

Renvoie la vitesse angulaire pour (x, y, z) sous forme de tuple de flottants en milli-degrés par seconde.

imu.temperature_c() float#

Renvoie la température du capteur IMU en degrés Celsius.

imu.roll() float#

Renvoie l’angle de roulis du module caméra en degrés.

  • 0 -> La caméra est debout.

  • 90 -> La caméra est tournée vers la gauche.

  • 180 -> La caméra est à l’envers.

  • 270 -> La caméra est tournée vers la droite.

imu.pitch() float#

Renvoie l’angle de tangage du module caméra en degrés.

  • 0 -> La caméra est debout.

  • 90 -> La caméra pointe vers le bas.

  • 180 -> La caméra est à l’envers.

  • 270 -> La caméra pointe vers le haut.

imu.sleep(enable: bool) None#

enable réglé sur True met le capteur IMU en veille. False le réveille (la valeur par défaut).

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

Définit le registre IMU situé à addr à la valeur val.

imu.__read_reg(addr: int) int#

Renvoie la valeur du registre IMU situé à addr.