imu — pomocník IMU pro Arduino Nano 33 BLE Sense

Poznámka

Tato stránka dokumentuje Python modul imu desky Arduino Nano 33 BLE Sense (malý obal nad ovladači palubní IMU). Pro modul imu na úrovni jazyka C od OpenMV, který je dodáván na kamerách OPENMV_N6, OPENMV_RT1060 a OPENMV_AE3, viz imu — imu senzor.

Tento modul je tenký obal specifický pro desku, který zpřístupňuje palubní inerciální měřicí jednotku desky Arduino Nano 33 BLE Sense jako jediný objekt IMU. Obě hardwarové revize desky jsou obsluhovány transparentně:

  • Rev 1 používá jedinou 9osou IMU LSM9DS1.

  • Rev 2 kombinuje Bosch BMI270 (akcelerometr + gyroskop) s magnetometrem Bosch BMM150.

Konstruktor prozkoumá I2C sběrnici na adresu BMI270 (0x68) a automaticky vybere odpovídající ovladač, takže uživatelský kód lze napsat jednou a spustit na kterékoli revizi.

Příklad:

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')

Vytvoří objekt IMU navázaný na I2C sběrnici.

  • bus je inicializovaná instance machine.I2C připojená k palubním IMU.

Při konstrukci se sběrnice naskenuje: pokud zařízení odpoví na adrese 0x68, vytvoří se dvojice BMI270 a BMM150 (Nano 33 BLE Sense Rev 2), jinak se vytvoří LSM9DS1 (Rev 1). Základní ovladač je uchováván v atributu imu a nakonfigurován s výchozími rozsahy a výstupními datovými rychlostmi.

accel() tuple[float, float, float]

Vrátí poslední hodnotu z akcelerometru jako n-tici (x, y, z) v jednotkách g (standardní tíhová zrychlení).

gyro() tuple[float, float, float]

Vrátí poslední hodnotu z gyroskopu jako n-tici (x, y, z) ve stupních za sekundu.

magnet() tuple[float, float, float]

Vrátí poslední hodnotu z magnetometru jako n-tici (x, y, z) v mikroteslech (uT).