imu — IMU segédmodul az Arduino Nano 33 BLE Sense-hez

Megjegyzés

Ez az oldal az Arduino Nano 33 BLE Sense Python imu modulját dokumentálja (egy kis burkoló a fedélzeti IMU-illesztőprogramok köré). Az OPENMV_N6, OPENMV_RT1060 és OPENMV_AE3 kameralapokon szállított OpenMV C-szintű imu modulhoz lásd: imu — imu érzékelő.

Ez a modul egy vékony, lap-specifikus burkoló, amely az Arduino Nano 33 BLE Sense fedélzeti tehetetlenségi mérőegységét egyetlen IMU objektumként teszi elérhetővé. A lap mindkét hardveres revíziója átlátszóan kezelődik:

  • A Rev 1 egyetlen LSM9DS1 9 tengelyes IMU-t használ.

  • A Rev 2 egy Bosch BMI270-et (gyorsulásmérő + giroszkóp) kombinál egy Bosch BMM150 magnetométerrel.

A konstruktor megvizsgálja az I2C-buszt a BMI270 címén (0x68), és automatikusan kiválasztja a megfelelő illesztőprogramot, így a felhasználói kód egyszer megírható, és bármelyik revízión futtatható.

Példa:

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

Egy I2C-buszhoz kötött IMU objektum létrehozása.

  • A bus egy inicializált machine.I2C példány, amely a fedélzeti IMU-(k)hoz csatlakozik.

Létrehozáskor a busz végigvizsgálódik: ha egy eszköz válaszol a 0x68 címen, akkor egy BMI270 és BMM150 pár jön létre (Nano 33 BLE Sense Rev 2), egyébként egy LSM9DS1 jön létre (Rev 1). Az alapul szolgáló illesztőprogram az imu attribútumon tárolódik, és alapértelmezett tartományokkal és kimeneti adatsebességekkel kerül beállításra.

accel() tuple[float, float, float]

A legfrissebb gyorsulásmérő-leolvasást (x, y, z) rendezett hármasként adja vissza g (standard nehézségi gyorsulás) egységben.

gyro() tuple[float, float, float]

A legfrissebb giroszkóp-leolvasást (x, y, z) rendezett hármasként adja vissza fok/másodperc egységben.

magnet() tuple[float, float, float]

A legfrissebb magnetométer-leolvasást (x, y, z) rendezett hármasként adja vissza mikrotesla (uT) egységben.