imu — IMU-helper voor de Arduino Nano 33 BLE Sense¶
Notitie
Deze pagina documenteert de Python imu-module van de Arduino Nano 33 BLE Sense (een kleine wrapper rond de ingebouwde IMU-drivers). Voor de OpenMV imu-module op C-niveau die wordt meegeleverd op de OPENMV_N6-, OPENMV_RT1060- en OPENMV_AE3-cameraborden, zie imu — imu-sensor.
Deze module is een dunne board-specifieke wrapper die de ingebouwde traagheidsmeeteenheid van de Arduino Nano 33 BLE Sense beschikbaar maakt als één enkel IMU-object. Beide hardwarerevisies van het board worden transparant afgehandeld:
Rev 1 gebruikt één enkele LSM9DS1 9-assige IMU.
Rev 2 combineert een Bosch BMI270 (accelerometer + gyroscoop) met een Bosch BMM150 magnetometer.
De constructor onderzoekt de I2C-bus op het BMI270-adres (0x68) en selecteert automatisch de bijbehorende driver, zodat gebruikerscode één keer kan worden geschreven en op beide revisies draait.
Voorbeeld:
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')¶
Construeert een IMU-object dat aan een I2C-bus is gekoppeld.
bus is een geïnitialiseerde
machine.I2C-instantie die is verbonden met de ingebouwde IMU(‘s).
Bij constructie wordt de bus gescand: als er een apparaat reageert op adres
0x68wordt eenBMI270-plus-BMM150-paar geïnstantieerd (Nano 33 BLE Sense Rev 2), anders wordt eenLSM9DS1geïnstantieerd (Rev 1). De onderliggende driver wordt bewaard in hetimu-attribuut en geconfigureerd met standaardbereiken en uitvoer-datasnelheden.- accel() tuple[float, float, float]¶
Geeft de laatste accelerometeruitlezing terug als een
(x, y, z)-tuple in eenheden van g (standaardzwaartekrachten).