SimpleFOC之ESP32(六)—— 双电机控制

目录

  • 说明
  • 一、硬件介绍
    • 1.1、原理图
    • 1.2、ESP32drive-D方案
      • 1.2.1、准备清单
      • 1.2.2、硬件连接
    • 1.3、SimpleFOCShield方案
      • 1.3.1、SimpleFOCShield原理图及跳线
      • 1.3.2、硬件清单
      • 1.3.3、硬件连接
  • 二、代码演示 — 双I2C接口
    • 2.1、打开官方示例
    • 2.2、编译报错
    • 2.3、查找错误原因
    • 2.4、修改代码
    • 2.5、验证测试
  • 三、代码演示 — 双电机驱动
    • 3.1、速度模式
    • 3.2、其它模式


SimpleFOC教程目录:请点击

说明

本文教程适配SimpleFOCShield和ESP32drive-D两款驱动器。

一、硬件介绍

1.1、原理图

  • ESP32drive-D的M1有三个使能引脚,与PowerShield V0.2大功率驱动板的控制方式一致,
  • SimpleFOCShield只需一个使能引脚,在本文中定义为IO32,本文的演示代码以SimpleFOCShield为例,
  • SPI和I2C2的引脚有复用,所以不能同时使用。
    SimpleFOC之ESP32(六)—— 双电机控制_第1张图片

1.2、ESP32drive-D方案

  • ESP32drive-D的两边采用非对称电路,M1为3个使能引脚独立模式,与PowerShield V0.2 的控制方式一致,M2的使能引脚并联,与SimpleFOCShield V2.0.4 保持一致。这样设计可以实现功能最大化,调试时注意这个区别!
    SimpleFOC之ESP32(六)—— 双电机控制_第2张图片

1.2.1、准备清单

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


电机 购买链接:某宝购买
ESP32drive 购买链接:某宝购买

1.2.2、硬件连接


1.3、SimpleFOCShield方案

1.3.1、SimpleFOCShield原理图及跳线

电流采样需要PWM输出与采样输入引脚对应,所以必须了解SimpleFOCShield的原理图,
SimpleFOC之ESP32(六)—— 双电机控制_第3张图片
SimpleFOC之ESP32(六)—— 双电机控制_第4张图片
SimpleFOC之ESP32(六)—— 双电机控制_第5张图片
SimpleFOC之ESP32(六)—— 双电机控制_第6张图片

1.3.2、硬件清单

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


SimpleFOCShield 购买链接:某宝购买
电机 购买链接:某宝购买

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

SimpleFOC之ESP32(六)—— 双电机控制_第7张图片

SimpleFOC之ESP32(六)—— 双电机控制_第8张图片
如果是AS5047P编码器,如下

ESP32-DevKitC AS5047P电机
23 MOSI
19 MISO
18 SCLK
13 SS
GND GND
3V3 VCC

二、代码演示 — 双I2C接口

双电机控制的难点在于两个I2C的配置,所以演示双电机驱动前,先把双I2C的接口调试通过。

2.1、打开官方示例

SimpleFOC之ESP32(六)—— 双电机控制_第9张图片

2.2、编译报错

SimpleFOC之ESP32(六)—— 双电机控制_第10张图片

2.3、查找错误原因

  • 2.3.1、ESP32有2个I2C接口,
    SimpleFOC之ESP32(六)—— 双电机控制_第11张图片
  • 2.3.2、I2C接口可以配置到任意引脚,
    SimpleFOC之ESP32(六)—— 双电机控制_第12张图片
  • 2.3.3、定义其它引脚的函数如下,
    SimpleFOC之ESP32(六)—— 双电机控制_第13张图片
    可以用setPins()和setClock()函数代替begin()函数。
  • 2.3.4、驱动中已经声明了两个I2C的结构体:Wire和Wire1,
    SimpleFOC之ESP32(六)—— 双电机控制_第14张图片

2.4、修改代码

SimpleFOC之ESP32(六)—— 双电机控制_第15张图片

2.5、验证测试

接两个编码器测试读取的角度。

三、代码演示 — 双电机驱动

3.1、速度模式

3.1.1、打开示例
SimpleFOC之ESP32(六)—— 双电机控制_第16张图片

3.1.2、修改代码
SimpleFOC之ESP32(六)—— 双电机控制_第17张图片
SimpleFOC之ESP32(六)—— 双电机控制_第18张图片
SimpleFOC之ESP32(六)—— 双电机控制_第19张图片

3.1.3、验证上传
SimpleFOC之ESP32(六)—— 双电机控制_第20张图片

3.1.4、串口发送指令
SimpleFOC之ESP32(六)—— 双电机控制_第21张图片
速度模式,单位rad/s,
控制A电机,发送“A6.28”,表示6.28rad/s,也就是1圈/秒,
控制B电机,发送“B20”,

3.1.5、观察电机运行

3.2、其它模式

  双电机控制还可以力矩模式和角度模式,或者混合模式,只需修改控制模式和对应的PID即可,不再赘述。


(完)


欢迎加入simpleFOC技术交流群:923734429 群已满根据提示添加新群 (入群申请写:CSDN)


请继续阅读相关文章:
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和力矩反馈

你可能感兴趣的:(simpleFOC,SimpleFOC,ESP32,电机驱动)