imu — מסייע IMU עבור Arduino Nano 33 BLE Sense

הערה

עמוד זה מתעד את מודול ה-Python imu של 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 יחיד בעל 9 צירים מסוג 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 (תאוצות כובד תקניות).

gyro() tuple[float, float, float]

החזרת קריאת הג’ירוסקופ האחרונה כתחת (x, y, z) במעלות לשנייה.

magnet() tuple[float, float, float]

החזרת קריאת המגנטומטר האחרונה כתחת (x, y, z) במיקרו-טסלה (uT).