imu — helper de IMU para o Arduino Nano 33 BLE Sense¶
Nota
Esta página documenta o módulo Python imu do Arduino Nano 33 BLE Sense (um pequeno invólucro em torno dos drivers IMU integrados). Para o módulo imu de nível C do OpenMV que é fornecido com as placas de câmara OPENMV_N6, OPENMV_RT1060 e OPENMV_AE3, consulte imu — sensor imu.
Este módulo é um invólucro fino específico de placa que expõe a unidade de medição inercial integrada do Arduino Nano 33 BLE Sense como um único objeto IMU. Ambas as revisões de hardware da placa são tratadas de forma transparente:
Rev 1 utiliza um IMU LSM9DS1 de 9 eixos.
Rev 2 combina um Bosch BMI270 (acelerómetro + giroscópio) com um magnetómetro Bosch BMM150.
O construtor sonda o barramento I2C para o endereço BMI270 (0x68) e seleciona automaticamente o driver correspondente, pelo que o código do utilizador pode ser escrito uma vez e executado em qualquer revisão.
Exemplo:
import time
import imu
from machine import Pin, I2C
bus = I2C(1, scl=Pin("P15"), sda=Pin("P14"))
sensor = imu.IMU(bus)
while True:
print('Accelerometer: x:{:>8.3f} y:{:>8.3f} z:{:>8.3f}'.format(*sensor.accel()))
print('Gyroscope: x:{:>8.3f} y:{:>8.3f} z:{:>8.3f}'.format(*sensor.gyro()))
print('Magnetometer: x:{:>8.3f} y:{:>8.3f} z:{:>8.3f}'.format(*sensor.magnet()))
print("")
time.sleep_ms(100)
class IMU¶
- class imu.IMU(bus: 'machine.I2C')¶
Constrói um objeto IMU ligado a um barramento I2C.
bus é uma instância
machine.I2Cinicializada e ligada ao(s) IMU(s) integrado(s).
Durante a construção, o barramento é analisado: se um dispositivo responder no endereço
0x68, é instanciado um parBMI270maisBMM150(Nano 33 BLE Sense Rev 2); caso contrário, é instanciado umLSM9DS1(Rev 1). O driver subjacente é mantido no atributoimue configurado com intervalos predefinidos e taxas de dados de saída.- accel() tuple[float, float, float]¶
Devolve a leitura mais recente do acelerómetro como um tuplo
(x, y, z)em unidades de g (gravidades padrão).