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.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.