imu — auxiliar 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 wrapper em torno dos drivers de IMU embarcados). Para o módulo imu em nível C da OpenMV que vem nas placas de câmera OPENMV_N6, OPENMV_RT1060 e OPENMV_AE3, consulte imu — sensor imu.
Este módulo é um wrapper fino específico da placa que expõe a unidade de medição inercial embarcada 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:
A Rev 1 usa um único IMU LSM9DS1 de 9 eixos.
A Rev 2 combina um Bosch BMI270 (acelerômetro + giroscópio) com um magnetômetro Bosch BMM150.
O construtor sonda o barramento I2C em busca do endereço do BMI270 (0x68) e seleciona o driver correspondente automaticamente, de modo que o código do usuário pode ser escrito uma só vez e executado em qualquer uma das revisões.
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 vinculado a um barramento I2C.
bus é uma instância
machine.I2Cinicializada conectada ao(s) IMU(s) embarcado(s).
Na construção, o barramento é varrido: se um dispositivo responder no endereço
0x68, um parBMI270maisBMM150é instanciado (Nano 33 BLE Sense Rev 2); caso contrário, umLSM9DS1é instanciado (Rev 1). O driver subjacente é mantido no atributoimue configurado com faixas e taxas de dados de saída padrão.- accel() tuple[float, float, float]¶
Retorna a leitura mais recente do acelerômetro como uma tupla
(x, y, z)em unidades de g (gravidades padrão).