imu — допоміжний модуль IMU для Arduino Nano 33 BLE Sense¶
Примітка
На цій сторінці описано Python-модуль imu плати Arduino Nano 33 BLE Sense (невелика обгортка навколо вбудованих драйверів IMU). Щодо модуля imu рівня C для OpenMV, який постачається на платах камер OPENMV_N6, OPENMV_RT1060 та OPENMV_AE3, дивіться imu — датчик IMU.
Цей модуль є тонкою платформозалежною обгорткою, яка надає доступ до вбудованого блоку вимірювання інерції плати Arduino Nano 33 BLE Sense у вигляді єдиного об’єкта IMU. Обидві апаратні ревізії плати підтримуються прозоро:
Rev 1 використовує одну 9-осьову IMU LSM9DS1.
Rev 2 поєднує Bosch BMI270 (акселерометр + гіроскоп) з магнетометром Bosch BMM150.
Конструктор сканує шину I2C на наявність адреси BMI270 (0x68) та автоматично вибирає відповідний драйвер, тому код користувача можна написати один раз і запускати на будь-якій ревізії.
Приклад:
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')¶
Створює об’єкт IMU, прив’язаний до шини I2C.
bus — ініціалізований екземпляр
machine.I2C, підключений до вбудованих IMU.
При ініціалізації сканується шина: якщо пристрій відповідає за адресою
0x68, створюється параBMI270+BMM150(Nano 33 BLE Sense Rev 2), інакше —LSM9DS1(Rev 1). Базовий драйвер зберігається в атрибутіimuта налаштовується з діапазонами та вихідними частотами дискретизації за замовчуванням.- accel() tuple[float, float, float]¶
Повертає останнє показання акселерометра у вигляді кортежу
(x, y, z)в одиницях g (стандартні прискорення вільного падіння).