imu --- helper IMU untuk Arduino Nano 33 BLE Sense¶
Catatan
Halaman ini mendokumentasikan modul Python imu pada Arduino Nano 33 BLE Sense (pembungkus tipis di atas driver IMU on-board). Untuk modul imu level-C OpenMV yang dikirimkan pada papan kamera OPENMV_N6, OPENMV_RT1060, dan OPENMV_AE3, lihat imu --- sensor imu.
Modul ini adalah pembungkus tipis yang spesifik papan yang mengekspos unit pengukuran inersia on-board pada Arduino Nano 33 BLE Sense sebagai satu objek IMU. Kedua revisi hardware papan ditangani secara transparan:
Rev 1 menggunakan IMU 9-sumbu LSM9DS1 tunggal.
Rev 2 menggabungkan Bosch BMI270 (akselerometer + giroskop) dengan magnetometer Bosch BMM150.
Konstruktor memeriksa bus I2C untuk alamat BMI270 (0x68) dan memilih driver yang sesuai secara otomatis, sehingga kode pengguna dapat ditulis sekali dan dijalankan pada kedua revisi.
Contoh:
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')¶
Buat objek IMU yang terikat pada bus I2C.
bus adalah instance
machine.I2Cyang telah diinisialisasi dan terhubung ke IMU on-board.
Saat konstruksi, bus dipindai: jika perangkat merespons pada alamat
0x68, pasanganBMI270danBMM150diinstansiasi (Nano 33 BLE Sense Rev 2), jika tidak makaLSM9DS1diinstansiasi (Rev 1). Driver yang mendasarinya disimpan pada atributimudan dikonfigurasi dengan rentang dan laju data keluaran default.- accel() tuple[float, float, float]¶
Kembalikan pembacaan akselerometer terbaru sebagai tuple
(x, y, z)dalam satuan g (gravitasi standar).