笔记:ESP32驱动SimpleFOC成功(基于Espressif-IDE)

参考:

  1. EPS SimpleFOC项目: link
  2. 乐鑫官方视频教程: link

型号配置:

控制板:ESP32

驱动板:SimpleFOC V2.0.3

电机:咸鱼买的2804电机,极对数7,编码器AS5600。link

IDE:Espressif-IDE,3.1.0

ESP-IDE:5.3.1

流程:

硬件部分

为了可靠连接,控制板和驱动板通过洞洞板焊接连接。由于驱动板是适配Arduino的,引脚布局十分奇葩,无法跟洞洞板对齐,需要拆掉右上引脚。又因为驱动板公针又软又薄,无法跟插座可靠连接,故将驱动板其余引脚全部拆掉,换上结实的插针。将驱动芯片IN2脚与插座pin4口连接。

硬件完成图如下:

软件部分

硬件完成后,编写ESP32控制程序。此步参考视频教程,主要步骤如下:

  1. 新建一个空白的sample_project。
  2. 打开命令行(见下图)。
  3. 命令行输入:idf.py add-dependency "espressif/esp_simplefoc^1.2.3"。此步会在main文件夹下创建一个idf_component.yml配置文件。
  4. 修改main.c为main.cpp,修改CMakeLists.txt。
  5. 修改sdkconfig,将TICK_RATE_HZ改为1000。
  6. 执行编译,会将依附程序下载到managed_components文件夹。

此时,编译会报错,因为esp_simplefoc 与 i2c_bus 两个组件版本不兼容:在 ESP-IDF v5.2 及更高版本中,I2C 驱动从旧版 driver/i2c.h 迁移到了新版 driver/i2c_master.h。旧版中使用的 i2c_master_get_bus_handle() 函数在新版驱动中已被移除。

修正方法为将i2c_bus_v2.c中104行到114行,即下述代码,注释掉。

复制代码
/*if (i2c_master_get_bus_handle(port, &s_i2c_bus[port].bus_handle) == ESP_OK) {
        s_i2c_bus[port].is_init = true;
        s_i2c_bus[port].conf_activate = *conf;
        s_i2c_bus[port].bus_config.i2c_port = port;
        s_i2c_bus[port].device_config.scl_speed_hz = conf->master.clk_speed;
        s_i2c_bus[port].mutex = xSemaphoreCreateMutex();
        I2C_BUS_CHECK(s_i2c_bus[port].mutex != NULL, "i2c_bus xSemaphoreCreateMutex failed", NULL);
        s_i2c_bus[port].ref_counter = 0;
        ESP_LOGI(TAG, "I2C Bus V2 uses the externally initialized bus handle");
        return (i2c_bus_handle_t)&s_i2c_bus[port];
    }*/
  1. 编译完成后,按视频内容修改main.cpp内容,修改引脚定义与电机极对数(见下图),再次编译。连接硬件,正常执行,输出见下图:
相关推荐
searchforAI14 小时前
5款AI笔记工具实测:导入体验、结构化输出、后续能力逐项对比
人工智能·笔记·学习·ai·chatgpt·aigc·音视频
XGeFei14 小时前
【Fastapi学习笔记(1)】—— Pydantic模型、依赖注入、请求头-Cookie、响应头
笔记·学习·fastapi
早日退休!!!14 小时前
《烧掉数学书:重新发明数学》笔记提炼
笔记
智者知已应修善业14 小时前
【51单片机第5和6位数码管显示0-99自动计数】2023-11-29
c++·经验分享·笔记·算法·51单片机
Kay_Liang14 小时前
VirtualBox NAT 网络实现三台虚拟机互联踩坑实录
网络·windows·笔记·ubuntu·网络安全
爱码小白14 小时前
离散数学之学习笔记
笔记·学习
sheeta199815 小时前
LeetCode 每日一题笔记 日期:2026.05.22 题目:33. 搜索旋转排序数组
笔记·算法·leetcode
魔都大虾15 小时前
异地恋别称是什么 还有哪些说法
笔记
ljt272496066115 小时前
Vue笔记(五)--组件进阶
前端·vue.js·笔记
sheeta199815 小时前
LeetCode 每日一题笔记 日期:2026.05.21 题目:3043. 最长公共前缀的长度
笔记·算法·leetcode