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)كصفّ من أعداد عشرية بوحدة milli-g.
- imu.angular_rate_mdps() Tuple[float, float, float]¶
يُرجع المعدل الزاوي لـ
(x, y, z)كصفّ من أعداد عشرية بوحدة milli-degrees-per-second.
- imu.roll() float¶
يُرجع زاوية اللفّ (roll) لوحدة الكاميرا بالدرجات.
0 -> الكاميرا منتصبة.
90 -> الكاميرا مُدارة إلى اليسار.
180 -> الكاميرا مقلوبة رأسًا على عقب.
270 -> الكاميرا مُدارة إلى اليمين.
- imu.pitch() float¶
يُرجع زاوية الميل (pitch) لوحدة الكاميرا بالدرجات.
0 -> الكاميرا منتصبة.
90 -> الكاميرا تشير إلى الأسفل.
180 -> الكاميرا مقلوبة رأسًا على عقب.
270 -> الكاميرا تشير إلى الأعلى.