imu — IMU-apuväline Arduino Nano 33 BLE Sense -korttiin

Muista

Tällä sivulla dokumentoidaan Arduino Nano 33 BLE Sensen Python imu -moduuli (pieni kääre kortin sisäisten IMU-ajurien ympärille). OPENMV_N6-, OPENMV_RT1060- ja OPENMV_AE3-kamerakorttien mukana toimitettavan OpenMV:n C-tason imu-moduulin osalta katso imu — imu-sensori.

Tämä moduuli on ohut korttikohtainen kääre, joka tuo Arduino Nano 33 BLE Sensen sisäisen inertiamittausyksikön esiin yhtenä IMU -objektina. Molemmat kortin laitteistorevisiot käsitellään läpinäkyvästi:

  • Rev 1 käyttää yhtä LSM9DS1 9-akselista IMU:ta.

  • Rev 2 yhdistää Bosch BMI270:n (kiihtyvyysanturi + gyroskooppi) Bosch BMM150 -magnetometriin.

Konstruktori tunnustelee I2C-väylää BMI270-osoitteen (0x68) varalta ja valitsee vastaavan ajurin automaattisesti, joten käyttäjäkoodi voidaan kirjoittaa kerran ja ajaa kummalla tahansa revisiolla.

Esimerkki:

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

Luo I2C-väylään sidotun IMU-objektin.

  • bus on alustettu machine.I2C -instanssi, joka on yhdistetty kortin sisäisiin IMU:ihin.

Konstruktion yhteydessä väylä skannataan: jos jokin laite vastaa osoitteessa 0x68, luodaan BMI270- ja BMM150-pari (Nano 33 BLE Sense Rev 2), muutoin luodaan LSM9DS1 (Rev 1). Taustalla oleva ajuri pidetään imu-attribuutissa ja konfiguroidaan oletusalueilla ja -datanopeuksilla.

accel() tuple[float, float, float]

Palauttaa viimeisimmän kiihtyvyysanturin lukeman (x, y, z) -monikkona g-yksiköissä (standardipainovoimat).

gyro() tuple[float, float, float]

Palauttaa viimeisimmän gyroskoopin lukeman (x, y, z) -monikkona asteina sekunnissa.

magnet() tuple[float, float, float]

Palauttaa viimeisimmän magnetometrin lukeman (x, y, z) -monikkona mikrotesloina (uT).