imu — Helper IMU per l’Arduino Nano 33 BLE Sense¶
Nota
Questa pagina documenta il modulo Python imu dell’Arduino Nano 33 BLE Sense (un piccolo wrapper attorno ai driver IMU integrati). Per il modulo imu di livello C di OpenMV fornito sulle schede camera OPENMV_N6, OPENMV_RT1060 e OPENMV_AE3, vedere imu — sensore imu.
Questo modulo è un sottile wrapper specifico per la scheda che espone l’unità di misura inerziale integrata dell’Arduino Nano 33 BLE Sense come un singolo oggetto IMU. Entrambe le revisioni hardware della scheda sono gestite in modo trasparente:
La Rev 1 utilizza un singolo IMU a 9 assi LSM9DS1.
La Rev 2 combina un Bosch BMI270 (accelerometro + giroscopio) con un magnetometro Bosch BMM150.
Il costruttore sonda il bus I2C alla ricerca dell’indirizzo del BMI270 (0x68) e seleziona automaticamente il driver corrispondente, in modo che il codice utente possa essere scritto una sola volta ed eseguito su entrambe le revisioni.
Esempio:
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')¶
Costruisce un oggetto IMU associato a un bus I2C.
bus è un’istanza
machine.I2Cinizializzata collegata agli IMU integrati.
Durante la costruzione il bus viene scansionato: se un dispositivo risponde all’indirizzo
0x68viene istanziata una coppiaBMI270piùBMM150(Nano 33 BLE Sense Rev 2), altrimenti viene istanziato unLSM9DS1(Rev 1). Il driver sottostante viene mantenuto nell’attributoimue configurato con intervalli e frequenze dei dati in uscita predefiniti.- accel() tuple[float, float, float]¶
Restituisce l’ultima lettura dell’accelerometro come tupla
(x, y, z)in unità di g (gravità standard).