目录
SimpleFOC教程目录:请点击
说明
本文教程适配SimpleFOCShield和ESP32drive-D两款驱动器。
一、硬件介绍
1.1、原理图
- ESP32drive-D的M1有三个使能引脚,与PowerShield V0.2大功率驱动板的控制方式一致,
- SimpleFOCShield只需一个使能引脚,在本文中定义为IO32,本文的演示代码以SimpleFOCShield为例,
- SPI和I2C2的引脚有复用,所以不能同时使用。

1.2、ESP32drive-D方案
- ESP32drive-D的两边采用非对称电路,M1为3个使能引脚独立模式,与PowerShield V0.2 的控制方式一致,M2的使能引脚并联,与SimpleFOCShield V2.0.4 保持一致。这样设计可以实现功能最大化,调试时注意这个区别!

1.2.1、准备清单
| 序号 | 名称 | 数量 |
|---|---|---|
| 1 | USB转串口 | 1 |
| 2 | ESP32drive-D | 1 |
| 3 | 带编码器电机 | 2 |
| 4 | 12V电源 | 1 |
| 5 | 杜邦线 | 若干 |

ESP32drive 购买链接:https://item.taobao.com/item.htm?ft=t&id=662591519566,图锐科技
电机 购买链接:https://item.taobao.com/item.htm?ft=t&id=643573104607,图锐科技
1.2.2、硬件连接

1.3、SimpleFOCShield方案
1.3.1、SimpleFOCShield原理图及跳线
电流采样需要PWM输出与采样输入引脚对应,所以必须了解SimpleFOCShield的原理图,




1.3.2、硬件清单
| 序号 | 名称 | 数量 |
|---|---|---|
| 1 | ESP32-DevKitC | 1 |
| 2 | simpleFOCShield | 2 |
| 3 | 云台电机 | 2 |
| 4 | USB线 | 1 |
| 5 | 12V电源 | 1 |
| 6 | 杜邦线 | 若干 |

ESP32drive 购买链接:https://item.taobao.com/item.htm?ft=t&id=662591519566,图锐科技
电机 购买链接:https://item.taobao.com/item.htm?ft=t&id=643573104607,图锐科技
1.3.3、硬件连接
两块SimpleFOCShield堆叠
| ESP32-DevKitC | SimpleFOCShield |
|---|---|
| 33 | 5 |
| 26 | 9 |
| 14 | 6 |
| 32 | 8 |
| 35 | A0 |
| 34 | A2 |
| 16 | 3 |
| 17 | 10 |
| 5 | 11 |
| 4 | 7 |
| 39/VN | A1 |
| 36/VP | A3 |
| 3V3 | VCC |
| GND | GND |
如果是AS5600编码器,如下
| ESP32-DevKitC | AS5600电机1 |
|---|---|
| 21 | SDA1 |
| 22 | SCL1 |
| 3V3 | VCC |
| GND | GND |
| ESP32-DevKitC | AS5600电机2 |
|---|---|
| 18 | SDA2 |
| 19 | SCL2 |
| 3V3 | VCC |
| GND | GND |


如果是AS5047P编码器,如下
| ESP32-DevKitC | AS5047P电机 |
|---|---|
| 23 | MOSI |
| 19 | MISO |
| 18 | SCLK |
| 13 | SS |
| GND | GND |
| 3V3 | VCC |
二、代码演示 — 双I2C接口
双电机控制的难点在于两个I2C的配置,所以演示双电机驱动前,先把双I2C的接口调试通过。
2.1、打开官方示例

2.2、编译报错
升级后的simpleFOC库已经修改了这些错误,请勿纠结。20220520

2.3、查找错误原因
- 2.3.1、ESP32有2个I2C接口,

- 2.3.2、I2C接口可以配置到任意引脚,

- 2.3.3、定义其它引脚的函数如下,

可以用setPins()和setClock()函数代替begin()函数。
- 2.3.4、驱动中已经声明了两个I2C的结构体:Wire和Wire1,

2.4、修改代码

2.5、验证测试
接两个编码器测试读取的角度。
三、代码演示 — 双电机驱动
3.1、速度模式
3.1.1、打开示例

3.1.2、修改代码



3.1.3、验证上传

3.1.4、串口发送指令

速度模式,单位rad/s,
控制A电机,发送“A6.28”,表示6.28rad/s,也就是1圈/秒,
控制B电机,发送“B20”,
3.1.5、观察电机运行
3.2、其它模式
双电机控制还可以力矩模式和角度模式,或者混合模式,只需修改控制模式和对应的PID即可,不再赘述。
(完)
请继续阅读相关文章:
SimpleFOC之ESP32(一)—— 搭建开发环境
SimpleFOC之ESP32(二)—— 开环控制
SimpleFOC之ESP32(三)—— 闭环控制
SimpleFOC之ESP32(四)—— 电流闭环控制Inline
SimpleFOC之ESP32(五)—— 电流闭环控制Lowside
SimpleFOC之ESP32(六)—— 双电机控制
SimpleFOC之ESP32(七)—— 霍尔电机
SimpleFOC之ESP32(八)—— ABZ编码器电机
SimpleFOC之ESP32(九)—— WIFI、UDP和TCP
SimpleFOC之ESP32(十)—— ESP-NOW和力矩反馈
本文详细介绍使用ESP32结合SimpleFOCShield进行双电机控制的方法,包括硬件连接指南、双I2C接口调试及双电机的速度模式控制等。
2010

被折叠的 条评论
为什么被折叠?



