imu — датчик IMU¶
Модуль imu використовується для зчитування даних датчика IMU, розташованого під датчиком камери.
Примітка
Датчик IMU (і цей модуль) присутній не на всіх моделях OpenMV Cam.
Коли плата камери лежить на столі лицьовою стороною догори:
X вказує вправо від датчика камери.
Y вказує вниз під датчиком камери (до нижньої частини плати).
Z вказує у напрямку, зворотному до датчика камери (у стіл).
Приклад використання – опитування сирого акселерометра, гіроскопа та температури:
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)
Приклад використання – визначення напрямку нахилу камери:
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)
Функції¶
- imu.acceleration_mg() Tuple[float, float, float]¶
Повертає прискорення для
(x, y, z)як кортеж float у мілі-g.
- imu.angular_rate_mdps() Tuple[float, float, float]¶
Повертає кутову швидкість для
(x, y, z)як кортеж float у міліградусах на секунду.
- imu.roll() float¶
Повертає кут крену модуля камери у градусах.
0 -> Камера стоїть вертикально.
90 -> Камера повернута вліво.
180 -> Камера перевернута донизу.
270 -> Камера повернута вправо.
- imu.pitch() float¶
Повертає кут тангажу модуля камери у градусах.
0 -> Камера стоїть вертикально.
90 -> Камера нахилена вниз.
180 -> Камера перевернута донизу.
270 -> Камера нахилена вгору.