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.I2Cpřipojená k palubním IMU.
Při konstrukci se sběrnice naskenuje: pokud zařízení odpoví na adrese
0x68, vytvoří se dvojiceBMI270aBMM150(Nano 33 BLE Sense Rev 2), jinak se vytvoříLSM9DS1(Rev 1). Základní ovladač je uchováván v atributuimua 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í).