imu — IMU-Sensor¶
Das Modul imu wird zum Auslesen des IMU-Sensors unter dem Kamerasensor verwendet.
Bemerkung
Der IMU-Sensor (und dieses Modul) ist nicht auf allen OpenMV-Cam-Modellen vorhanden.
Wenn das Kameraboard mit der Vorderseite nach oben auf einem Tisch liegt:
X zeigt nach rechts vom Kamerasensor.
Y zeigt nach unten unterhalb des Kamerasensors (zum unteren Rand des Boards).
Z zeigt in die entgegengesetzte Richtung des Kamerasensors (in den Tisch).
Beispielverwendung – den rohen Beschleunigungsmesser, das Gyroskop und die Temperatur abfragen:
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)
Beispielverwendung – erkennen, in welche Richtung die Kamera geneigt ist:
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)
Funktionen¶
- imu.acceleration_mg() Tuple[float, float, float]¶
Gibt die Beschleunigung für
(x, y, z)als Float-Tupel in Milli-g zurück.
- imu.angular_rate_mdps() Tuple[float, float, float]¶
Gibt die Winkelgeschwindigkeit für
(x, y, z)als Float-Tupel in Milligrad pro Sekunde zurück.
- imu.roll() float¶
Gibt den Rollwinkel des Kameramoduls in Grad zurück.
0 -> Kamera steht aufrecht.
90 -> Kamera ist nach links gedreht.
180 -> Kamera steht auf dem Kopf.
270 -> Kamera ist nach rechts gedreht.
- imu.pitch() float¶
Gibt den Nickwinkel des Kameramoduls in Grad zurück.
0 -> Kamera steht aufrecht.
90 -> Kamera zeigt nach unten.
180 -> Kamera steht auf dem Kopf.
270 -> Kamera zeigt nach oben.