bmi270 --- IMU 6 trục BMI270¶
Driver cho cảm biến đo quán tính 6 trục tiêu thụ điện năng thấp Bosch BMI270 (gia tốc kế 3 trục kết hợp con quay hồi chuyển 3 trục) qua I2C. Driver thực hiện toàn bộ trình tự khởi tạo BMI270 khi khởi tạo --- đặt lại mềm, tắt chế độ tiết kiệm điện, tải blob cấu hình và xác minh trạng thái --- trước khi cấu hình tốc độ dữ liệu đầu ra và dải đo đầy đủ theo yêu cầu.
Lớp có thể liên kết tùy chọn với một thể hiện từ kế ngoài bmm150.BMM150 để người dùng có thể xem cặp BMI270 + BMM150 như một thiết bị 9 trục duy nhất thông qua phương thức magnet().
Ghi chú
Chế độ SPI không được driver này hỗ trợ; truyền bus không phải I2C sẽ báo lỗi ValueError.
Ví dụ:
import time
from machine import Pin, I2C
from bmi270 import BMI270
imu = BMI270(I2C(1, scl=Pin("P15"), sda=Pin("P14")))
while True:
print("Accelerometer: x:{:>8.3f} y:{:>8.3f} z:{:>8.3f}".format(*imu.accel()))
print("Gyroscope: x:{:>8.3f} y:{:>8.3f} z:{:>8.3f}".format(*imu.gyro()))
time.sleep_ms(100)
Các lớp¶
- class bmi270.BMI270(bus: machine.I2C, cs: machine.Pin | None = None, address: int = 0x68, gyro_odr: float = 100, gyro_scale: int = 2000, accel_odr: float = 100, accel_scale: int = 4, bmm_magnet: BMM150 | None = None)¶
Khởi tạo một thể hiện
BMI270và chạy toàn bộ trình tự khởi tạo tải cấu hình. Báo lỗiOSErrornếu ID chip không khớp hoặc nếu trình tự tải thất bại.busBus
machine.I2Cđã được cấu hình mà cảm biến kết nối vào.csDành riêng cho chế độ SPI. Phải để là
None; SPI hiện chưa được triển khai và truyền bus không phải I2C sẽ báo lỗiValueError.addressĐịa chỉ I2C 7 bit của thiết bị. Mặc định là
0x68; một số bo mạch kéo chân SDO lên cao để chọn0x69.gyro_odrTốc độ dữ liệu đầu ra của con quay hồi chuyển theo Hz. Phải là một trong các giá trị
0.78,1.5,3.1,6.25,12.5,25,50,100,200,400,800hoặc1200.gyro_scaleDải đo đầy đủ của con quay hồi chuyển theo độ/giây. Phải là một trong các giá trị
125,250,500,1000hoặc2000.accel_odrTốc độ dữ liệu đầu ra của gia tốc kế theo Hz. Cùng tập giá trị như
gyro_odr.accel_scaleDải đo đầy đủ của gia tốc kế theo g. Phải là một trong các giá trị
2,4,8hoặc16.bmm_magnetThể hiện
bmm150.BMM150tùy chọn. Khi được cung cấp, phương thứcmagnet()sẽ ủy quyền cho nó; nếu không,magnet()trả về các giá trị không.
- reset() None¶
Phát lệnh đặt lại mềm BMI270. Sau khi gọi lệnh này, thiết bị phải được khởi tạo lại trước khi tiếp tục sử dụng.
- gyro() tuple[float, float, float]¶
Trả về vector con quay hồi chuyển
(x, y, z)theo độ/giây, được điều chỉnh theogyro_scale.