From 343deb6c7d1820b4fa004bd465e2a1cab2be6819 Mon Sep 17 00:00:00 2001 From: Neucrack Date: Tue, 5 Aug 2025 18:58:30 +0800 Subject: [PATCH] optimize imu init error and examples name --- .../ext_devs/ext_dev/include/maix_imu.hpp | 3 ++- components/ext_devs/ext_dev/src/maix_imu.cpp | 16 +++++++++++++-- .../{maix_bm8563 => comm_modbus}/.gitignore | 0 .../{maix_modbus => comm_modbus}/README.md | 0 .../{maix_modbus => comm_modbus}/app.yaml | 0 .../main/CMakeLists.txt | 0 .../{imu_ahrs => comm_modbus}/main/Kconfig | 0 .../main/include/main.h | 0 .../main/src/main.cpp | 0 .../.gitignore | 0 .../README.md | 0 .../app.yaml | 0 .../main/CMakeLists.txt | 0 .../main/Kconfig | 0 .../main/include/main.h | 0 .../main/src/main.cpp | 0 .../{imu_ahrs => ext_dev_imu_ahrs}/.gitignore | 0 .../{imu_ahrs => ext_dev_imu_ahrs}/README.md | 0 .../{imu_ahrs => ext_dev_imu_ahrs}/app.yaml | 0 .../main/CMakeLists.txt | 0 .../main/Kconfig | 0 .../main/include/main.h | 0 .../main/src/main.cpp | 20 ++++++++++++++----- .../.gitignore | 0 .../README.md | 0 .../app.yaml | 0 .../main/CMakeLists.txt | 0 .../main/Kconfig | 0 .../main/include/main.h | 0 .../main/src/main.cpp | 0 .../.gitignore | 0 .../README.md | 0 .../app.yaml | 0 .../main/CMakeLists.txt | 0 .../main/Kconfig | 0 .../main/include/main.h | 0 .../main/src/main.cpp | 0 .../.gitignore | 0 .../README.md | 0 .../app.yaml | 0 .../main/CMakeLists.txt | 0 .../main/Kconfig | 0 .../main/include/main.h | 0 .../main/src/main.cpp | 0 .../.gitignore | 0 .../README.md | 0 .../app.yaml | 0 .../main/CMakeLists.txt | 0 .../main/Kconfig | 0 .../main/include/main.h | 0 .../main/src/main.cpp | 0 .../.gitignore | 0 .../README.md | 0 .../app.yaml | 0 .../main/CMakeLists.txt | 0 .../main/Kconfig | 0 .../main/include/main.h | 0 .../main/src/main.cpp | 0 .../{maix_qmi8658 => ext_dev_pmu}/.gitignore | 0 examples/{maix_pmu => ext_dev_pmu}/README.md | 0 examples/{maix_pmu => ext_dev_pmu}/app.yaml | 0 .../main/CMakeLists.txt | 0 .../main/Kconfig | 0 .../main/include/main.h | 0 .../main/src/main.cpp | 0 .../.gitignore | 0 .../README.md | 0 .../app.yaml | 0 .../main/CMakeLists.txt | 0 .../main/Kconfig | 0 .../main/include/main.h | 0 .../main/src/main.cpp | 0 .../.gitignore | 0 .../README.md | 0 .../app.yaml | 0 .../main/CMakeLists.txt | 0 .../main/Kconfig | 0 .../main/include/main.h | 0 .../main/src/main.cpp | 0 .../.gitignore | 0 .../README.md | 0 .../app.yaml | 0 .../main/CMakeLists.txt | 0 .../main/Kconfig | 0 .../main/include/main.h | 0 .../main/src/main.cpp | 0 examples/{mlx90640 => time_ntp}/.gitignore | 0 examples/{maix_ntp => time_ntp}/README.md | 0 examples/{maix_ntp => time_ntp}/app.yaml | 0 .../main/CMakeLists.txt | 0 examples/{mlx90640 => time_ntp}/main/Kconfig | 0 .../main/include/main.h | 0 .../{maix_ntp => time_ntp}/main/src/main.cpp | 0 93 files changed, 31 insertions(+), 8 deletions(-) rename examples/{maix_bm8563 => comm_modbus}/.gitignore (100%) rename examples/{maix_modbus => comm_modbus}/README.md (100%) rename examples/{maix_modbus => comm_modbus}/app.yaml (100%) rename examples/{maix_modbus => comm_modbus}/main/CMakeLists.txt (100%) rename examples/{imu_ahrs => comm_modbus}/main/Kconfig (100%) rename examples/{imu_ahrs => comm_modbus}/main/include/main.h (100%) rename examples/{maix_modbus => comm_modbus}/main/src/main.cpp (100%) rename examples/{maix_fp5510 => comm_modbus_loopback}/.gitignore (100%) rename examples/{maix_modbus_loopback => comm_modbus_loopback}/README.md (100%) rename examples/{maix_modbus_loopback => comm_modbus_loopback}/app.yaml (100%) rename examples/{maix_modbus_loopback => comm_modbus_loopback}/main/CMakeLists.txt (100%) rename examples/{maix_bm8563 => comm_modbus_loopback}/main/Kconfig (100%) rename examples/{maix_bm8563 => comm_modbus_loopback}/main/include/main.h (100%) rename examples/{maix_modbus_loopback => comm_modbus_loopback}/main/src/main.cpp (100%) rename examples/{imu_ahrs => ext_dev_imu_ahrs}/.gitignore (100%) rename examples/{imu_ahrs => ext_dev_imu_ahrs}/README.md (100%) rename examples/{imu_ahrs => ext_dev_imu_ahrs}/app.yaml (100%) rename examples/{imu_ahrs => ext_dev_imu_ahrs}/main/CMakeLists.txt (100%) rename examples/{maix_fp5510 => ext_dev_imu_ahrs}/main/Kconfig (100%) rename examples/{maix_fp5510 => ext_dev_imu_ahrs}/main/include/main.h (100%) rename examples/{imu_ahrs => ext_dev_imu_ahrs}/main/src/main.cpp (95%) rename examples/{maix_imu => ext_dev_imu_qmi8658}/.gitignore (100%) rename examples/{maix_imu => ext_dev_imu_qmi8658}/README.md (100%) rename examples/{maix_qmi8658 => ext_dev_imu_qmi8658}/app.yaml (100%) rename examples/{maix_bm8563 => ext_dev_imu_qmi8658}/main/CMakeLists.txt (100%) rename examples/{maix_imu => ext_dev_imu_qmi8658}/main/Kconfig (100%) rename examples/{maix_imu => ext_dev_imu_qmi8658}/main/include/main.h (100%) rename examples/{maix_qmi8658 => ext_dev_imu_qmi8658}/main/src/main.cpp (100%) rename examples/{maix_modbus => ext_dev_imu_read_raw}/.gitignore (100%) rename examples/{maix_qmi8658 => ext_dev_imu_read_raw}/README.md (100%) rename examples/{maix_imu => ext_dev_imu_read_raw}/app.yaml (100%) rename examples/{maix_fp5510 => ext_dev_imu_read_raw}/main/CMakeLists.txt (100%) rename examples/{maix_modbus => ext_dev_imu_read_raw}/main/Kconfig (100%) rename examples/{maix_modbus => ext_dev_imu_read_raw}/main/include/main.h (100%) rename examples/{maix_imu => ext_dev_imu_read_raw}/main/src/main.cpp (100%) rename examples/{maix_modbus_loopback => ext_dev_motor_fp5510}/.gitignore (100%) rename examples/{maix_fp5510 => ext_dev_motor_fp5510}/README.md (100%) rename examples/{maix_fp5510 => ext_dev_motor_fp5510}/app.yaml (100%) rename examples/{maix_imu => ext_dev_motor_fp5510}/main/CMakeLists.txt (100%) rename examples/{maix_modbus_loopback => ext_dev_motor_fp5510}/main/Kconfig (100%) rename examples/{maix_modbus_loopback => ext_dev_motor_fp5510}/main/include/main.h (100%) rename examples/{maix_fp5510 => ext_dev_motor_fp5510}/main/src/main.cpp (100%) rename examples/{maix_ntp => ext_dev_motor_tmc2209}/.gitignore (100%) rename examples/{maix_tmc2209 => ext_dev_motor_tmc2209}/README.md (100%) rename examples/{maix_tmc2209 => ext_dev_motor_tmc2209}/app.yaml (100%) rename examples/{maix_ntp => ext_dev_motor_tmc2209}/main/CMakeLists.txt (100%) rename examples/{maix_ntp => ext_dev_motor_tmc2209}/main/Kconfig (100%) rename examples/{maix_ntp => ext_dev_motor_tmc2209}/main/include/main.h (100%) rename examples/{maix_tmc2209 => ext_dev_motor_tmc2209}/main/src/main.cpp (100%) rename examples/{maix_pmu => ext_dev_motor_tmc2209_2axis_scan}/.gitignore (100%) rename examples/{maix_tmc2209_2axis_scan => ext_dev_motor_tmc2209_2axis_scan}/README.md (100%) rename examples/{maix_tmc2209_2axis_scan => ext_dev_motor_tmc2209_2axis_scan}/app.yaml (100%) rename examples/{maix_tmc2209_2axis_scan => ext_dev_motor_tmc2209_2axis_scan}/main/CMakeLists.txt (100%) rename examples/{maix_pmu => ext_dev_motor_tmc2209_2axis_scan}/main/Kconfig (100%) rename examples/{maix_pmu => ext_dev_motor_tmc2209_2axis_scan}/main/include/main.h (100%) rename examples/{maix_tmc2209_2axis_scan => ext_dev_motor_tmc2209_2axis_scan}/main/src/main.cpp (100%) rename examples/{maix_qmi8658 => ext_dev_pmu}/.gitignore (100%) rename examples/{maix_pmu => ext_dev_pmu}/README.md (100%) rename examples/{maix_pmu => ext_dev_pmu}/app.yaml (100%) rename examples/{maix_pmu => ext_dev_pmu}/main/CMakeLists.txt (100%) rename examples/{maix_qmi8658 => ext_dev_pmu}/main/Kconfig (100%) rename examples/{maix_qmi8658 => ext_dev_pmu}/main/include/main.h (100%) rename examples/{maix_pmu => ext_dev_pmu}/main/src/main.cpp (100%) rename examples/{maix_tmc2209 => ext_dev_rtc_bm8563}/.gitignore (100%) rename examples/{maix_bm8563 => ext_dev_rtc_bm8563}/README.md (100%) rename examples/{maix_bm8563 => ext_dev_rtc_bm8563}/app.yaml (100%) rename examples/{maix_qmi8658 => ext_dev_rtc_bm8563}/main/CMakeLists.txt (100%) rename examples/{maix_tmc2209 => ext_dev_rtc_bm8563}/main/Kconfig (100%) rename examples/{maix_tmc2209 => ext_dev_rtc_bm8563}/main/include/main.h (100%) rename examples/{maix_bm8563 => ext_dev_rtc_bm8563}/main/src/main.cpp (100%) rename examples/{maix_tmc2209_2axis_scan => ext_dev_thermal_mlx90640}/.gitignore (100%) rename examples/{mlx90640 => ext_dev_thermal_mlx90640}/README.md (100%) rename examples/{mlx90640 => ext_dev_thermal_mlx90640}/app.yaml (100%) rename examples/{mlx90640 => ext_dev_thermal_mlx90640}/main/CMakeLists.txt (100%) rename examples/{maix_tmc2209_2axis_scan => ext_dev_thermal_mlx90640}/main/Kconfig (100%) rename examples/{maix_tmc2209_2axis_scan => ext_dev_thermal_mlx90640}/main/include/main.h (100%) rename examples/{mlx90640 => ext_dev_thermal_mlx90640}/main/src/main.cpp (100%) rename examples/{maix_tof100 => ext_dev_tof_tof100}/.gitignore (100%) rename examples/{maix_tof100 => ext_dev_tof_tof100}/README.md (100%) rename examples/{maix_tof100 => ext_dev_tof_tof100}/app.yaml (100%) rename examples/{maix_tof100 => ext_dev_tof_tof100}/main/CMakeLists.txt (100%) rename examples/{maix_tof100 => ext_dev_tof_tof100}/main/Kconfig (100%) rename examples/{maix_tof100 => ext_dev_tof_tof100}/main/include/main.h (100%) rename examples/{maix_tof100 => ext_dev_tof_tof100}/main/src/main.cpp (100%) rename examples/{mlx90640 => time_ntp}/.gitignore (100%) rename examples/{maix_ntp => time_ntp}/README.md (100%) rename examples/{maix_ntp => time_ntp}/app.yaml (100%) rename examples/{maix_tmc2209 => time_ntp}/main/CMakeLists.txt (100%) rename examples/{mlx90640 => time_ntp}/main/Kconfig (100%) rename examples/{mlx90640 => time_ntp}/main/include/main.h (100%) rename examples/{maix_ntp => time_ntp}/main/src/main.cpp (100%) diff --git a/components/ext_devs/ext_dev/include/maix_imu.hpp b/components/ext_devs/ext_dev/include/maix_imu.hpp index 56681124..e339c05e 100644 --- a/components/ext_devs/ext_dev/include/maix_imu.hpp +++ b/components/ext_devs/ext_dev/include/maix_imu.hpp @@ -172,7 +172,7 @@ public: /** * @brief Construct a new IMU object, will open IMU * - * @param driver driver name, only support "qmi8656" + * @param driver driver name, "default" means use onboard IMU according to board id, other values: ["qmi8656"] * @param i2c_bus i2c bus number. Automatically selects the on-board imu when -1 is passed in. * @param addr IMU i2c addr. * @param freq IMU freq @@ -182,6 +182,7 @@ public: * @param gyro_scale gyro scale, see @imu::GyroScale * @param gyro_odr gyro output data rate, see @imu::GyroOdr * @param block block or non-block, defalut is true + * @throw if arg error or not find valid IMU, will throw err::Exception * * @maixpy maix.ext_dev.imu.IMU.__init__ */ diff --git a/components/ext_devs/ext_dev/src/maix_imu.cpp b/components/ext_devs/ext_dev/src/maix_imu.cpp index 839c5b66..eb3ea7c2 100644 --- a/components/ext_devs/ext_dev/src/maix_imu.cpp +++ b/components/ext_devs/ext_dev/src/maix_imu.cpp @@ -93,11 +93,23 @@ IMU::IMU(std::string driver, int i2c_bus, int addr, int freq, imu::Mode mode, im imu_param_t *param = (imu_param_t *)malloc(sizeof(imu_param_t)); err::check_null_raise(param, "Failed to malloc param"); - if(driver == "qmi8658") + bool found = false; + + if(driver == "default") + { + if(sys::device_id() == "maixcam_pro") + { + param->type = driver_type::qmi8658; + found = true; + } + } + else if(driver == "qmi8658") { param->type = driver_type::qmi8658; + found = true; } - else + + if (!found) { free(param); throw err::Exception(err::ERR_ARGS, "not support " + driver); diff --git a/examples/maix_bm8563/.gitignore b/examples/comm_modbus/.gitignore similarity index 100% rename from examples/maix_bm8563/.gitignore rename to examples/comm_modbus/.gitignore diff --git a/examples/maix_modbus/README.md b/examples/comm_modbus/README.md similarity index 100% rename from examples/maix_modbus/README.md rename to examples/comm_modbus/README.md diff --git a/examples/maix_modbus/app.yaml b/examples/comm_modbus/app.yaml similarity index 100% rename from examples/maix_modbus/app.yaml rename to examples/comm_modbus/app.yaml diff --git a/examples/maix_modbus/main/CMakeLists.txt b/examples/comm_modbus/main/CMakeLists.txt similarity index 100% rename from examples/maix_modbus/main/CMakeLists.txt rename to examples/comm_modbus/main/CMakeLists.txt diff --git a/examples/imu_ahrs/main/Kconfig b/examples/comm_modbus/main/Kconfig similarity index 100% rename from examples/imu_ahrs/main/Kconfig rename to examples/comm_modbus/main/Kconfig diff --git a/examples/imu_ahrs/main/include/main.h b/examples/comm_modbus/main/include/main.h similarity index 100% rename from examples/imu_ahrs/main/include/main.h rename to examples/comm_modbus/main/include/main.h diff --git a/examples/maix_modbus/main/src/main.cpp b/examples/comm_modbus/main/src/main.cpp similarity index 100% rename from examples/maix_modbus/main/src/main.cpp rename to examples/comm_modbus/main/src/main.cpp diff --git a/examples/maix_fp5510/.gitignore b/examples/comm_modbus_loopback/.gitignore similarity index 100% rename from examples/maix_fp5510/.gitignore rename to examples/comm_modbus_loopback/.gitignore diff --git a/examples/maix_modbus_loopback/README.md b/examples/comm_modbus_loopback/README.md similarity index 100% rename from examples/maix_modbus_loopback/README.md rename to examples/comm_modbus_loopback/README.md diff --git a/examples/maix_modbus_loopback/app.yaml b/examples/comm_modbus_loopback/app.yaml similarity index 100% rename from examples/maix_modbus_loopback/app.yaml rename to examples/comm_modbus_loopback/app.yaml diff --git a/examples/maix_modbus_loopback/main/CMakeLists.txt b/examples/comm_modbus_loopback/main/CMakeLists.txt similarity index 100% rename from examples/maix_modbus_loopback/main/CMakeLists.txt rename to examples/comm_modbus_loopback/main/CMakeLists.txt diff --git a/examples/maix_bm8563/main/Kconfig b/examples/comm_modbus_loopback/main/Kconfig similarity index 100% rename from examples/maix_bm8563/main/Kconfig rename to examples/comm_modbus_loopback/main/Kconfig diff --git a/examples/maix_bm8563/main/include/main.h b/examples/comm_modbus_loopback/main/include/main.h similarity index 100% rename from examples/maix_bm8563/main/include/main.h rename to examples/comm_modbus_loopback/main/include/main.h diff --git a/examples/maix_modbus_loopback/main/src/main.cpp b/examples/comm_modbus_loopback/main/src/main.cpp similarity index 100% rename from examples/maix_modbus_loopback/main/src/main.cpp rename to examples/comm_modbus_loopback/main/src/main.cpp diff --git a/examples/imu_ahrs/.gitignore b/examples/ext_dev_imu_ahrs/.gitignore similarity index 100% rename from examples/imu_ahrs/.gitignore rename to examples/ext_dev_imu_ahrs/.gitignore diff --git a/examples/imu_ahrs/README.md b/examples/ext_dev_imu_ahrs/README.md similarity index 100% rename from examples/imu_ahrs/README.md rename to examples/ext_dev_imu_ahrs/README.md diff --git a/examples/imu_ahrs/app.yaml b/examples/ext_dev_imu_ahrs/app.yaml similarity index 100% rename from examples/imu_ahrs/app.yaml rename to examples/ext_dev_imu_ahrs/app.yaml diff --git a/examples/imu_ahrs/main/CMakeLists.txt b/examples/ext_dev_imu_ahrs/main/CMakeLists.txt similarity index 100% rename from examples/imu_ahrs/main/CMakeLists.txt rename to examples/ext_dev_imu_ahrs/main/CMakeLists.txt diff --git a/examples/maix_fp5510/main/Kconfig b/examples/ext_dev_imu_ahrs/main/Kconfig similarity index 100% rename from examples/maix_fp5510/main/Kconfig rename to examples/ext_dev_imu_ahrs/main/Kconfig diff --git a/examples/maix_fp5510/main/include/main.h b/examples/ext_dev_imu_ahrs/main/include/main.h similarity index 100% rename from examples/maix_fp5510/main/include/main.h rename to examples/ext_dev_imu_ahrs/main/include/main.h diff --git a/examples/imu_ahrs/main/src/main.cpp b/examples/ext_dev_imu_ahrs/main/src/main.cpp similarity index 95% rename from examples/imu_ahrs/main/src/main.cpp rename to examples/ext_dev_imu_ahrs/main/src/main.cpp index 1320350c..71825c16 100644 --- a/examples/imu_ahrs/main/src/main.cpp +++ b/examples/ext_dev_imu_ahrs/main/src/main.cpp @@ -151,21 +151,30 @@ int _main(int argc, char* argv[]) std::vector ret_btn_disp_pos = {0, disp.height() - 50, 100, 50}; std::vector dir_btn_disp_pos = {disp.width() / 2 - dir_font_size.width() / 2 - 10, disp.height() - 50, dir_font_size.width() + 20 , 50}; - imu::IMU imu("qmi8658"); + imu::IMU *imu = nullptr; + try + { + imu = new imu::IMU("default"); + } + catch(...) + { + log::error("init IMU failed"); + return 1; + } ahrs::MahonyAHRS ahrs(kp, ki); if(calibrate == 1) { log::info("now calibrate, please don't move device"); - imu.calib_gyro(10000); + imu->calib_gyro(10000); } else { - imu.load_calib_gyro(); + imu->load_calib_gyro(); } char temp_char[64]; double last_time = time::ticks_s(); while (!app::need_exit()) { - auto data = imu.read_all(true, true); // use calibrate value and unit rad/s. + auto data = imu->read_all(true, true); // use calibrate value and unit rad/s. double t = time::ticks_s(); float dt = t - last_time; auto angle = ahrs.get_angle(data.acc, data.gyro, data.mag, dt); @@ -224,7 +233,7 @@ int _main(int argc, char* argv[]) log::info("now calibrate, please don't move device"); std::string msg = "Calibrating, don't move, keep 10s"; show_msg(disp, msg); - imu.calib_gyro(10000); + imu->calib_gyro(10000); ahrs.reset(); last_time = time::ticks_s(); } @@ -236,6 +245,7 @@ int _main(int argc, char* argv[]) while(time::ticks_s() - last_time < 0.001) time::sleep_us(100); } + delete imu; return 0; } diff --git a/examples/maix_imu/.gitignore b/examples/ext_dev_imu_qmi8658/.gitignore similarity index 100% rename from examples/maix_imu/.gitignore rename to examples/ext_dev_imu_qmi8658/.gitignore diff --git a/examples/maix_imu/README.md b/examples/ext_dev_imu_qmi8658/README.md similarity index 100% rename from examples/maix_imu/README.md rename to examples/ext_dev_imu_qmi8658/README.md diff --git a/examples/maix_qmi8658/app.yaml b/examples/ext_dev_imu_qmi8658/app.yaml similarity index 100% rename from examples/maix_qmi8658/app.yaml rename to examples/ext_dev_imu_qmi8658/app.yaml diff --git a/examples/maix_bm8563/main/CMakeLists.txt b/examples/ext_dev_imu_qmi8658/main/CMakeLists.txt similarity index 100% rename from examples/maix_bm8563/main/CMakeLists.txt rename to examples/ext_dev_imu_qmi8658/main/CMakeLists.txt diff --git a/examples/maix_imu/main/Kconfig b/examples/ext_dev_imu_qmi8658/main/Kconfig similarity index 100% rename from examples/maix_imu/main/Kconfig rename to examples/ext_dev_imu_qmi8658/main/Kconfig diff --git a/examples/maix_imu/main/include/main.h b/examples/ext_dev_imu_qmi8658/main/include/main.h similarity index 100% rename from examples/maix_imu/main/include/main.h rename to examples/ext_dev_imu_qmi8658/main/include/main.h diff --git a/examples/maix_qmi8658/main/src/main.cpp b/examples/ext_dev_imu_qmi8658/main/src/main.cpp similarity index 100% rename from examples/maix_qmi8658/main/src/main.cpp rename to examples/ext_dev_imu_qmi8658/main/src/main.cpp diff --git a/examples/maix_modbus/.gitignore b/examples/ext_dev_imu_read_raw/.gitignore similarity index 100% rename from examples/maix_modbus/.gitignore rename to examples/ext_dev_imu_read_raw/.gitignore diff --git a/examples/maix_qmi8658/README.md b/examples/ext_dev_imu_read_raw/README.md similarity index 100% rename from examples/maix_qmi8658/README.md rename to examples/ext_dev_imu_read_raw/README.md diff --git a/examples/maix_imu/app.yaml b/examples/ext_dev_imu_read_raw/app.yaml similarity index 100% rename from examples/maix_imu/app.yaml rename to examples/ext_dev_imu_read_raw/app.yaml diff --git a/examples/maix_fp5510/main/CMakeLists.txt b/examples/ext_dev_imu_read_raw/main/CMakeLists.txt similarity index 100% rename from examples/maix_fp5510/main/CMakeLists.txt rename to examples/ext_dev_imu_read_raw/main/CMakeLists.txt diff --git a/examples/maix_modbus/main/Kconfig b/examples/ext_dev_imu_read_raw/main/Kconfig similarity index 100% rename from examples/maix_modbus/main/Kconfig rename to examples/ext_dev_imu_read_raw/main/Kconfig diff --git a/examples/maix_modbus/main/include/main.h b/examples/ext_dev_imu_read_raw/main/include/main.h similarity index 100% rename from examples/maix_modbus/main/include/main.h rename to examples/ext_dev_imu_read_raw/main/include/main.h diff --git a/examples/maix_imu/main/src/main.cpp b/examples/ext_dev_imu_read_raw/main/src/main.cpp similarity index 100% rename from examples/maix_imu/main/src/main.cpp rename to examples/ext_dev_imu_read_raw/main/src/main.cpp diff --git a/examples/maix_modbus_loopback/.gitignore b/examples/ext_dev_motor_fp5510/.gitignore similarity index 100% rename from examples/maix_modbus_loopback/.gitignore rename to examples/ext_dev_motor_fp5510/.gitignore diff --git a/examples/maix_fp5510/README.md b/examples/ext_dev_motor_fp5510/README.md similarity index 100% rename from examples/maix_fp5510/README.md rename to examples/ext_dev_motor_fp5510/README.md diff --git a/examples/maix_fp5510/app.yaml b/examples/ext_dev_motor_fp5510/app.yaml similarity index 100% rename from examples/maix_fp5510/app.yaml rename to examples/ext_dev_motor_fp5510/app.yaml diff --git a/examples/maix_imu/main/CMakeLists.txt b/examples/ext_dev_motor_fp5510/main/CMakeLists.txt similarity index 100% rename from examples/maix_imu/main/CMakeLists.txt rename to examples/ext_dev_motor_fp5510/main/CMakeLists.txt diff --git a/examples/maix_modbus_loopback/main/Kconfig b/examples/ext_dev_motor_fp5510/main/Kconfig similarity index 100% rename from examples/maix_modbus_loopback/main/Kconfig rename to examples/ext_dev_motor_fp5510/main/Kconfig diff --git a/examples/maix_modbus_loopback/main/include/main.h b/examples/ext_dev_motor_fp5510/main/include/main.h similarity index 100% rename from examples/maix_modbus_loopback/main/include/main.h rename to examples/ext_dev_motor_fp5510/main/include/main.h diff --git a/examples/maix_fp5510/main/src/main.cpp b/examples/ext_dev_motor_fp5510/main/src/main.cpp similarity index 100% rename from examples/maix_fp5510/main/src/main.cpp rename to examples/ext_dev_motor_fp5510/main/src/main.cpp diff --git a/examples/maix_ntp/.gitignore b/examples/ext_dev_motor_tmc2209/.gitignore similarity index 100% rename from examples/maix_ntp/.gitignore rename to examples/ext_dev_motor_tmc2209/.gitignore diff --git a/examples/maix_tmc2209/README.md b/examples/ext_dev_motor_tmc2209/README.md similarity index 100% rename from examples/maix_tmc2209/README.md rename to examples/ext_dev_motor_tmc2209/README.md diff --git a/examples/maix_tmc2209/app.yaml b/examples/ext_dev_motor_tmc2209/app.yaml similarity index 100% rename from examples/maix_tmc2209/app.yaml rename to examples/ext_dev_motor_tmc2209/app.yaml diff --git a/examples/maix_ntp/main/CMakeLists.txt b/examples/ext_dev_motor_tmc2209/main/CMakeLists.txt similarity index 100% rename from examples/maix_ntp/main/CMakeLists.txt rename to examples/ext_dev_motor_tmc2209/main/CMakeLists.txt diff --git a/examples/maix_ntp/main/Kconfig b/examples/ext_dev_motor_tmc2209/main/Kconfig similarity index 100% rename from examples/maix_ntp/main/Kconfig rename to examples/ext_dev_motor_tmc2209/main/Kconfig diff --git a/examples/maix_ntp/main/include/main.h b/examples/ext_dev_motor_tmc2209/main/include/main.h similarity index 100% rename from examples/maix_ntp/main/include/main.h rename to examples/ext_dev_motor_tmc2209/main/include/main.h diff --git a/examples/maix_tmc2209/main/src/main.cpp b/examples/ext_dev_motor_tmc2209/main/src/main.cpp similarity index 100% rename from examples/maix_tmc2209/main/src/main.cpp rename to examples/ext_dev_motor_tmc2209/main/src/main.cpp diff --git a/examples/maix_pmu/.gitignore b/examples/ext_dev_motor_tmc2209_2axis_scan/.gitignore similarity index 100% rename from examples/maix_pmu/.gitignore rename to examples/ext_dev_motor_tmc2209_2axis_scan/.gitignore diff --git a/examples/maix_tmc2209_2axis_scan/README.md b/examples/ext_dev_motor_tmc2209_2axis_scan/README.md similarity index 100% rename from examples/maix_tmc2209_2axis_scan/README.md rename to examples/ext_dev_motor_tmc2209_2axis_scan/README.md diff --git a/examples/maix_tmc2209_2axis_scan/app.yaml b/examples/ext_dev_motor_tmc2209_2axis_scan/app.yaml similarity index 100% rename from examples/maix_tmc2209_2axis_scan/app.yaml rename to examples/ext_dev_motor_tmc2209_2axis_scan/app.yaml diff --git a/examples/maix_tmc2209_2axis_scan/main/CMakeLists.txt b/examples/ext_dev_motor_tmc2209_2axis_scan/main/CMakeLists.txt similarity index 100% rename from examples/maix_tmc2209_2axis_scan/main/CMakeLists.txt rename to examples/ext_dev_motor_tmc2209_2axis_scan/main/CMakeLists.txt diff --git a/examples/maix_pmu/main/Kconfig b/examples/ext_dev_motor_tmc2209_2axis_scan/main/Kconfig similarity index 100% rename from examples/maix_pmu/main/Kconfig rename to examples/ext_dev_motor_tmc2209_2axis_scan/main/Kconfig diff --git a/examples/maix_pmu/main/include/main.h b/examples/ext_dev_motor_tmc2209_2axis_scan/main/include/main.h similarity index 100% rename from examples/maix_pmu/main/include/main.h rename to examples/ext_dev_motor_tmc2209_2axis_scan/main/include/main.h diff --git a/examples/maix_tmc2209_2axis_scan/main/src/main.cpp b/examples/ext_dev_motor_tmc2209_2axis_scan/main/src/main.cpp similarity index 100% rename from examples/maix_tmc2209_2axis_scan/main/src/main.cpp rename to examples/ext_dev_motor_tmc2209_2axis_scan/main/src/main.cpp diff --git a/examples/maix_qmi8658/.gitignore b/examples/ext_dev_pmu/.gitignore similarity index 100% rename from examples/maix_qmi8658/.gitignore rename to examples/ext_dev_pmu/.gitignore diff --git a/examples/maix_pmu/README.md b/examples/ext_dev_pmu/README.md similarity index 100% rename from examples/maix_pmu/README.md rename to examples/ext_dev_pmu/README.md diff --git a/examples/maix_pmu/app.yaml b/examples/ext_dev_pmu/app.yaml similarity index 100% rename from examples/maix_pmu/app.yaml rename to examples/ext_dev_pmu/app.yaml diff --git a/examples/maix_pmu/main/CMakeLists.txt b/examples/ext_dev_pmu/main/CMakeLists.txt similarity index 100% rename from examples/maix_pmu/main/CMakeLists.txt rename to examples/ext_dev_pmu/main/CMakeLists.txt diff --git a/examples/maix_qmi8658/main/Kconfig b/examples/ext_dev_pmu/main/Kconfig similarity index 100% rename from examples/maix_qmi8658/main/Kconfig rename to examples/ext_dev_pmu/main/Kconfig diff --git a/examples/maix_qmi8658/main/include/main.h b/examples/ext_dev_pmu/main/include/main.h similarity index 100% rename from examples/maix_qmi8658/main/include/main.h rename to examples/ext_dev_pmu/main/include/main.h diff --git a/examples/maix_pmu/main/src/main.cpp b/examples/ext_dev_pmu/main/src/main.cpp similarity index 100% rename from examples/maix_pmu/main/src/main.cpp rename to examples/ext_dev_pmu/main/src/main.cpp diff --git a/examples/maix_tmc2209/.gitignore b/examples/ext_dev_rtc_bm8563/.gitignore similarity index 100% rename from examples/maix_tmc2209/.gitignore rename to examples/ext_dev_rtc_bm8563/.gitignore diff --git a/examples/maix_bm8563/README.md b/examples/ext_dev_rtc_bm8563/README.md similarity index 100% rename from examples/maix_bm8563/README.md rename to examples/ext_dev_rtc_bm8563/README.md diff --git a/examples/maix_bm8563/app.yaml b/examples/ext_dev_rtc_bm8563/app.yaml similarity index 100% rename from examples/maix_bm8563/app.yaml rename to examples/ext_dev_rtc_bm8563/app.yaml diff --git a/examples/maix_qmi8658/main/CMakeLists.txt b/examples/ext_dev_rtc_bm8563/main/CMakeLists.txt similarity index 100% rename from examples/maix_qmi8658/main/CMakeLists.txt rename to examples/ext_dev_rtc_bm8563/main/CMakeLists.txt diff --git a/examples/maix_tmc2209/main/Kconfig b/examples/ext_dev_rtc_bm8563/main/Kconfig similarity index 100% rename from examples/maix_tmc2209/main/Kconfig rename to examples/ext_dev_rtc_bm8563/main/Kconfig diff --git a/examples/maix_tmc2209/main/include/main.h b/examples/ext_dev_rtc_bm8563/main/include/main.h similarity index 100% rename from examples/maix_tmc2209/main/include/main.h rename to examples/ext_dev_rtc_bm8563/main/include/main.h diff --git a/examples/maix_bm8563/main/src/main.cpp b/examples/ext_dev_rtc_bm8563/main/src/main.cpp similarity index 100% rename from examples/maix_bm8563/main/src/main.cpp rename to examples/ext_dev_rtc_bm8563/main/src/main.cpp diff --git a/examples/maix_tmc2209_2axis_scan/.gitignore b/examples/ext_dev_thermal_mlx90640/.gitignore similarity index 100% rename from examples/maix_tmc2209_2axis_scan/.gitignore rename to examples/ext_dev_thermal_mlx90640/.gitignore diff --git a/examples/mlx90640/README.md b/examples/ext_dev_thermal_mlx90640/README.md similarity index 100% rename from examples/mlx90640/README.md rename to examples/ext_dev_thermal_mlx90640/README.md diff --git a/examples/mlx90640/app.yaml b/examples/ext_dev_thermal_mlx90640/app.yaml similarity index 100% rename from examples/mlx90640/app.yaml rename to examples/ext_dev_thermal_mlx90640/app.yaml diff --git a/examples/mlx90640/main/CMakeLists.txt b/examples/ext_dev_thermal_mlx90640/main/CMakeLists.txt similarity index 100% rename from examples/mlx90640/main/CMakeLists.txt rename to examples/ext_dev_thermal_mlx90640/main/CMakeLists.txt diff --git a/examples/maix_tmc2209_2axis_scan/main/Kconfig b/examples/ext_dev_thermal_mlx90640/main/Kconfig similarity index 100% rename from examples/maix_tmc2209_2axis_scan/main/Kconfig rename to examples/ext_dev_thermal_mlx90640/main/Kconfig diff --git a/examples/maix_tmc2209_2axis_scan/main/include/main.h b/examples/ext_dev_thermal_mlx90640/main/include/main.h similarity index 100% rename from examples/maix_tmc2209_2axis_scan/main/include/main.h rename to examples/ext_dev_thermal_mlx90640/main/include/main.h diff --git a/examples/mlx90640/main/src/main.cpp b/examples/ext_dev_thermal_mlx90640/main/src/main.cpp similarity index 100% rename from examples/mlx90640/main/src/main.cpp rename to examples/ext_dev_thermal_mlx90640/main/src/main.cpp diff --git a/examples/maix_tof100/.gitignore b/examples/ext_dev_tof_tof100/.gitignore similarity index 100% rename from examples/maix_tof100/.gitignore rename to examples/ext_dev_tof_tof100/.gitignore diff --git a/examples/maix_tof100/README.md b/examples/ext_dev_tof_tof100/README.md similarity index 100% rename from examples/maix_tof100/README.md rename to examples/ext_dev_tof_tof100/README.md diff --git a/examples/maix_tof100/app.yaml b/examples/ext_dev_tof_tof100/app.yaml similarity index 100% rename from examples/maix_tof100/app.yaml rename to examples/ext_dev_tof_tof100/app.yaml diff --git a/examples/maix_tof100/main/CMakeLists.txt b/examples/ext_dev_tof_tof100/main/CMakeLists.txt similarity index 100% rename from examples/maix_tof100/main/CMakeLists.txt rename to examples/ext_dev_tof_tof100/main/CMakeLists.txt diff --git a/examples/maix_tof100/main/Kconfig b/examples/ext_dev_tof_tof100/main/Kconfig similarity index 100% rename from examples/maix_tof100/main/Kconfig rename to examples/ext_dev_tof_tof100/main/Kconfig diff --git a/examples/maix_tof100/main/include/main.h b/examples/ext_dev_tof_tof100/main/include/main.h similarity index 100% rename from examples/maix_tof100/main/include/main.h rename to examples/ext_dev_tof_tof100/main/include/main.h diff --git a/examples/maix_tof100/main/src/main.cpp b/examples/ext_dev_tof_tof100/main/src/main.cpp similarity index 100% rename from examples/maix_tof100/main/src/main.cpp rename to examples/ext_dev_tof_tof100/main/src/main.cpp diff --git a/examples/mlx90640/.gitignore b/examples/time_ntp/.gitignore similarity index 100% rename from examples/mlx90640/.gitignore rename to examples/time_ntp/.gitignore diff --git a/examples/maix_ntp/README.md b/examples/time_ntp/README.md similarity index 100% rename from examples/maix_ntp/README.md rename to examples/time_ntp/README.md diff --git a/examples/maix_ntp/app.yaml b/examples/time_ntp/app.yaml similarity index 100% rename from examples/maix_ntp/app.yaml rename to examples/time_ntp/app.yaml diff --git a/examples/maix_tmc2209/main/CMakeLists.txt b/examples/time_ntp/main/CMakeLists.txt similarity index 100% rename from examples/maix_tmc2209/main/CMakeLists.txt rename to examples/time_ntp/main/CMakeLists.txt diff --git a/examples/mlx90640/main/Kconfig b/examples/time_ntp/main/Kconfig similarity index 100% rename from examples/mlx90640/main/Kconfig rename to examples/time_ntp/main/Kconfig diff --git a/examples/mlx90640/main/include/main.h b/examples/time_ntp/main/include/main.h similarity index 100% rename from examples/mlx90640/main/include/main.h rename to examples/time_ntp/main/include/main.h diff --git a/examples/maix_ntp/main/src/main.cpp b/examples/time_ntp/main/src/main.cpp similarity index 100% rename from examples/maix_ntp/main/src/main.cpp rename to examples/time_ntp/main/src/main.cpp