Makerbase SimpleFOC ESP32 例程8 电机旋钮控制测试

Makerbase SimpleFOC ESP32 例程8 电机旋钮控制测试

第一部分 硬件介绍

1.1 硬件清单

序号品名数量
1ESP32 FOC V1.0 主板1
2YT2804电机2
312V电源适配器1
4USB 线1
56pin杜邦线2

注意:YT2804是改装的云台无刷电机,带有AS5600编码器,可实现360°连续运转。
主要参数如下:

序号品名数量
1输入电压12V
2极对数7
3工作电流180mA
4最大转速3840RPM
5编码器分辨率(I2C)接口12bit
6编码器分辨率(Analog)接口1024

硬件清单如下图所示:
在这里插入图片描述

ESP32 FOC V1.0主板说明书等更多资料请加入企鹅群(732557609)下载
在这里插入图片描述

1.2 硬件连接

1.电机的三根相线连接至ESP32 FOC主板
2.连接电机的AS5600编码器至ESP32 FOC主板,端口对应关系如下表
(编码器端口对应关系如下方实物图所示,注意不要接反)
在这里插入图片描述

3.用USB线连接ESP32 FOC主板与PC
4.12V电源适配器连接主板
注意:请不要在上电的情况下进行硬件连接!
在这里插入图片描述

上电后绿色指示灯亮

第二部分 软件配置

2.1 PC系统

Windows 10家庭中文版

2.2软件准备

Arduino 1.8.13
可从官方网站下载
也可从企鹅群(732557609)下载
在这里插入图片描述

2.3 安装Arduino

2.4 安装SimpleFOC library

详情请查看《Makerbase SimpleFOC 第一课 入门配置》
文章链接:https://blog.csdn.net/gjy_skyblue/article/details/115353908
注意:本例程使用的库版本为2.1.1,如果已经下载过其他版本,则需要更换版本。
更换版本的方法请参照往期示例。
文章链接:

第三部分 电机旋钮控制测试

3.1 修改代码

1.检查硬件连接,之后给主板上电。
2.用Arduino打开测试例程代码 8_knob_and_motor。
(例程代码请加入企鹅群下载)
在这里插入图片描述

3.点击工具=>开发板=>ESP32 Arduino=>ESP32 Dev Module。
在这里插入图片描述

4.点击工具=>端口=>COM▢,选择对应的USB端口号。
在这里插入图片描述

5.16行和19行,根据选用电机的极对数修改BLDCMotor()中的值。
在这里插入图片描述
6.34行和37行,根据供电电压修改voltage_power_limit的值
在这里插入图片描述
7.48行至49行,根据供电电压修改voltage_limit的值
在这里插入图片描述
8.51行至52行,根据选用电机修改PID参数以实现更好的效果。(电机出现抖动或转速不稳定的情况,很有可能就是PID参数没调至最佳)
在这里插入图片描述

3.2 编译上传与测试

1.点击左上角的的上传按钮
在这里插入图片描述

等待编译上传
在这里插入图片描述

等待显示上传成功
在这里插入图片描述

2 . 代码上传成功后,电机会进行自动校准。
之后,一个电机将作为一个旋钮,另一个电机会进行旋转。
通过扭动作为旋钮的电机,可以对另一个电机的旋转速度进行控制。

Makerbase ESP32 FOC 例程8 电机旋钮控制测试 到此结束。
请继续关注后续课程。


欢迎加入 创客基地 电机控制企鹅群 讨论电机控制相关问题:732557609
欢迎光临 创客基地 B站 了解技术资料
欢迎光临 创客基地 taobao店 采购产品

<think>好的,我现在需要帮用户找到在ESP32上使用SimpleFOC实现速度闭环控制的示例代码。根据用户提供的引用内容,尤其是引用[3]和引用[4],我应该先查看这些引用是否提到了相关的代码示例。 首先,引用[3]提到电流闭环控制Lowside,并区分了电流采样模式,可能涉及到闭环控制的底层设置。而引用[4]明确提到有Arduino FOC的速度闭环和位置闭环控制的代码案例。用户需要的是ESP32上的示例,所以需要确认这些案例是否适用于ESP32平台。 接下来,我需要检查用户提供的引用内容中的具体信息。引用[4]中的案例可能已经包含在SimpleFOC的官方文档或示例中,但用户可能希望有直接的代码参考。根据引用[1]和[3],可能需要调整接口(如SPI或I2C)以及电机参数,如极对数、电压对齐和PID设置。 另外,用户提到的闭环控制可能需要结合速度环的PID参数配置,参考引用[3]中的电流闭环部分,但速度闭环可能更侧重于速度PID的调整。需要确保用户正确初始化电机和传感器,并正确配置速度环。 最后,我应该总结出步骤,指导用户如何从现有示例修改得到速度闭环控制的代码,并指出参考的引用来源,特别是引用[4]中的示例。同时,生成相关问题帮助用户深入理解。</think>关于在ESP32上实现SimpleFOC速度闭环控制的示例代码,根据引用内容建议如下步骤: 1. **基础代码框架** 可参考引用[4]中提到的Arduino FOC速度闭环控制案例,需将硬件驱动部分调整为ESP32专用接口。例如: ```cpp // 初始化电机与传感器 BLDCMotor motor = BLDCMotor(7); // 极对数设置为7 BLDCDriver3PWM driver = BLDCDriver3PWM(IN1_PIN, IN2_PIN, IN3_PIN); Encoder encoder = Encoder(ENC_A, ENC_B, 1024); ``` 2. **速度环配置** 需在闭环控制代码中加入速度PID调节器: ```cpp motor.PID_velocity.P = 0.2; // 比例系数 motor.PID_velocity.I = 20; // 积分系数 motor.voltage_limit = 12; // 电压限制 motor.controller = MotionControlType::velocity; // 设置为速度控制模式 ``` 3. **ESP32接口适配** 根据引用[1]和引用[3],若使用SPI/I2C接口编码器,需调整引脚定义并校准传感器对齐参数: ```cpp encoder.init(&SPI, CS_PIN); // SPI接口编码器初始化 motor.voltage_sensor_align = 3; // 对齐电压值根据电机特性调整 ``` 完整示例代码可参考引用[4]中"_SimpleFOCESP32(三)—— 闭环控制_"的工程模板,将控制模式从位置环改为速度环,并重新整定PID参数[^1][^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值