bmi270 — BMI270 6-osna IMU¶
Upravljački program za Bosch BMI270 6-osnu inercijsku mjernu jedinicu niske potrošnje (3-osni akcelerometar i 3-osni žiroskop) putem I2C. Upravljački program pri stvaranju izvodi potpunu inicijalizacijsku sekvencu BMI270 — meki reset, onemogućavanje načina uštede energije, učitavanje konfiguracijskog bloba i provjeru statusa — prije postavljanja traženih brzina izlaznih podataka i punih raspona mjerenja.
Klasa se opcionalno može povezati s vanjskom instancom magnetometra bmm150.BMM150 tako da pozivatelji mogu tretirati par BMI270 + BMM150 kao jedan 9-osni uređaj putem metode magnet().
Napomena
Ovaj upravljački program ne podržava SPI način rada; prosljeđivanje sabirnice koja nije I2C izaziva ValueError.
Primjer:
import time
from machine import Pin, I2C
from bmi270 import BMI270
imu = BMI270(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("Gyroscope: x:{:>8.3f} y:{:>8.3f} z:{:>8.3f}".format(*imu.gyro()))
time.sleep_ms(100)
Klase¶
- class bmi270.BMI270(bus: machine.I2C, cs: machine.Pin | None = None, address: int = 0x68, gyro_odr: float = 100, gyro_scale: int = 2000, accel_odr: float = 100, accel_scale: int = 4, bmm_magnet: BMM150 | None = None)¶
Stvara instancu
BMI270i pokreće potpunu inicijalizacijsku sekvencu s učitavanjem konfiguracije. IzazivaOSErrorako se ID čipa ne podudara ili ako sekvenca učitavanja ne uspije.busKonfigurirana
machine.I2Csabirnica na koju je senzor priključen.csRezervirano za SPI način rada. Mora ostati
None; SPI trenutno nije implementiran, a navođenje sabirnice koja nije I2C izazivaValueError.address7-bitna I2C adresa uređaja. Zadana vrijednost je
0x68; neke ploče postavljaju SDO pin na visoku razinu, čime se odabire0x69.gyro_odrBrzina izlaznih podataka žiroskopa u Hz. Mora biti jedna od
0.78,1.5,3.1,6.25,12.5,25,50,100,200,400,800ili1200.gyro_scalePuni raspon mjerenja žiroskopa u stupnjevima u sekundi. Mora biti jedan od
125,250,500,1000ili2000.accel_odrBrzina izlaznih podataka akcelerometra u Hz. Isti skup vrijednosti kao
gyro_odr.accel_scalePuni raspon mjerenja akcelerometra u g. Mora biti jedan od
2,4,8ili16.bmm_magnetOpcionalna instanca
bmm150.BMM150. Kada je navedena, metodamagnet()delegira poziv na nju; u suprotnommagnet()vraća nule.
- reset() None¶
Izdaje BMI270 naredbu za meki reset. Nakon poziva ove naredbe uređaj se mora ponovno inicijalizirati prije daljnje upotrebe.
- gyro() tuple[float, float, float]¶
Vraća vektor žiroskopa
(x, y, z)u stupnjevima u sekundi, skaliran premagyro_scale.