imu --- cảm biến IMU¶
Mô-đun imu được dùng để đọc cảm biến IMU nằm bên dưới cảm biến camera.
Ghi chú
Cảm biến IMU (và mô-đun này) không có mặt trên tất cả các mô hình OpenMV Cam.
Khi bo mạch camera đặt nằm ngửa trên bàn:
X hướng sang phải của cảm biến camera.
Y hướng xuống dưới cảm biến camera (về phía đáy bo mạch).
Z hướng ngược chiều với cảm biến camera (vào trong bàn).
Ví dụ sử dụng -- đọc thô gia tốc kế, con quay hồi chuyển và nhiệt độ:
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)
Ví dụ sử dụng -- phát hiện hướng nghiêng của camera:
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)
Các hàm¶
- imu.acceleration_mg() Tuple[float, float, float]¶
Trả về gia tốc cho
(x, y, z)dưới dạng tuple float tính bằng milli-g.
- imu.angular_rate_mdps() Tuple[float, float, float]¶
Trả về tốc độ góc cho
(x, y, z)dưới dạng tuple float tính bằng milli-độ-trên-giây.
- imu.roll() float¶
Trả về góc lăn của mô-đun camera tính bằng độ.
0 -> Camera đang đứng thẳng.
90 -> Camera bị xoay sang trái.
180 -> Camera bị lật ngược.
270 -> Camera bị xoay sang phải.
- imu.pitch() float¶
Trả về góc ngẩng của mô-đun camera tính bằng độ.
0 -> Camera đang đứng thẳng.
90 -> Camera đang hướng xuống.
180 -> Camera bị lật ngược.
270 -> Camera đang hướng lên.