lsm6dsox — LSM6DSOX 6-osni IMU¶
Upravljački program za ST LSM6DSOX iNEMO 6-osnu inercijalnu mjernu jedinicu (3-osni akcelerometar plus 3-osni žiroskop) putem I2C ili SPI. Osim osnovnog IMU izlaza, upravljački program izlaže ugrađene funkcije na čipu: konfigurabilni pedometar (brojač koraka) i Machine Learning Core (MLC), koji se može programirati putem UCF datoteka izvezenih iz ST-ovog Unico-GUI alata.
Primjer:
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)
Klase¶
- 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)¶
Konstruira
LSM6DSOXinstancu. Tip sabirnice automatski se otkriva: akobusizlažereadfrom_mem, tretira se kaomachine.I2C, u suprotnom se tretira kaomachine.SPIi mora se navestics. Čip se programski resetira, programiraju se zatraženi ODR i raspon, a MLC UCF datoteka se učitava ako je navedena.busKonfigurirana
machine.I2Cilimachine.SPIsabirnica.csChip-select
machine.Pinkoji se koristi u SPI načinu rada. Obavezan kada jebusSPI instanca, inače se zanemaruje.address7-bitna I2C adresa uređaja. Zadano
0x6A; neke ploče vežu SDO pin na visoku razinu, čime se odabire0x6B.gyro_odrBrzina izlaznih podataka žiroskopa u Hz. Mora biti jedna od
0(isključeno),1.6,3.33,6.66,12.5,26,52,104,208,416ili888.accel_odrBrzina izlaznih podataka akcelerometra u Hz. Isti skup vrijednosti kao
gyro_odr.gyro_scaleRaspon pune skale žiroskopa u stupnjevima po sekundi. Mora biti jedan od
250,500,1000ili2000.accel_scaleRaspon pune skale akcelerometra u g. Mora biti jedan od
2,4,8ili16.ucfNeobavezna putanja do ST Unico-GUI
.ucfdatoteke s ispisom registara. Ako je navedena, datoteka se parsira i primjenjuje na MLC tijekom konstrukcije putemload_mlc().
- reset() None¶
Izdaje programski reset putem
CTRL3_Ci blokira dok se ne obriše reset bit. PodižeOSErrorako se uređaj ne vrati unutar deset pokušaja.
- set_mem_bank(bank: int) None¶
Prebacuje banku registara FUNC_CFG. Koristi se interno za pristup stranicama registara ugrađenih funkcija i sensor-hub-a; aplikacijski kod ga rijetko treba.
- set_embedded_functions(enable: bool, emb_ab: tuple[int, int] | None = None) tuple[int, int]¶
Omogućuje ili onemogućuje blok ugrađenih funkcija. Kada je
enableTrue, dvobajtni torkaemb_abzapisuje se uEMB_FUNC_EN_A/EMB_FUNC_EN_B. Kada jeFalse, čitaju se trenutne vrijednosti, brišu se biti omogućavanja MLC/pedometra, a prethodne vrijednosti se vraćaju kako bi se kasnije mogle obnoviti.
- load_mlc(ucf: str) None¶
Primjenjuje MLC UCF program iz datoteke na putanji
ucf. Upravljački program prolazi datoteku redak po redak, primjenjuje svaki zapisAc <reg> <val>, zatim omogućuje BDU, usmjerava MLC događaje na prekidni pin 1 i ponovno uključuje ugrađene funkcije.
- mlc_output() bytes | None¶
Ako su dostupni novi MLC rezultati (bit
MLC_STATUSpostavljen), vraća sadržaj osam registaraMLC0_SRC..MLC7_SRCkao objekt sličan bajtovima. U suprotnom vraćaNone.
- pedometer_config(enable: bool = True, debounce: int = 10, int1_enable: bool = False, int2_enable: bool = False) None¶
Konfigurira ugrađeni pedometar.
enableOmogućuje ili onemogućuje detekciju koraka na bloku ugrađenih funkcija.
debounceVrijednost zaglađivanja koraka zapisana u
PEDO_DEB_STEPS_CONF.int1_enableAko je
True, usmjerava događaje pedometra naINT1pin.int2_enableAko je
True, usmjerava događaje pedometra naINT2pin.