lsm6dsox — LSM6DSOX IMU בעל 6 צירים¶
מנהל התקן ליחידת המדידה האינרציאלית ST LSM6DSOX iNEMO בעלת 6 הצירים (תאוצה תלת-צירית בתוספת ג’ירוסקופ תלת-צירי) באמצעות I2C או SPI. בנוסף לפלט ה-IMU הבסיסי, מנהל ההתקן חושף את הפונקציות המוטמעות שעל השבב: מד-צעדים ניתן להגדרה (מונה צעדים) ו-Machine Learning Core (MLC), שניתן לתכנת באמצעות קובצי UCF המיוצאים מכלי ה-Unico-GUI של ST.
דוגמה:
import time
from machine import I2C
from lsm6dsox import LSM6DSOX
# Use the I2C bus the LSM6DSOX is wired to on your board.
lsm = LSM6DSOX(I2C(1))
# SPI alternative (replace cs= with your board's chip-select pin):
# from machine import SPI, Pin
# lsm = LSM6DSOX(SPI(1), cs=Pin("CS"))
while True:
print("Accelerometer: x:{:>8.3f} y:{:>8.3f} z:{:>8.3f}".format(*lsm.accel()))
print("Gyroscope: x:{:>8.3f} y:{:>8.3f} z:{:>8.3f}".format(*lsm.gyro()))
time.sleep_ms(100)
מחלקות¶
- class lsm6dsox.LSM6DSOX(bus: machine.I2C | machine.SPI, cs: machine.Pin | None = None, address: int = 0x6A, gyro_odr: float = 104, accel_odr: float = 104, gyro_scale: int = 2000, accel_scale: int = 4, ucf: str | None = None)¶
בונה מופע
LSM6DSOX. סוג האפיק מזוהה אוטומטית: אםbusחושףreadfrom_memהוא מטופל כ-machine.I2C, אחרת הוא מטופל כ-machine.SPIויש לספק אתcs. השבב עובר איפוס תוכנה, ה-ODR והסקאלה המבוקשים מתוכנתים, וקובץ UCF של MLC נטען אם סופק.busאפיק
machine.I2Cאוmachine.SPIמוגדר.csפין
machine.Pinשל בחירת-שבב המשמש במצב SPI. נדרש כאשרbusהוא מופע SPI, אחרת מתעלמים ממנו.addressכתובת I2C בת 7 סיביות של ההתקן. ברירת המחדל היא
0x6A; חלק מהלוחות מחווטים את פין ה-SDO גבוה מה שבוחר ב-0x6B.gyro_odrקצב נתוני הפלט של הג’ירוסקופ ב-Hz. חייב להיות אחד מבין
0(כבוי),1.6,3.33,6.66,12.5,26,52,104,208,416או888.accel_odrקצב נתוני הפלט של מד התאוצה ב-Hz. אותה קבוצת ערכים כמו
gyro_odr.gyro_scaleטווח הסקאלה המלאה של הג’ירוסקופ במעלות-לשנייה. חייב להיות אחד מבין
250,500,1000או2000.accel_scaleטווח הסקאלה המלאה של מד התאוצה ב-g. חייב להיות אחד מבין
2,4,8או16.ucfנתיב אופציונלי לקובץ register-dump מסוג
.ucfשל ST Unico-GUI. אם סופק, הקובץ מנותח ומוחל על ה-MLC בעת הבנייה באמצעותload_mlc().
- reset() None¶
מבצעת איפוס תוכנה באמצעות
CTRL3_Cוחוסמת עד שסיבית האיפוס מתנקה. מעלהOSErrorאם ההתקן אינו חוזר לפעול תוך עשרה ניסיונות חוזרים.
- set_mem_bank(bank: int) None¶
מחליפה את בנק האוגרים של FUNC_CFG. משמשת באופן פנימי לגישה לעמודי האוגרים של הפונקציה המוטמעת ושל מרכז-החיישנים; לעיתים רחוקות נדרשת על ידי קוד היישום.
- set_embedded_functions(enable: bool, emb_ab: tuple[int, int] | None = None) tuple[int, int]¶
מאפשרת או מנטרלת את בלוק הפונקציות המוטמעות. כאשר
enableהואTrueה-tupleemb_abבן שני הבתים נכתב אלEMB_FUNC_EN_A/EMB_FUNC_EN_B. כאשרFalseהערכים הנוכחיים נקראים, סיביות האפשור של ה-MLC/מד-הצעדים מתנקות, והערכים הקודמים מוחזרים כך שניתן לשחזרם מאוחר יותר.
- load_mlc(ucf: str) None¶
מחילה תוכנית UCF של MLC מהקובץ בנתיב
ucf. מנהל ההתקן עובר על הקובץ שורה אחר שורה, מחיל כל כתיבתAc <reg> <val>, ולאחר מכן מאפשר BDU, מנתב אירועי MLC לפין פסיקה 1 ומפעיל מחדש את הפונקציות המוטמעות.
- mlc_output() bytes | None¶
אם תוצאות MLC חדשות זמינות (סיבית
MLC_STATUSמוגדרת), מחזירה את תוכן שמונת האוגריםMLC0_SRC..MLC7_SRCכאובייקט דמוי-בתים. אחרת מחזירהNone.
- pedometer_config(enable: bool = True, debounce: int = 10, int1_enable: bool = False, int2_enable: bool = False) None¶
מגדירה את מד הצעדים המוטמע.
enableמאפשר או מנטרל זיהוי צעדים בבלוק הפונקציות המוטמעות.
debounceערך מניעת ריצוד הצעד הנכתב אל
PEDO_DEB_STEPS_CONF.int1_enableאם
True, מנתב אירועי מד-צעדים לפיןINT1.int2_enableאם
True, מנתב אירועי מד-צעדים לפיןINT2.