Skip to content

Commit fc3c6a0

Browse files
committed
cmodule/m5unified_imu: Add magnetic support to IMU module.
Signed-off-by: imliubo <[email protected]>
1 parent ddeb4a4 commit fc3c6a0

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

m5stack/cmodules/m5unified/m5unified_imu.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,15 @@ const mp_obj_type_t mp_m5_imu_type = {
3232
// -------- IMU wrapper
3333
MAKE_METHOD_0(imu, getAccel);
3434
MAKE_METHOD_0(imu, getGyro);
35+
MAKE_METHOD_0(imu, getMag);
3536
MAKE_METHOD_0(imu, isEnabled);
3637
MAKE_METHOD_0(imu, getType);
3738

3839
STATIC const mp_rom_map_elem_t imu_member_table[] = {
3940
{ MP_ROM_QSTR(MP_QSTR_IMU_TYPE), MP_ROM_PTR(&mp_m5_imu_type) },
4041
MAKE_TABLE(imu, getAccel),
4142
MAKE_TABLE(imu, getGyro),
43+
MAKE_TABLE(imu, getMag),
4244
MAKE_TABLE(imu, isEnabled),
4345
MAKE_TABLE(imu, getType),
4446
};

m5stack/components/M5Unified/mpy_m5imu.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,17 @@ namespace m5
3333
return mp_obj_new_tuple(3, tuple);
3434
}
3535

36+
mp_obj_t imu_getMag(mp_obj_t self) {
37+
float x = 0.0f,y = 0.0f,z = 0.0f;
38+
getImu(self)->getMag(&x, &y, &z);
39+
mp_obj_t tuple[3] = {
40+
mp_obj_new_float(x),
41+
mp_obj_new_float(y),
42+
mp_obj_new_float(z),
43+
};
44+
return mp_obj_new_tuple(3, tuple);
45+
}
46+
3647
mp_obj_t imu_getType(mp_obj_t self) {
3748
return mp_obj_new_int(getImu(self)->getType());
3849
}

0 commit comments

Comments
 (0)