该设备是一款高度集成、低功耗的惯性测量单元(IMU),它集精确的加速度和角速度(陀螺仪)测量功能与智能的片上运动触发的中断特性于一体。
BMI270集成了:
16位数字三轴加速度计,量程为+2g/+4g/+8g/+16g
16位数字三轴陀螺仪,范围为+125dps/+250dps/+500dps/+1000dps/+2000dps二:原理图如下所示:

开发板的XYZ轴显示状态:

void setup(void)
{
delay(2000);
auto cfg = M5.config();
cfg.serial_baudrate = 115200;
M5.begin(cfg);
}3.2 主程序如下:void loop(void)
{
auto imu_update = M5.Imu.update();
if (imu_update) {
M5.Lcd.setCursor(0, 40);
M5.Lcd.fillRect(0, 40, M5.Lcd.width(), 100, BLACK);
auto data = M5.Imu.getImuData();
// The data obtained by getImuData can be used as follows.
data.accel.x; // accel x-axis value.
data.accel.y; // accel y-axis value.
data.accel.z; // accel z-axis value.
data.accel.value; // accel 3values array [0]=x / [1]=y / [2]=z.
data.gyro.x; // gyro x-axis value.
data.gyro.y; // gyro y-axis value.
data.gyro.z; // gyro z-axis value.
data.gyro.value; // gyro 3values array [0]=x / [1]=y / [2]=z.
if (M5.getBoard() == m5::board_t::board_M5AtomS3R) {
data.mag.x; // mag x-axis value.
data.mag.y; // mag y-axis value.
data.mag.z; // mag z-axis value.
data.mag.value; // mag 3values array [0]=x / [1]=y / [2]=z.
}
data.value; // all sensor 9values array [0~2]=accel / [3~5]=gyro /
// [6~8]=mag
Serial.printf("ax:%f ay:%f az:%f\r\n", data.accel.x, data.accel.y, data.accel.z);
Serial.printf("gx:%f gy:%f gz:%f\r\n", data.gyro.x, data.gyro.y, data.gyro.z);
Serial.printf("mx:%f my:%f mz:%f\r\n", data.mag.x, data.mag.y, data.mag.z);
M5.Lcd.printf("IMU:\r\n");
M5.Lcd.printf("%0.2f %0.2f %0.2f\r\n", data.accel.x, data.accel.y, data.accel.z);
M5.Lcd.printf("%0.2f %0.2f %0.2f\r\n", data.gyro.x, data.gyro.y, data.gyro.z);
M5.Lcd.printf("%0.2f %0.2f %0.2f\r\n", data.mag.x, data.mag.y, data.mag.z);
}
delay(1000);
}四:实物测试如下:如需再次下载:
请长按复位按键(大约 2 秒)直到内部绿色 LED 灯亮起,便可松开,此时设备已进入下载模式,等待烧录。
可以使用软件链接串口打印输出:


我要赚赏金
