VESC操作入门(二)——双轮毂电机控制和CAN通信

用ESP32和VESC搞定双轮小车:手把手教你CAN总线同步控制两个轮毂电机 本文详细介绍了如何利用ESP32微控制器和VESC电调,通过CAN总线实现双轮毂电机的精准同步控制。从硬件选型、VESC配置到CAN通信协议解析,手把手教你构建响应灵敏、运动流畅的智能小车平台,特别适合机器人爱好者和创客实践。 阅读详情
AI摘要

本文介绍如何使用VESC驱动双轮毂电机,重点讲解CAN通信的硬件连接与指令发送,通过ESP32实现双电机同步控制,并分享将VESC用作USB转CAN模块的方法,适用于电机控制系统开发。


 
ODrive、VESC和SimpleFOC 教程链接汇总:请点击
 

一、VESC驱动轮毂电机

1.1、硬件准备

序号名称数量
1VESC41
28寸轮毂电机1
336V电源1
4USB延长线1

在这里插入图片描述

在这里插入图片描述

 

1.2、硬件接线

在这里插入图片描述

VESC 购买链接:https://item.taobao.com/item.htm?ft=t&id=684760394070,图锐科技

 

1.3、校准电机

打开 vesc_tool_3.00 ,这个版本与5.02的固件版本最匹配。
 
在这里插入图片描述
 
在这里插入图片描述
 
在这里插入图片描述
 
在这里插入图片描述
 
校准大概需要1分钟,校准后的参数每次都有误差,不必大惊小怪。
注意 VESC ID 是随机的,CAN通信会使用这个ID,下图:
在这里插入图片描述
 
上一步,点击“OK”后等待5秒钟,切换到如下界面:
点击“Fwd”电机向前转动,点击“Rev”电机向后转动。Finish。
在这里插入图片描述

1.4、设置爬升率和最小速度

 
1.4.1、键盘控制

左右键控制电机以较低的速度正反转动,上下键控制电机以较高的速度正反转。
轮毂电机不能使用上下键控制,大概是设置速度太高电机容易报错。
注意图中的速度单位是ERPM,对于15对极的轮毂电机,1000ERPM = 66.7RPM = 1.1圈/秒。

在这里插入图片描述
 
1.4.2、直接设置目标速度

不用键盘控制,还可以左下角直接设置速度

在这里插入图片描述
 
1.4.3、设置爬升率

没有爬升率的情况下,电机启停都比较突然,体验非常不好。找到爬升率的设置,下图:

在这里插入图片描述

 
找到代码中的爬升率判断,下图:

在这里插入图片描述

 
VESC中会限制电机的最小速度,修改了限制后,虽然可以设置更小的速度,但是电机有抖动,尝试修改了PID,作用不大,电机齿槽效应导致的抖动,PID无能为力。
只是对比键盘控制电机启停非常丝滑,但输入目标速度的方式,启停有时就非常不流畅。
PID应该还可以再优化。

在这里插入图片描述

 

二、CAN通信

2.1、硬件连接

在这里插入图片描述

VESC 购买链接:https://item.taobao.com/item.htm?ft=t&id=684760394070,图锐科技

 

2.2、代码说明

VESC和ODrive的CAN通信类似,都只有简单的指令,大部分操作都需要通过USB事先配置好。
VESC的CAN波特率默认500K,默认使能,接线既可使用,不需要任何配置。
下图代码的枚举可以看出,设置速度的指令是“3”。两外四个状态 “STATUS” 会在上电主动上传,

在这里插入图片描述
 

2.3、发送指令

CAN通信的ID就是校准结束后的VESC ID,下图:
在这里插入图片描述
 
如果没有保存校准结果,还可以在这里查看,下图:
在这里插入图片描述
 
VESC的CAN ID是 “指令+ID” 的格式,下图:
在这里插入图片描述

 

电机反转,发送指令,下图:
在这里插入图片描述

 
上传的4个status含义如下:
没有注明的是我不太确定,留给大家研究。

在这里插入图片描述

 
 

三、双轮毂电机

一个VESC只能接一个电机,所以需要两个VESC,利用CAN总线控制。

3.1、校准第二个电机参数

这个 VESC ID 是1,其它参数与第一个略有误差,请无视。
在这里插入图片描述
 

3.2、硬件连接

can盒的位置需要接入120Ω电阻,vesc1和vesc2可以不接入电阻。
在这里插入图片描述

在这里插入图片描述

VESC 购买链接:https://item.taobao.com/item.htm?ft=t&id=684760394070,图锐科技

 

3.3、CAN总线发送指令

3.3.1、canable发送指令

VESC需要每隔1000ms发送一次指令,而CANable一次只能发送一个指令,所以不能实现两个电机同时转动。

在这里插入图片描述
 

3.3.2、ESP32发送指令

要想让两个电机同时转动,需要在1000ms内连续发送两个指令,手工操作CAN盒的方式肯定达不到。只能通过代码的方式,而能够在最短的时间内实现这个功能的代码,非arduino莫属。
技术细节,请点击这篇文章:ESP32的CAN通信。

在这里插入图片描述

VESC 购买链接:https://item.taobao.com/item.htm?ft=t&id=684760394070,图锐科技

 

在这里插入图片描述
 
在这里插入图片描述

 

四、把VESC做为USB转CAN模块

这是研究VESC的CAN通信时的意外收获,

在这里插入图片描述

 
在这里插入图片描述
VESC3需要接入120Ω电阻,VESC1和VESC2可以不用,

在这里插入图片描述

VESC 购买链接:https://item.taobao.com/item.htm?ft=t&id=684760394070,图锐科技

这样接的问题是一次只能发送一个指令,与CANable的功能和毛病完全一样。
 
 
 
(完)
 

VESC电调使用教程入门篇 本文介绍了VESC电调的基本调参校准方法,主要内容包括:1. 设备清单(电脑、电调、电机、遥控器等);2. 电机校准步骤,通过VESCTOOL工具自动完成;3. 遥控器油门校准方法;4. 电动车加速手柄设置步骤;5. 工具下载地址。教程详细说明了连接设备和参数设置的操作流程,帮助用户快速实现电机控制,适用于滑板车、无人机等应用场景。 阅读详情

相关推荐

【VESC】一.配置开发环境、烧录固件

一.介绍 VESC是一个开源的无刷电机驱动器,由工程师本杰明研发,最初应用于电动滑板,但是由于其出色的性能,也渐渐在其他领域得到了应用。 由于VESC的固件是基于电动滑板这个应用场景开发的,所以如果我们想将其应用在其他领域,就需要对其源码进行二次开发,修改通讯协议或增添自定义的功能。本文章分别介绍了如何在Ubuntu和Windows下搭建开发环境和烧录固件。 二.Ubuntu平台 1.说明 系统:Ubuntu-16.04 若使用Ubuntu-20.04,则安装编译工具链时会比较麻烦,具体可参考这个提问

Qrpucp的博客 1万+

著名本杰明电调源代码(VESC)

这个是著名得国外开源本杰明电调得源代码,硬件平台是基于stm32f405rgt6芯片,软件基于chibios系统,源代码中实现了bldc,直流电机的控制,其中bldc得控制包含了有感和无感,方波和正弦波的控制算法,是学习开发大电流高功率电驱的很好参考资料

用ESP32和VESC搞定双轮小车底盘:手把手教你CAN总线同步控制两个轮毂电机

本文详细介绍了如何利用ESP32和VESC实现双轮小车底盘的高精度控制,通过CAN总线同步控制两个轮毂电机。从硬件选型、系统架构设计到VESC电机参数配置和ESP32 CAN通信框架实现,提供了完整的实战指南,帮助开发者解决双轮差速底盘控制中的常见问题,提升机器人运动的精准度和稳定性。

weixin_30336061的博客 626

VESC操作入门(一)——控制霍尔电机、无感电机和AS5047P

VESC操作入门,控制霍尔电机、无感电机和AS5047P

loop222的博客 2万+

用ESP32+Arduino搞定VESC双轮毂电机同步控制(附完整代码)

本文详细介绍了如何使用ESP32和Arduino实现VESC双轮毂电机的高精度同步控制,包括硬件架构设计、固件配置、CAN通信协议解析及Arduino代码实现。通过实战案例和完整代码,帮助开发者解决双电机响应不同步问题,实现误差小于0.3%的精准控制,适用于机器人底盘、AGV小车等应用场景。

weixin_42567497的博客 261

用ESP32+Arduino搞定VESC双轮同步控制:告别CANable,实现1000ms内双指令发送

本文详细介绍了如何利用ESP32和Arduino框架实现VESC双轮毂电机的毫秒级同步控制,解决传统CAN调试工具的高成本和指令延迟问题。通过硬件选型、电路连接、代码框架和参数调优的实战指南,开发者可以低成本实现1000ms内双指令发送,提升机器人底盘或智能小车的控制精度。

weixin_30608503的博客 607

VESC简介与国产替代方案

官方网站:https://vesc-project.com/github网站:https://github.com/vedderb在上面1.3节中,本杰明说了“与软件不同,硬件布局不是非常可重用的”。不同功率的板子,硬件设计差别一定非常大,而软件可以很容易修改和重用。代码架构反映了本杰明的这一想法,即固件要容易修改和重用。一般我们写代码,会用一个头文件做全局宏定义。

loop222的博客 2万+

用ESP32+Arduino搞定VESC双轮同步控制(附CAN通信代码避坑指南)

本文详细介绍了如何利用ESP32和Arduino实现VESC双轮同步控制,重点解析了CAN通信协议及避坑指南。通过硬件架构设计、CAN通信深度解析和Arduino代码实战优化,帮助开发者解决时序抖动、ID冲突和指令丢失等核心问题,实现工业级精度的双轮协同控制。

weixin_30387423的博客 427

VESC <硬件篇>

本项目在本杰明驱动的基础上制作的驱动板,主板采用双层主板,通过排针接耦。上层主板主要功能是控制、采集反馈、交互等。下层主板为3个半桥走大电流。

qq_42722691的博客 7438

VESC Tool 3.0保姆级教程:从单电机校准到双轮差速调试全流程

本文提供VESC Tool 3.0的完整使用指南,从单电机校准到双轮差速控制的全流程解析。详细介绍了硬件连接、参数校准、CAN通信配置及差速算法实现,帮助开发者快速掌握双轮毂电机控制技术,适用于机器人底盘、电动滑板等应用场景。

weixin_30546189的博客 637

VESC实战进阶:基于CAN总线的双轮毂电机协同控制与调试

本文详细解析了基于VESC控制器和CAN总线的双轮毂电机协同控制与调试实战技巧。从硬件准备、单电机校准到CAN通信配置,重点分享了双电机同步控制中的速度匹配、异常处理等进阶经验,帮助开发者快速掌握电机控制系统的核心调试方法。

weixin_30879169的博客 106

SimpleFOC、ODrive和VESC 教程链接汇总

一、SimpleFOC系列教程 SimpleFOC(一)—— 简介(附有文件下载链接) SimpleFOC(二)—— 快速入门 (开环控制) SimpleFOC(三)—— AS5600角度读取 SimpleFOC(四)—— 闭环控制 SimpleFOC(五)—— 双电机控制 SimpleFOC(六)—— PowerShield和AS5047P SimpleFOC(七)——STM32(Bluepill)的应用 SimpleFOC(八)—— 理论+实践 深度分析SVPWM SimpleFOC(九)——

loop222的博客 12万+

VESC Tool 3.0保姆级教程:从电机校准到CAN指令调试,避坑齿槽效应和启停抖动

本文详细介绍了VESC Tool 3.0在电机控制中的实际应用,从电机参数校准到CAN指令调试,特别针对双轮毂电机的齿槽效应和启停抖动问题提供了优化策略。通过参数调整和CAN总线通信技巧,帮助工程师实现高效的多电机协同控制,提升系统稳定性和性能。

weixin_30340819的博客 595

VESC最新电调 2020 无感 本杰明电调

VESC最新电调 2020 无感 本杰明电调

VESC FOC V5.02版本部分带注释代码源文件

自己学习过程中加的一点注释,不一定准确,希望能有参考价值

vesc6本杰明6.4 PCB 原理图+keil代码vesc6.4

程序源码为keil版本,符合国内工程师开发习惯,单套硬件成本可控制在百元以内,具体看用料。pcb板双层可直接发到嘉立创打样,我制作的板子,通过上位机可测电机参数,有测参数页面。

本杰明VESC源码,关于MASTER部分

本杰明VESC源码,关于MASTER部分

kubeadm init 运行时kebelet启动失败问题

解决k8s kubeadm init时遇到的kubelet问题

ZDPZN的博客 6074
上一篇: ODrive的梯形轨迹
下一篇: SmartKnob移植ESP32和STM32——棘轮手感
loop222
博客等级 码龄8年 4091粉丝 61原创
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值