bmi270 — BMI270 6 tengelyes IMU¶
Illesztőprogram a Bosch BMI270 kis fogyasztású, 6 tengelyes inerciális mérőegységhez (3 tengelyes gyorsulásmérő és 3 tengelyes giroszkóp) I2C felett. Az illesztőprogram a teljes BMI270 inicializálási sorozatot elvégzi a példányosításkor — szoftveres újraindítás, az energiatakarékos üzemmód letiltása, a konfigurációs adatblokk feltöltése és az állapot ellenőrzése —, mielőtt beállítaná a kért kimeneti adatsebességeket és teljes mérési tartományokat.
Az osztály opcionálisan összekapcsolható egy külső bmm150.BMM150 magnetométer-példánnyal, így a hívók a BMI270 + BMM150 párt egyetlen 9 tengelyes eszközként kezelhetik a magnet() metóduson keresztül.
Megjegyzés
Az SPI módot ez az illesztőprogram nem támogatja; nem I2C busz átadása ValueError hibát vált ki.
Példa:
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)
Osztályok¶
- 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)¶
Létrehoz egy
BMI270példányt, és lefuttatja a teljes konfigurációbetöltő inicializálási sorozatot.OSErrorhibát vált ki, ha a chip azonosítója nem egyezik, vagy ha a betöltési sorozat sikertelen.busEgy beállított
machine.I2Cbusz, amelyhez az érzékelő csatlakozik.csAz SPI módhoz fenntartva.
Noneértéken kell hagyni; az SPI jelenleg nincs implementálva, és nem I2C busz átadásaValueErrorhibát vált ki.addressAz eszköz 7 bites I2C címe. Alapértelmezett értéke
0x68; egyes panelek az SDO lábat magas szintre húzzák, ami a0x69címet választja.gyro_odrA giroszkóp kimeneti adatsebessége Hz-ben. A következő értékek egyike lehet:
0.78,1.5,3.1,6.25,12.5,25,50,100,200,400,800vagy1200.gyro_scaleA giroszkóp teljes mérési tartománya fok/másodpercben. A következő értékek egyike lehet:
125,250,500,1000vagy2000.accel_odrA gyorsulásmérő kimeneti adatsebessége Hz-ben. Ugyanazok az értékek lehetnek, mint a
gyro_odresetében.accel_scaleA gyorsulásmérő teljes mérési tartománya g-ben. A következő értékek egyike lehet:
2,4,8vagy16.bmm_magnetOpcionális
bmm150.BMM150példány. Ha meg van adva, amagnet()metódus ehhez delegál; egyébként amagnet()nullákat ad vissza.
- reset() None¶
Kiadja a BMI270 szoftveres újraindítási parancsát. A meghívása után az eszközt újra kell inicializálni a további használat előtt.
- gyro() tuple[float, float, float]¶
Visszaadja a giroszkóp
(x, y, z)vektorát fok/másodpercben, agyro_scaleszerint skálázva.