lsm9ds1 — LSM9DS1 IMU בעל 9 צירים¶
מנהל התקן למודול האינרציאלי ST LSM9DS1 iNEMO באמצעות I2C. ה-LSM9DS1 משלב מד תאוצה תלת-צירי, ג’ירוסקופ תלת-צירי ומגנטומטר תלת-צירי במארז יחיד; מד התאוצה והג’ירוסקופ חולקים כתובת I2C בעוד שהמגנטומטר מגיב על כתובת שנייה. מנהל התקן זה גם מאפשר את ה-FIFO בעומק 16 של הג’ירו/תאוצה שעל השבב כך שניתן לרוקן ביעילות את הדגימות האחרונות באמצעות iter_accel_gyro().
דוגמה:
import time
from machine import Pin, I2C
from lsm9ds1 import LSM9DS1
imu = LSM9DS1(I2C(1, scl=Pin("P15"), sda=Pin("P14")))
while True:
print("Accelerometer: x:{:>8.3f} y:{:>8.3f} z:{:>8.3f}".format(*imu.accel()))
print("Magnetometer: x:{:>8.3f} y:{:>8.3f} z:{:>8.3f}".format(*imu.magnet()))
print("Gyroscope: x:{:>8.3f} y:{:>8.3f} z:{:>8.3f}".format(*imu.gyro()))
time.sleep_ms(100)
מחלקות¶
- class lsm9ds1.LSM9DS1(bus: machine.I2C, address_imu: int = 0x6B, address_magnet: int = 0x1E, gyro_odr: float = 952, gyro_scale: int = 245, accel_odr: float = 952, accel_scale: int = 4, magnet_odr: int = 80, magnet_scale: int = 4)¶
בונה מופע
LSM9DS1, מאמת את אוגרי ה-WHO_AM_I של שני תת-ההתקנים, מגדיר את כל שלושת החיישנים ומאפשר את ה-FIFO של התאוצה/ג’ירו במצב רציף.busאפיק
machine.I2Cמוגדר שאליו מחובר החיישן.address_imuכתובת I2C בת 7 סיביות של תת-התקן מד התאוצה/הג’ירוסקופ. ברירת המחדל היא
0x6B.address_magnetכתובת I2C בת 7 סיביות של תת-התקן המגנטומטר. ברירת המחדל היא
0x1E.gyro_odrקצב נתוני הפלט של הג’ירוסקופ ב-Hz. חייב להיות אחד מבין
0(כבוי),14.9,59.5,119,238,476או952.gyro_scaleטווח הסקאלה המלאה של הג’ירוסקופ במעלות-לשנייה. חייב להיות אחד מבין
245,500או2000.accel_odrקצב נתוני הפלט של מד התאוצה ב-Hz. אותה קבוצת ערכים כמו
gyro_odr.accel_scaleטווח הסקאלה המלאה של מד התאוצה ב-g. חייב להיות אחד מבין
2,4,8או16.magnet_odrקצב נתוני הפלט של המגנטומטר ב-Hz. חייב להיות אחד מבין
0.625,1.25,2.5,5,10,20,40או80.magnet_scaleטווח הסקאלה המלאה של המגנטומטר בגאוס. חייב להיות אחד מבין
4,8,12או16.
- calibrate_magnet(offset: tuple[float, float, float]) None¶
כותבת וקטור היסט hard-iron אל אוגרי ה-
OFFSET_REG_*_Mשל המגנטומטר. ההיסט ניתן באותן יחידות ש-magnet()מחזירה (גאוס); כל רכיב מומר ל-LSBs גולמיים באמצעות סקאלת המגנטומטר המוגדרת לפני הכתיבה.