imu — assistant IMU pour l’Arduino Nano 33 BLE Sense¶
Note
Cette page documente le module imu Python de l’Arduino Nano 33 BLE Sense (une petite surcouche autour des pilotes IMU embarqués). Pour le module imu de niveau C d’OpenMV fourni sur les cartes caméra OPENMV_N6, OPENMV_RT1060 et OPENMV_AE3, voir imu — capteur imu.
Ce module est une fine surcouche propre à la carte qui expose l’unité de mesure inertielle embarquée de l’Arduino Nano 33 BLE Sense sous la forme d’un unique objet IMU. Les deux révisions matérielles de la carte sont gérées de façon transparente :
La Rev 1 utilise un unique IMU 9 axes LSM9DS1.
La Rev 2 associe un Bosch BMI270 (accéléromètre + gyroscope) à un magnétomètre Bosch BMM150.
Le constructeur sonde le bus I2C à la recherche de l’adresse du BMI270 (0x68) et sélectionne automatiquement le pilote correspondant, de sorte que le code utilisateur peut être écrit une seule fois et fonctionner sur l’une ou l’autre révision.
Exemple
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')¶
Construit un objet IMU lié à un bus I2C.
bus est une instance
machine.I2Cinitialisée et connectée au(x) IMU embarqué(s).
Lors de la construction, le bus est analysé : si un périphérique répond à l’adresse
0x68, une paireBMI270plusBMM150est instanciée (Nano 33 BLE Sense Rev 2), sinon unLSM9DS1est instancié (Rev 1). Le pilote sous-jacent est conservé dans l’attributimuet configuré avec les plages et les débits de données en sortie par défaut.- accel() tuple[float, float, float]¶
Renvoie la dernière lecture de l’accéléromètre sous la forme d’un tuple
(x, y, z)exprimé en g (gravités standard).