首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

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

  • 23-09-28 04:01
  • 3150
  • 13927
blog.csdn.net

目录

  • 一、VESC驱动轮毂电机
    • 1.1、硬件准备
    • 1.2、硬件接线
    • 1.3、校准电机
    • 1.4、设置爬升率和最小速度
  • 二、CAN通信
    • 2.1、硬件连接
    • 2.2、代码说明
    • 2.3、发送指令
  • 三、双轮毂电机
    • 3.1、校准第二个电机参数
    • 3.2、硬件连接
    • 3.3、CAN总线发送指令
  • 四、把VESC做为USB转CAN模块

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

一、VESC驱动轮毂电机

1.1、硬件准备

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

在这里插入图片描述

在这里插入图片描述

 

1.2、硬件接线

在这里插入图片描述

VESC 购买链接:某宝购买

 

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、硬件连接

在这里插入图片描述

 

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 购买链接:某宝购买

 

3.3、CAN总线发送指令

3.3.1、canable发送指令

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

在这里插入图片描述
 

3.3.2、ESP32发送指令

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

在这里插入图片描述

ESP32drive 购买链接:某宝购买

 

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

 

四、把VESC做为USB转CAN模块

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

在这里插入图片描述

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

在这里插入图片描述

VESC 购买链接:某宝购买

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

注:本文转载自blog.csdn.net的loop222的文章"https://blog.csdn.net/loop222/article/details/130488280"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top