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 (تسارعات الجاذبية القياسية).