imu — sensor imu¶
El módulo imu se usa para leer el sensor IMU situado bajo el sensor de la cámara.
Nota
El sensor IMU (y este módulo) no está presente en todos los modelos de OpenMV Cam.
Para cuando la placa de la cámara está apoyada sobre una mesa con la cara hacia arriba:
X apunta hacia la derecha del sensor de la cámara.
Y apunta hacia abajo del sensor de la cámara (hacia la parte inferior de la placa).
Z apunta en la dirección opuesta al sensor de la cámara (hacia el interior de la mesa).
Ejemplo de uso – sondear el acelerómetro, el giroscopio y la temperatura en bruto:
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)
Ejemplo de uso – detectar hacia qué lado está inclinada la cámara:
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)
Funciones¶
- imu.acceleration_mg() Tuple[float, float, float]¶
Devuelve la aceleración para
(x, y, z)como una tupla de floats en mili-g.
- imu.angular_rate_mdps() Tuple[float, float, float]¶
Devuelve la velocidad angular para
(x, y, z)como una tupla de floats en mili-grados por segundo.
- imu.roll() float¶
Devuelve el ángulo de alabeo (roll) del módulo de la cámara en grados.
0 -> La cámara está de pie.
90 -> La cámara está girada hacia la izquierda.
180 -> La cámara está boca abajo.
270 -> La cámara está girada hacia la derecha.
- imu.pitch() float¶
Devuelve el ángulo de cabeceo (pitch) del módulo de la cámara en grados.
0 -> La cámara está de pie.
90 -> La cámara está apuntando hacia abajo.
180 -> La cámara está boca abajo.
270 -> La cámara está apuntando hacia arriba.