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ומוגדר עם טווחים וקצבי נתוני פלט המוגדרים כברירת מחדל.