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 tillOSErrorom chip-ID:t inte stämmer eller om laddningssekvensen misslyckas.busEn konfigurerad
machine.I2C-buss som sensorn är ansluten till.csReserverad 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 tillValueError.address7-bitars I2C-adress för enheten. Standardvärdet är
0x68; vissa kort drar SDO-stiftet högt vilket väljer0x69.gyro_odrGyroskopets utdatahastighet i Hz. Måste vara en av
0.78,1.5,3.1,6.25,12.5,25,50,100,200,400,800eller1200.gyro_scaleGyroskopets fullskaleområde i grader per sekund. Måste vara en av
125,250,500,1000eller2000.accel_odrAccelerometerns utdatahastighet i Hz. Samma uppsättning värden som
gyro_odr.accel_scaleAccelerometerns fullskaleområde i g. Måste vara en av
2,4,8eller16.bmm_magnetValfri
bmm150.BMM150-instans. När den anges delegerar metodenmagnet()till den; annars returnerarmagnet()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 enligtgyro_scale.