Skip to content

Commit 0e29a13

Browse files
committed
imu example of adding magnetometer data
1 parent 40d6aab commit 0e29a13

File tree

1 file changed

+24
-14
lines changed

1 file changed

+24
-14
lines changed

examples/Basics/imu/imu.ino

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
* @file imu.ino
44
* @author SeanKwok ([email protected])
55
* @brief M5AtomS3 IMU Test
6-
* @version 0.1
6+
* @version 0.2
77
* @date 2023-12-13
88
*
99
*
10-
* @Hardwares: M5AtomS3
10+
* @Hardwares: M5AtomS3 / M5AtomS3R
1111
* @Platform Version: Arduino M5Stack Board Manager v2.0.9
1212
* @Dependent Library:
1313
* M5GFX: https://github.com/m5stack/M5GFX
@@ -17,16 +17,20 @@
1717

1818
#include <M5Unified.h>
1919

20-
void setup(void) {
21-
auto cfg = M5.config();
20+
void setup(void)
21+
{
22+
delay(2000);
23+
auto cfg = M5.config();
24+
cfg.serial_baudrate = 115200;
2225
M5.begin(cfg);
2326
}
2427

25-
void loop(void) {
28+
void loop(void)
29+
{
2630
auto imu_update = M5.Imu.update();
2731
if (imu_update) {
2832
M5.Lcd.setCursor(0, 40);
29-
M5.Lcd.clear(); // Delay 100ms 延迟100ms
33+
M5.Lcd.fillRect(0, 40, M5.Lcd.width(), 40, BLACK);
3034

3135
auto data = M5.Imu.getImuData();
3236

@@ -41,19 +45,25 @@ void loop(void) {
4145
data.gyro.z; // gyro z-axis value.
4246
data.gyro.value; // gyro 3values array [0]=x / [1]=y / [2]=z.
4347

48+
if (M5.getBoard() == m5::board_t::board_M5AtomS3R) {
49+
data.mag.x; // mag x-axis value.
50+
data.mag.y; // mag y-axis value.
51+
data.mag.z; // mag z-axis value.
52+
data.mag.value; // mag 3values array [0]=x / [1]=y / [2]=z.
53+
}
54+
4455
data.value; // all sensor 9values array [0~2]=accel / [3~5]=gyro /
4556
// [6~8]=mag
4657

47-
Serial.printf("ax:%f ay:%f az:%f\r\n", data.accel.x, data.accel.y,
48-
data.accel.z);
49-
Serial.printf("gx:%f gy:%f gz:%f\r\n", data.gyro.x, data.gyro.y,
50-
data.gyro.z);
58+
Serial.printf("ax:%f ay:%f az:%f\r\n", data.accel.x, data.accel.y, data.accel.z);
59+
Serial.printf("gx:%f gy:%f gz:%f\r\n", data.gyro.x, data.gyro.y, data.gyro.z);
60+
Serial.printf("mx:%f my:%f mz:%f\r\n", data.mag.x, data.mag.y, data.mag.z);
5161

5262
M5.Lcd.printf("IMU:\r\n");
53-
M5.Lcd.printf("%0.2f %0.2f %0.2f\r\n", data.accel.x, data.accel.y,
54-
data.accel.z);
55-
M5.Lcd.printf("%0.2f %0.2f %0.2f\r\n", data.gyro.x, data.gyro.y,
56-
data.gyro.z);
63+
M5.Lcd.printf("%0.2f %0.2f %0.2f\r\n", data.accel.x, data.accel.y, data.accel.z);
64+
M5.Lcd.printf("%0.2f %0.2f %0.2f\r\n", data.gyro.x, data.gyro.y, data.gyro.z);
65+
M5.Lcd.printf("%0.2f %0.2f %0.2f\r\n", data.mag.x, data.mag.y, data.mag.z);
5766
}
67+
5868
delay(100);
5969
}

0 commit comments

Comments
 (0)