imu — Arduino Nano 33 BLE Sense için IMU yardımcısı¶
Not
Bu sayfa, Arduino Nano 33 BLE Sense’in Python imu modülünü (yerleşik IMU sürücüleri etrafındaki küçük bir sarmalayıcı) belgelendirir. OPENMV_N6, OPENMV_RT1060 ve OPENMV_AE3 kamera kartlarında bulunan OpenMV C düzeyindeki imu modülü için bkz. imu — imu sensörü.
Bu modül, Arduino Nano 33 BLE Sense’in yerleşik atalet ölçüm birimini tek bir IMU nesnesi olarak sunan, karta özgü ince bir sarmalayıcıdır. Kartın her iki donanım revizyonu da saydam biçimde ele alınır:
Rev 1 tek bir LSM9DS1 9 eksenli IMU kullanır.
Rev 2 bir Bosch BMI270 (ivmeölçer + jiroskop) ile bir Bosch BMM150 manyetometreyi birleştirir.
Yapıcı, BMI270 adresi (0x68) için I2C veri yolunu yoklar ve eşleşen sürücüyü otomatik olarak seçer; böylece kullanıcı kodu bir kez yazılıp her iki revizyonda da çalıştırılabilir.
Örnek:
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')¶
Bir I2C veri yoluna bağlı bir IMU nesnesi oluşturur.
bus, yerleşik IMU’lara/IMU’ya bağlı, başlatılmış bir
machine.I2Cörneğidir.
Oluşturma sırasında veri yolu taranır:
0x68adresinde bir cihaz yanıt verirse birBMI270veBMM150çifti örneklenir (Nano 33 BLE Sense Rev 2), aksi takdirde birLSM9DS1örneklenir (Rev 1). Temeldeki sürücüimuözniteliğinde tutulur ve varsayılan aralıklar ile çıkış veri hızlarıyla yapılandırılır.- accel() tuple[float, float, float]¶
En son ivmeölçer okumasını g (standart yerçekimi) birimleri cinsinden bir
(x, y, z)demeti olarak döndürür.