bmi270 — IMU de 6 eixos BMI270¶
Driver para a unidade de medição inercial de 6 eixos e baixo consumo BMI270 da Bosch (acelerômetro de 3 eixos mais giroscópio de 3 eixos) via I2C. O driver executa toda a sequência de inicialização do BMI270 na construção — reset por software, desativação do modo de economia de energia, upload do blob de configuração e verificação de status — antes de configurar as taxas de dados de saída e as faixas de fundo de escala solicitadas.
A classe pode ser opcionalmente vinculada a uma instância externa de magnetômetro bmm150.BMM150, de modo que os chamadores possam tratar um par BMI270 + BMM150 como um único dispositivo de 9 eixos por meio do método magnet().
Nota
O modo SPI não é suportado por este driver; passar um barramento não-I2C gera ValueError.
Exemplo:
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)
Classes¶
- 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)¶
Constrói uma instância de
BMI270e executa toda a sequência de inicialização com carregamento da configuração. GeraOSErrorse o ID do chip não corresponder ou se a sequência de carregamento falhar.busUm barramento
machine.I2Cconfigurado ao qual o sensor está conectado.csReservado para o modo SPI. Deve permanecer como
None; o SPI não está atualmente implementado e fornecer um barramento não-I2C geraValueError.addressEndereço I2C de 7 bits do dispositivo. O padrão é
0x68; algumas placas mantêm o pino SDO em nível alto, o que seleciona0x69.gyro_odrTaxa de dados de saída do giroscópio em Hz. Deve ser um dos valores
0.78,1.5,3.1,6.25,12.5,25,50,100,200,400,800ou1200.gyro_scaleFaixa de fundo de escala do giroscópio em graus por segundo. Deve ser um dos valores
125,250,500,1000ou2000.accel_odrTaxa de dados de saída do acelerômetro em Hz. Mesmo conjunto de valores de
gyro_odr.accel_scaleFaixa de fundo de escala do acelerômetro em g. Deve ser um dos valores
2,4,8ou16.bmm_magnetInstância opcional de
bmm150.BMM150. Quando fornecida, o métodomagnet()delega a ela; caso contrário,magnet()retorna zeros.
- reset() None¶
Emite o comando de reset por software do BMI270. Após chamá-lo, o dispositivo deve ser reinicializado antes de qualquer uso adicional.
- gyro() tuple[float, float, float]¶
Retorna o vetor do giroscópio
(x, y, z)em graus por segundo, escalonado de acordo comgyro_scale.