bmi270 — BMI270 6osá IMU¶
Ovladač pro nízkopříkonovou 6osou inerciální měřicí jednotku Bosch BMI270 (3osý akcelerometr plus 3osý gyroskop) přes I2C. Ovladač při vytvoření instance provede kompletní inicializační sekvenci BMI270 — softwarový reset, vypnutí úsporného režimu, nahrání konfiguračního bloku a ověření stavu — a teprve poté nastaví požadované výstupní datové rychlosti a rozsahy plné stupnice.
Třídu lze volitelně propojit s externí instancí magnetometru bmm150.BMM150, takže volající mohou s dvojicí BMI270 + BMM150 zacházet jako s jediným 9osým zařízením prostřednictvím metody magnet().
Poznámka
Tento ovladač nepodporuje režim SPI; předání sběrnice, která není I2C, vyvolá ValueError.
Příklad:
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)
Třídy¶
- 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)¶
Vytvoří instanci
BMI270a spustí kompletní inicializační sekvenci s nahráním konfigurace. VyvoláOSError, pokud ID čipu neodpovídá nebo pokud sekvence nahrávání selže.busNakonfigurovaná sběrnice
machine.I2C, ke které je senzor připojen.csVyhrazeno pro režim SPI. Musí zůstat jako
None; SPI není v současnosti implementováno a předání sběrnice, která není I2C, vyvoláValueError.address7bitová I2C adresa zařízení. Výchozí hodnota je
0x68; některé desky propojují pin SDO na vysokou úroveň, čímž se zvolí0x69.gyro_odrVýstupní datová rychlost gyroskopu v Hz. Musí být jedna z hodnot
0.78,1.5,3.1,6.25,12.5,25,50,100,200,400,800nebo1200.gyro_scaleRozsah plné stupnice gyroskopu ve stupních za sekundu. Musí být jedna z hodnot
125,250,500,1000nebo2000.accel_odrVýstupní datová rychlost akcelerometru v Hz. Stejná sada hodnot jako
gyro_odr.accel_scaleRozsah plné stupnice akcelerometru v g. Musí být jedna z hodnot
2,4,8nebo16.bmm_magnetVolitelná instance
bmm150.BMM150. Pokud je poskytnuta, metodamagnet()na ni deleguje; jinakmagnet()vrací nuly.
- reset() None¶
Vyšle příkaz softwarového resetu BMI270. Po jeho zavolání musí být zařízení před dalším použitím znovu inicializováno.
- gyro() tuple[float, float, float]¶
Vrátí vektor gyroskopu
(x, y, z)ve stupních za sekundu, škálovaný podlegyro_scale.