imu --- مساعد IMU لـ Arduino Nano 33 BLE Sense¶
ملاحظة
توثّق هذه الصفحة وحدة imu الخاصة بلغة Python لـ Arduino Nano 33 BLE Sense (وهي غلاف صغير حول مشغّلات IMU المدمجة في اللوحة). أما وحدة imu على مستوى C الخاصة بـ OpenMV والمتوفرة على لوحات الكاميرا OPENMV_N6 و OPENMV_RT1060 و OPENMV_AE3، فراجع imu --- مستشعر imu.
هذه الوحدة هي غلاف رفيع خاص باللوحة يكشف وحدة القياس بالقصور الذاتي المدمجة في Arduino Nano 33 BLE Sense ككائن IMU واحد. تُعالَج كلتا مراجعتي الجهاز بشفافية:
Rev 1 تستخدم IMU واحدة من نوع LSM9DS1 بتسعة محاور.
Rev 2 تجمع بين Bosch BMI270 (مقياس تسارع + جيروسكوب) ومقياس مغناطيسية Bosch BMM150.
يفحص المُنشئ ناقل I2C بحثاً عن عنوان BMI270 (0x68) ويختار المشغّل المطابق تلقائياً، بحيث يمكن كتابة شيفرة المستخدم مرة واحدة وتشغيلها على أي من المراجعتين.
مثال:
import time
import imu
from machine import Pin, I2C
bus = I2C(1, scl=Pin("P15"), sda=Pin("P14"))
sensor = imu.IMU(bus)
while True:
print('Accelerometer: x:{:>8.3f} y:{:>8.3f} z:{:>8.3f}'.format(*sensor.accel()))
print('Gyroscope: x:{:>8.3f} y:{:>8.3f} z:{:>8.3f}'.format(*sensor.gyro()))
print('Magnetometer: x:{:>8.3f} y:{:>8.3f} z:{:>8.3f}'.format(*sensor.magnet()))
print("")
time.sleep_ms(100)
class IMU¶
- class imu.IMU(bus: 'machine.I2C')¶
إنشاء كائن IMU مرتبط بناقل I2C.
bus هو نسخة
machine.I2Cمُهيّأة ومتصلة بوحدة (وحدات) IMU المدمجة في اللوحة.
عند الإنشاء يُفحص الناقل: إذا استجاب جهاز عند العنوان
0x68يتم إنشاء زوجBMI270وBMM150(Nano 33 BLE Sense Rev 2)، وإلا يتم إنشاءLSM9DS1(Rev 1). يُحتفظ بالمشغّل الأساسي في السمةimuويُهيّأ بالنطاقات ومعدلات بيانات الخرج الافتراضية.- accel() tuple[float, float, float]¶
إرجاع أحدث قراءة لمقياس التسارع على شكل صف
(x, y, z)بوحدات g (تسارعات الجاذبية القياسية).