imu --- Tiện ích IMU cho Arduino Nano 33 BLE Sense¶
Ghi chú
Trang này mô tả module Python imu của Arduino Nano 33 BLE Sense (một lớp bọc mỏng xung quanh các driver IMU trên bo mạch). Đối với module imu cấp C của OpenMV được tích hợp sẵn trên các bo mạch camera OPENMV_N6, OPENMV_RT1060 và OPENMV_AE3, xem imu --- cảm biến IMU.
Module này là một lớp bọc mỏng theo board cụ thể, cung cấp đơn vị đo lường quán tính (IMU) trên bo mạch của Arduino Nano 33 BLE Sense dưới dạng một đối tượng IMU duy nhất. Cả hai phiên bản phần cứng của bo mạch đều được xử lý minh bạch:
Rev 1 sử dụng một IMU 9 trục LSM9DS1 duy nhất.
Rev 2 kết hợp Bosch BMI270 (gia tốc kế + con quay hồi chuyển) với từ kế Bosch BMM150.
Hàm khởi tạo quét bus I2C tìm địa chỉ BMI270 (0x68) và tự động chọn driver phù hợp, do đó mã người dùng có thể được viết một lần và chạy trên cả hai phiên bản.
Ví dụ:
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')¶
Khởi tạo một đối tượng IMU gắn với một bus I2C.
bus là một phiên bản
machine.I2Cđã được khởi tạo, kết nối với IMU trên bo mạch.
Khi khởi tạo, bus được quét: nếu một thiết bị phản hồi tại địa chỉ
0x68, một cặpBMI270vàBMM150sẽ được khởi tạo (Nano 33 BLE Sense Rev 2), ngược lại mộtLSM9DS1sẽ được khởi tạo (Rev 1). Driver cơ bản được lưu trong thuộc tínhimuvà được cấu hình với phạm vi mặc định và tốc độ dữ liệu đầu ra.- accel() tuple[float, float, float]¶
Trả về giá trị đọc mới nhất từ gia tốc kế dưới dạng tuple
(x, y, z)theo đơn vị g (gia tốc trọng trường chuẩn).