imu --- imu sensor¶
โมดูล imu ใช้สำหรับอ่านค่า IMU sensor ที่อยู่ใต้ camera sensor
Note
IMU sensor (และโมดูลนี้) ไม่มีอยู่ในทุกรุ่นของ OpenMV Cam
สำหรับเมื่อบอร์ดกล้องวางราบบนโต๊ะโดยหันหน้าขึ้น:
X ชี้ไปทางขวาของ camera sensor
Y ชี้ลงใต้ camera sensor (ไปทางด้านล่างของบอร์ด)
Z ชี้ในทิศทางตรงข้ามกับ camera sensor (เข้าหาโต๊ะ)
ตัวอย่างการใช้งาน -- สำรวจ accelerometer, gyro และอุณหภูมิแบบ raw:
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 tuple ในหน่วย milli-g
- imu.angular_rate_mdps() Tuple[float, float, float]¶
ส่งคืนค่าอัตราเชิงมุมสำหรับ
(x, y, z)เป็น float tuple ในหน่วย milli-degrees-per-second
- imu.roll() float¶
ส่งคืนมุม roll ของโมดูลกล้องในหน่วยองศา
0 -> กล้องตั้งตรง
90 -> กล้องหมุนไปทางซ้าย
180 -> กล้องหมุนคว่ำลง
270 -> กล้องหมุนไปทางขวา
- imu.pitch() float¶
ส่งคืนมุม pitch ของโมดูลกล้องในหน่วยองศา
0 -> กล้องตั้งตรง
90 -> กล้องชี้ลง
180 -> กล้องหมุนคว่ำลง
270 -> กล้องชี้ขึ้น