mirror of
https://github.com/openmv/openmv.git
synced 2025-11-04 14:49:50 +08:00
Make IMU configurable.
This commit is contained in:
parent
21047711c6
commit
e56a1341f2
13
src/Makefile
13
src/Makefile
@ -119,6 +119,9 @@ MP_CFLAGS += -I$(MP_BOARD_CONFIG_DIR)
|
||||
ifeq ($(MICROPY_PY_WINC1500), 1)
|
||||
MP_CFLAGS += -DMICROPY_PY_WINC1500=1
|
||||
endif
|
||||
ifeq ($(MICROPY_PY_IMU), 1)
|
||||
MP_CFLAGS += -DMICROPY_PY_IMU=1
|
||||
endif
|
||||
|
||||
OMV_CFLAGS += -I$(TOP_DIR)/$(OMV_DIR)/
|
||||
OMV_CFLAGS += -I$(TOP_DIR)/$(OMV_DIR)/py/
|
||||
@ -134,6 +137,10 @@ OMV_CFLAGS += -I$(TOP_DIR)/$(WINC1500_DIR)/include/
|
||||
UVC_CFLAGS = $(CFLAGS)
|
||||
UVC_CFLAGS += -I$(OMV_BOARD_CONFIG_DIR)
|
||||
UVC_CFLAGS += -I$(TOP_DIR)/$(UVC_DIR)/include/
|
||||
ifeq ($(MICROPY_PY_IMU), 1)
|
||||
# UVC firmware needs the IMU driver.
|
||||
UVC_CFLAGS += -DMICROPY_PY_IMU=1
|
||||
endif
|
||||
|
||||
BOOTLDR_CFLAGS = $(CFLAGS)
|
||||
BOOTLDR_CFLAGS += -I$(OMV_BOARD_CONFIG_DIR)
|
||||
@ -171,7 +178,9 @@ endif
|
||||
FIRM_OBJ += $(wildcard $(BUILD)/$(STHAL_DIR)/src/*.o)
|
||||
FIRM_OBJ += $(wildcard $(BUILD)/$(LEPTON_DIR)/src/*.o)
|
||||
FIRM_OBJ += $(wildcard $(BUILD)/$(MLX_DIR)/src/*.o)
|
||||
ifeq ($(MICROPY_PY_IMU), 1)
|
||||
FIRM_OBJ += $(wildcard $(BUILD)/$(ST_DIR)/src/*.o)
|
||||
endif
|
||||
ifeq ($(MICROPY_PY_WINC1500), 1)
|
||||
FIRM_OBJ += $(wildcard $(BUILD)/$(WINC1500_DIR)/src/*.o)
|
||||
endif
|
||||
@ -536,7 +545,9 @@ UVC_OBJ += $(addprefix $(BUILD)/$(OMV_DIR)/img/,\
|
||||
|
||||
UVC_OBJ += $(wildcard $(BUILD)/$(LEPTON_DIR)/src/*.o)
|
||||
UVC_OBJ += $(wildcard $(BUILD)/$(MLX_DIR)/src/*.o)
|
||||
ifeq ($(MICROPY_PY_IMU), 1)
|
||||
UVC_OBJ += $(wildcard $(BUILD)/$(ST_DIR)/src/*.o)
|
||||
endif
|
||||
|
||||
###################################################
|
||||
#Export Variables
|
||||
@ -572,7 +583,9 @@ FIRMWARE_OBJS: | $(BUILD) $(FW_DIR)
|
||||
$(MAKE) -C $(MICROPY_DIR)/ports/stm32 BUILD=$(BUILD)/$(MICROPY_DIR) BOARD=$(TARGET) DEBUG=$(DEBUG) QSTR_DEFS="$(OMV_QSTR_DEFS)"
|
||||
$(MAKE) -C $(LEPTON_DIR) BUILD=$(BUILD)/$(LEPTON_DIR) CFLAGS="$(CFLAGS) -MMD"
|
||||
$(MAKE) -C $(MLX_DIR) BUILD=$(BUILD)/$(MLX_DIR) CFLAGS="$(CFLAGS) -MMD"
|
||||
ifeq ($(MICROPY_PY_IMU), 1)
|
||||
$(MAKE) -C $(ST_DIR) BUILD=$(BUILD)/$(ST_DIR) CFLAGS="$(CFLAGS) -MMD"
|
||||
endif
|
||||
ifeq ($(MICROPY_PY_WINC1500), 1)
|
||||
$(MAKE) -C $(WINC1500_DIR) BUILD=$(BUILD)/$(WINC1500_DIR) CFLAGS="$(CFLAGS) -MMD"
|
||||
endif
|
||||
|
||||
@ -1 +1 @@
|
||||
Subproject commit 87995c9d1e85591e111513bd4ae3d1fafdf4f43d
|
||||
Subproject commit 39dc5109860f43166737db16cf49850fd8f07f68
|
||||
@ -49,9 +49,6 @@
|
||||
#define OMV_ENABLE_MT9V034 (1)
|
||||
#define OMV_ENABLE_LEPTON (1)
|
||||
|
||||
// Enable IMU sensor
|
||||
#define OMV_ENABLE_IMU (1)
|
||||
|
||||
// Enable WiFi debug
|
||||
#define OMV_ENABLE_WIFIDBG (1)
|
||||
|
||||
|
||||
@ -11,3 +11,4 @@ MAIN_APP_ADDR=0x08040000
|
||||
FROZEN_MPY_DIR=$(TOP_DIR)/../scripts/libraries
|
||||
MICROPY_PY_ULAB = 1
|
||||
MICROPY_PY_WINC1500 = 1
|
||||
MICROPY_PY_IMU = 1
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
#include "py_helper.h"
|
||||
#include "py_imu.h"
|
||||
|
||||
#if defined(OMV_ENABLE_IMU)
|
||||
#if MICROPY_PY_IMU
|
||||
|
||||
typedef union {
|
||||
int16_t i16bit[3];
|
||||
@ -203,11 +203,8 @@ STATIC mp_obj_t py_imu_read_reg(mp_obj_t addr)
|
||||
}
|
||||
STATIC MP_DEFINE_CONST_FUN_OBJ_1(py_imu_read_reg_obj, py_imu_read_reg);
|
||||
|
||||
#endif
|
||||
|
||||
STATIC const mp_rom_map_elem_t globals_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR___name__), MP_OBJ_NEW_QSTR(MP_QSTR_imu) },
|
||||
#if defined(OMV_ENABLE_IMU)
|
||||
{ MP_ROM_QSTR(MP_QSTR_acceleration_mg), MP_ROM_PTR(&py_imu_acceleration_mg_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_angular_rate_mdps), MP_ROM_PTR(&py_imu_angular_rate_mdps_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_temperature_c), MP_ROM_PTR(&py_imu_temperature_c_obj) },
|
||||
@ -216,16 +213,6 @@ STATIC const mp_rom_map_elem_t globals_dict_table[] = {
|
||||
{ MP_ROM_QSTR(MP_QSTR_sleep), MP_ROM_PTR(&py_imu_sleep_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR___write_reg), MP_ROM_PTR(&py_imu_write_reg_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR___read_reg), MP_ROM_PTR(&py_imu_read_reg_obj) },
|
||||
#else
|
||||
{ MP_ROM_QSTR(MP_QSTR_acceleration_mg), MP_ROM_PTR(&py_func_unavailable_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_angular_rate_mdps), MP_ROM_PTR(&py_func_unavailable_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_temperature_c), MP_ROM_PTR(&py_func_unavailable_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_roll), MP_ROM_PTR(&py_func_unavailable_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_pitch), MP_ROM_PTR(&py_func_unavailable_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_sleep), MP_ROM_PTR(&py_func_unavailable_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR___write_reg), MP_ROM_PTR(&py_func_unavailable_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR___read_reg), MP_ROM_PTR(&py_func_unavailable_obj) },
|
||||
#endif
|
||||
};
|
||||
|
||||
STATIC MP_DEFINE_CONST_DICT(globals_dict, globals_dict_table);
|
||||
@ -237,7 +224,6 @@ const mp_obj_module_t imu_module = {
|
||||
|
||||
void py_imu_init()
|
||||
{
|
||||
#if defined(OMV_ENABLE_IMU)
|
||||
HAL_SPI_Init(&SPIHandle);
|
||||
|
||||
uint8_t whoamI = 0, rst = 1;
|
||||
@ -270,31 +256,23 @@ void py_imu_init()
|
||||
|
||||
lsm6ds3tr_c_xl_full_scale_set(&dev_ctx, LSM6DS3TR_C_8g);
|
||||
lsm6ds3tr_c_gy_full_scale_set(&dev_ctx, LSM6DS3TR_C_2000dps);
|
||||
#endif
|
||||
}
|
||||
|
||||
float py_imu_roll_rotation()
|
||||
{
|
||||
#if defined(OMV_ENABLE_IMU)
|
||||
if (test_not_ready()) {
|
||||
return 0; // output when the camera is mounted upright
|
||||
}
|
||||
|
||||
return py_imu_get_roll();
|
||||
#else
|
||||
return 0; // output when the camera is mounted upright
|
||||
#endif
|
||||
}
|
||||
|
||||
float py_imu_pitch_rotation()
|
||||
{
|
||||
#if defined(OMV_ENABLE_IMU)
|
||||
if (test_not_ready()) {
|
||||
return 0; // output when the camera is mounted upright
|
||||
}
|
||||
|
||||
return py_imu_get_pitch();
|
||||
#else
|
||||
return 0; // output when the camera is mounted upright
|
||||
#endif
|
||||
}
|
||||
#endif //MICROPY_PY_IMU
|
||||
|
||||
Loading…
Reference in New Issue
Block a user