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)в виде кортежа чисел с плавающей точкой в милли-g.
- imu.angular_rate_mdps() Tuple[float, float, float]¶
Возвращает угловую скорость для
(x, y, z)в виде кортежа чисел с плавающей точкой в милли-градусах в секунду.
- imu.roll() float¶
Возвращает угол крена модуля камеры в градусах.
0 -> Камера стоит вертикально.
90 -> Камера повёрнута влево.
180 -> Камера перевёрнута вверх ногами.
270 -> Камера повёрнута вправо.
- imu.pitch() float¶
Возвращает угол тангажа модуля камеры в градусах.
0 -> Камера стоит вертикально.
90 -> Камера направлена вниз.
180 -> Камера перевёрнута вверх ногами.
270 -> Камера направлена вверх.