bmi270 — BMI270 6축 IMU¶
I2C를 통해 동작하는 Bosch BMI270 저전력 6축 관성 측정 장치(3축 가속도계 + 3축 자이로스코프)용 드라이버입니다. 이 드라이버는 객체 생성 시 BMI270의 전체 초기화 시퀀스(소프트 리셋, 절전 모드 해제, 구성 블롭 업로드 및 상태 검증)를 수행한 후 요청된 출력 데이터 레이트와 풀스케일 범위를 구성합니다.
이 클래스는 선택적으로 외부 bmm150.BMM150 자력계 인스턴스에 연결할 수 있으며, 그러면 호출자는 magnet() 메서드를 통해 BMI270 + BMM150 쌍을 단일 9축 장치로 다룰 수 있습니다.
참고
이 드라이버는 SPI 모드를 지원하지 않습니다. I2C가 아닌 버스를 전달하면 ValueError가 발생합니다.
예제:
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)
클래스¶
- 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)¶
BMI270인스턴스를 생성하고 전체 구성 로드 초기화 시퀀스를 실행합니다. 칩 ID가 일치하지 않거나 로드 시퀀스가 실패하면OSError를 발생시킵니다.bus센서가 연결된, 구성이 완료된
machine.I2C버스입니다.csSPI 모드용으로 예약되어 있습니다.
None으로 두어야 합니다. SPI는 현재 구현되어 있지 않으며 I2C가 아닌 버스를 전달하면ValueError가 발생합니다.address장치의 7비트 I2C 주소입니다. 기본값은
0x68이며, 일부 보드는 SDO 핀을 하이로 스트랩하여0x69를 선택합니다.gyro_odr자이로스코프 출력 데이터 레이트(Hz)입니다.
0.78,1.5,3.1,6.25,12.5,25,50,100,200,400,800,1200중 하나여야 합니다.gyro_scale자이로스코프 풀스케일 범위(초당 도)입니다.
125,250,500,1000,2000중 하나여야 합니다.accel_odr가속도계 출력 데이터 레이트(Hz)입니다.
gyro_odr과 동일한 값 집합을 사용합니다.accel_scale가속도계 풀스케일 범위(g)입니다.
2,4,8,16중 하나여야 합니다.bmm_magnet선택적
bmm150.BMM150인스턴스입니다. 제공되면magnet()메서드가 이 인스턴스에 위임하고, 그렇지 않으면magnet()는 0을 반환합니다.