imu — ajutor IMU pentru Arduino Nano 33 BLE Sense#
Notă
Această pagină documentează modulul Python imu al plăcii Arduino Nano 33 BLE Sense (un mic înveliș în jurul driverelor IMU integrate). Pentru modulul imu de nivel C al OpenMV care este livrat pe plăcile de cameră OPENMV_N6, OPENMV_RT1060 și OPENMV_AE3, consultați imu — senzor imu.
Acest modul este un înveliș subțire specific plăcii care expune unitatea de măsurare inerțială integrată a plăcii Arduino Nano 33 BLE Sense ca un singur obiect IMU. Ambele revizii hardware ale plăcii sunt gestionate transparent:
Rev 1 folosește un singur IMU LSM9DS1 cu 9 axe.
Rev 2 combină un Bosch BMI270 (accelerometru + giroscop) cu un magnetometru Bosch BMM150.
Constructorul sondează magistrala I2C pentru adresa BMI270 (0x68) și selectează automat driverul corespunzător, astfel încât codul utilizatorului poate fi scris o singură dată și rulat pe oricare dintre revizii.
Exemplu:
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')#
Construiește un obiect IMU legat de o magistrală I2C.
bus este o instanță
machine.I2Cinițializată conectată la IMU-ul (IMU-urile) integrat(e).
La construire, magistrala este scanată: dacă un dispozitiv răspunde la adresa
0x68, este instanțiată o perecheBMI270plusBMM150(Nano 33 BLE Sense Rev 2), în caz contrar este instanțiat unLSM9DS1(Rev 1). Driverul subiacent este păstrat în atributulimuși configurat cu intervale și rate de ieșire a datelor implicite.- accel() tuple[float, float, float]#
Returnează cea mai recentă citire a accelerometrului ca un tuplu
(x, y, z)în unități de g (accelerații gravitaționale standard).