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.temperature_c() float

Trả về nhiệt độ cảm biến IMU tính bằng độ Celsius.

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.

imu.sleep(enable: bool) None

enable đặt thành True đưa cảm biến IMU vào chế độ ngủ. False đánh thức nó trở lại (mặc định).

imu.__write_reg(addr: int, val: int) None

Đặt thanh ghi IMU tại địa chỉ addr thành giá trị val.

imu.__read_reg(addr: int) int

Trả về giá trị của thanh ghi IMU tại địa chỉ addr.