bmi270 — BMI270 6-axlig IMU

Drivrutin för Bosch BMI270 lågeffekts 6-axliga tröghetsmätenhet (3-axlig accelerometer plus 3-axligt gyroskop) över I2C. Drivrutinen utför hela BMI270:s initialiseringssekvens vid konstruktion — mjuk återställning, inaktivering av strömsparläge, uppladdning av konfigurations-blob och statusverifiering — innan den konfigurerar de begärda utdatahastigheterna och fullskaleområdena.

Klassen kan valfritt kopplas till en extern bmm150.BMM150-magnetometerinstans så att anropare kan behandla ett par av BMI270 + BMM150 som en enda 9-axlig enhet via metoden magnet().

Anteckning

SPI-läge stöds inte av denna drivrutin; att skicka en buss som inte är I2C ger upphov till ValueError.

Exempel:

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)

Klasser

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)

Skapa en BMI270-instans och kör hela initialiseringssekvensen för konfigurationsladdning. Ger upphov till OSError om chip-ID:t inte stämmer eller om laddningssekvensen misslyckas.

bus

En konfigurerad machine.I2C-buss som sensorn är ansluten till.

cs

Reserverad för SPI-läge. Måste lämnas som None; SPI är för närvarande inte implementerat och att tillhandahålla en buss som inte är I2C ger upphov till ValueError.

address

7-bitars I2C-adress för enheten. Standardvärdet är 0x68; vissa kort drar SDO-stiftet högt vilket väljer 0x69.

gyro_odr

Gyroskopets utdatahastighet i Hz. Måste vara en av 0.78, 1.5, 3.1, 6.25, 12.5, 25, 50, 100, 200, 400, 800 eller 1200.

gyro_scale

Gyroskopets fullskaleområde i grader per sekund. Måste vara en av 125, 250, 500, 1000 eller 2000.

accel_odr

Accelerometerns utdatahastighet i Hz. Samma uppsättning värden som gyro_odr.

accel_scale

Accelerometerns fullskaleområde i g. Måste vara en av 2, 4, 8 eller 16.

bmm_magnet

Valfri bmm150.BMM150-instans. När den anges delegerar metoden magnet() till den; annars returnerar magnet() nollor.

reset() None

Utfärda BMI270:s kommando för mjuk återställning. Efter att detta anropats måste enheten ominitialiseras innan vidare användning.

gyro() tuple[float, float, float]

Returnera gyroskopvektorn (x, y, z) i grader per sekund, skalad enligt gyro_scale.

accel() tuple[float, float, float]

Returnera accelerationsvektorn (x, y, z) i enheter av standardtyngdkraft (1 g = 9.81 m/s²), skalad enligt accel_scale.

magnet() tuple[float, float, float]

Om en bmm_magnet angavs vid konstruktion, returnera den senaste magnetometeravläsningen från den enheten. Annars returnera (0.0, 0.0, 0.0).