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