bmi270 — IMU a 6 assi BMI270¶
Driver per l’unità di misura inerziale a 6 assi a basso consumo Bosch BMI270 (accelerometro a 3 assi più giroscopio a 3 assi) tramite I2C. Il driver esegue l’intera sequenza di inizializzazione del BMI270 alla costruzione — soft reset, disattivazione del risparmio energetico, caricamento del blob di configurazione e verifica dello stato — prima di configurare le frequenze di output dei dati e gli intervalli di fondo scala richiesti.
La classe può facoltativamente essere collegata a un’istanza esterna del magnetometro bmm150.BMM150, in modo che i chiamanti possano trattare una coppia BMI270 + BMM150 come un unico dispositivo a 9 assi tramite il metodo magnet().
Nota
La modalità SPI non è supportata da questo driver; passare un bus non I2C solleva ValueError.
Esempio:
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)
Classi¶
- 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)¶
Costruisce un’istanza
BMI270ed esegue l’intera sequenza di inizializzazione con caricamento della configurazione. SollevaOSErrorse l’ID del chip non corrisponde o se la sequenza di caricamento fallisce.busUn bus
machine.I2Cconfigurato a cui è collegato il sensore.csRiservato per la modalità SPI. Deve essere lasciato a
None; la SPI non è attualmente implementata e fornire un bus non I2C sollevaValueError.addressIndirizzo I2C a 7 bit del dispositivo. Il valore predefinito è
0x68; alcune schede portano alto il pin SDO, il che seleziona0x69.gyro_odrFrequenza di output dei dati del giroscopio in Hz. Deve essere uno tra
0.78,1.5,3.1,6.25,12.5,25,50,100,200,400,800o1200.gyro_scaleIntervallo di fondo scala del giroscopio in gradi al secondo. Deve essere uno tra
125,250,500,1000o2000.accel_odrFrequenza di output dei dati dell’accelerometro in Hz. Stesso insieme di valori di
gyro_odr.accel_scaleIntervallo di fondo scala dell’accelerometro in g. Deve essere uno tra
2,4,8o16.bmm_magnetIstanza opzionale
bmm150.BMM150. Quando fornita, il metodomagnet()la delega ad essa; altrimentimagnet()restituisce zeri.
- reset() None¶
Invia il comando di soft reset del BMI270. Dopo averlo chiamato, il dispositivo deve essere reinizializzato prima di ogni ulteriore utilizzo.
- gyro() tuple[float, float, float]¶
Restituisce il vettore del giroscopio
(x, y, z)in gradi al secondo, scalato in base agyro_scale.