imu — pomocnik IMU dla Arduino Nano 33 BLE Sense

Informacja

Ta strona dokumentuje moduł Pythona imu z Arduino Nano 33 BLE Sense (niewielką nakładkę na sterowniki wbudowanego IMU). Dla modułu imu poziomu C z OpenMV, dostarczanego na płytkach kamer OPENMV_N6, OPENMV_RT1060 i OPENMV_AE3, zobacz imu — sensor imu.

Ten moduł jest cienką, specyficzną dla płytki nakładką, która udostępnia wbudowaną inercyjną jednostkę pomiarową Arduino Nano 33 BLE Sense jako pojedynczy obiekt IMU. Obie rewizje sprzętowe płytki są obsługiwane w sposób przezroczysty:

  • Rev 1 używa pojedynczego 9-osiowego IMU LSM9DS1.

  • Rev 2 łączy układ Bosch BMI270 (akcelerometr + żyroskop) z magnetometrem Bosch BMM150.

Konstruktor sprawdza magistralę I2C pod kątem adresu BMI270 (0x68) i automatycznie wybiera pasujący sterownik, dzięki czemu kod użytkownika można napisać raz i uruchomić na dowolnej rewizji.

Przykład:

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

Tworzy obiekt IMU powiązany z magistralą I2C.

  • bus to zainicjalizowana instancja machine.I2C podłączona do wbudowanego IMU (lub IMU).

Przy tworzeniu obiektu magistrala jest skanowana: jeśli urządzenie odpowiada pod adresem 0x68, tworzona jest para BMI270 plus BMM150 (Nano 33 BLE Sense Rev 2), w przeciwnym razie tworzony jest LSM9DS1 (Rev 1). Bazowy sterownik jest przechowywany w atrybucie imu i konfigurowany z domyślnymi zakresami oraz szybkościami danych wyjściowych.

accel() tuple[float, float, float]

Zwraca najnowszy odczyt akcelerometru jako krotkę (x, y, z) w jednostkach g (standardowe przyspieszenia ziemskie).

gyro() tuple[float, float, float]

Zwraca najnowszy odczyt żyroskopu jako krotkę (x, y, z) w stopniach na sekundę.

magnet() tuple[float, float, float]

Zwraca najnowszy odczyt magnetometru jako krotkę (x, y, z) w mikroteslach (uT).