imu — sensore imu¶
Il modulo imu è usato per leggere il sensore IMU situato sotto il sensore della camera.
Nota
Il sensore IMU (e questo modulo) non è presente su tutti i modelli di OpenMV Cam.
Per quando la scheda della camera è appoggiata su un tavolo rivolta verso l’alto:
X punta verso destra rispetto al sensore della camera.
Y punta verso il basso sotto il sensore della camera (verso la parte inferiore della scheda).
Z punta nella direzione opposta a quella del sensore della camera (verso il tavolo).
Esempio di utilizzo – interroga i valori raw di accelerometro, giroscopio e temperatura:
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)
Esempio di utilizzo – rileva in che direzione è inclinata la camera:
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)
Funzioni¶
- imu.acceleration_mg() Tuple[float, float, float]¶
Restituisce l’accelerazione per
(x, y, z)come tupla di float in milli-g.
- imu.angular_rate_mdps() Tuple[float, float, float]¶
Restituisce la velocità angolare per
(x, y, z)come tupla di float in milli-gradi-al-secondo.
- imu.roll() float¶
Restituisce l’angolo di rollio del modulo della camera in gradi.
0 -> La camera è in piedi.
90 -> La camera è ruotata a sinistra.
180 -> La camera è capovolta.
270 -> La camera è ruotata a destra.
- imu.pitch() float¶
Restituisce l’angolo di beccheggio del modulo della camera in gradi.
0 -> La camera è in piedi.
90 -> La camera punta verso il basso.
180 -> La camera è capovolta.
270 -> La camera punta verso l’alto.