imu — sensor imu¶
Moduł imu służy do odczytu sensora IMU znajdującego się pod sensorem kamery.
Informacja
Sensor IMU (oraz ten moduł) nie jest obecny we wszystkich modelach OpenMV Cam.
Dla sytuacji, gdy płytka kamery leży na stole skierowana do góry:
X wskazuje na prawo od sensora kamery.
Y wskazuje w dół, poniżej sensora kamery (w stronę dolnej krawędzi płytki).
Z wskazuje w kierunku przeciwnym do sensora kamery (w głąb stołu).
Przykład użycia – odczyt surowych danych akcelerometru, żyroskopu i temperatury:
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)
Przykład użycia – wykrywanie, w którą stronę kamera jest przechylona:
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)
Funkcje¶
- imu.acceleration_mg() Tuple[float, float, float]¶
Zwraca przyspieszenie dla
(x, y, z)jako krotkę liczb zmiennoprzecinkowych w mili-g.
- imu.angular_rate_mdps() Tuple[float, float, float]¶
Zwraca prędkość kątową dla
(x, y, z)jako krotkę liczb zmiennoprzecinkowych w mili-stopniach na sekundę.
- imu.roll() float¶
Zwraca kąt przechyłu (roll) modułu kamery w stopniach.
0 -> Kamera stoi pionowo.
90 -> Kamera jest obrócona w lewo.
180 -> Kamera jest do góry nogami.
270 -> Kamera jest obrócona w prawo.
- imu.pitch() float¶
Zwraca kąt pochylenia (pitch) modułu kamery w stopniach.
0 -> Kamera stoi pionowo.
90 -> Kamera jest skierowana w dół.
180 -> Kamera jest do góry nogami.
270 -> Kamera jest skierowana w górę.