pdf-icon

IMU

M5AtomS3 IMU Attitude Sensor Input Related APIs and Case Programs.

Example


#include <M5AtomS3.h>

void setup(void) {
    AtomS3.begin();
}

void loop(void) {
    auto imu_update = AtomS3.Imu.update();
    if (imu_update) {
        auto data = AtomS3.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.

        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);
    }
    delay(100);
}

API

The M5AtomS3 library is based on the M5Unified library implementation, the IMU part uses the IMU_Class in the M5Unified library, for more key related APIs you can refer to the following document:

On This Page