VESC操作入门(三)——PPM输入控制和ADC输入控制

2023-10-13 11:10

本文主要是介绍VESC操作入门(三)——PPM输入控制和ADC输入控制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 一、PPM输入控制
    • 1.1、硬件准备
    • 1.2、PPM信号
    • 1.3、校准电机
    • 1.4、输入设置
  • 二、ADC输入控制
    • 2.1、硬件准备
    • 2.2、更改固件
    • 2.3、电压信号
    • 2.4、校准电机
    • 2.5、输入设置
  • 三、电动车转把控制
    • 3.1、转把说明
    • 3.2、转把测试
  • 四、ADC的其它模式
    • 4.1、Current No Reverse Brake ADC2
    • 4.2、Current No Reverse Brake Center
    • 4.3、 其它模式


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

一、PPM输入控制

1.1、硬件准备

序号名称数量
1VESC41
25008电机1
312V电源1
4USB延长线1
5遥控器1套

在这里插入图片描述

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

1.2、PPM信号

  • 一般用油门做为PWM信号输出,油门是通道3,下图:
    在这里插入图片描述

  • 对于左手油门的遥控器来说,就是左边摇杆上下方向,下图:
    在这里插入图片描述

  • 摇杆上下运动,接收机对应输出信号如下图:
    PWM信号周期2.5ms(50Hz),信号输出高电平在1-2ms的范围内变化,摇杆中间位置时高电平为1.5ms,
    在这里插入图片描述

  • 接VESC,下图:
    在这里插入图片描述

1.3、校准电机

  • 硬件接线完毕后,上电,待电脑识别VESC后,点击“AutoConnect”,右下角显示连接成功,
    然后再点击“Setup Motors FOC”,进入配置流程,下图:
    在这里插入图片描述

  • 5008电机选择这两个都可以。检测阶段电机运行在开环状态,选择的电机越大,开环电流越大,电机越容易发热,下图:
    在这里插入图片描述

  • 校准大概需要一分钟时间,请耐心等待,下图:
    在这里插入图片描述
    更多配置说明可以参考前面教程《VESC操作入门——控制霍尔电机、无感电机和AS5047P》。

  • 校准结果,下图:
    点击OK,关闭。
    在这里插入图片描述

  • 正反转测试,下图:
    finish,关闭。
    在这里插入图片描述


1.4、输入设置

  • 选择设置输入,下图:
    在这里插入图片描述
  • 选择PPM,下图:
    在这里插入图片描述

  • 当前界面,上下摇动遥控器摇杆(可多操作几次),进度条根据摇杆变化,准确的测量出PWM的占空比,下图:
    在这里插入图片描述
  • 选择电流模式,下图:
    在这里插入图片描述

  • 实际上也可以选择其它模式,
    在实际操作的时候,因为电机是空载,电流很小就可以到达最大转速,所以 “Current” 模式缺乏行程感,
    而下图另外2个模式就可以清晰的反应摇杆行程对电机转速的控制,
    在这里插入图片描述

  • APP中选择PPM并保存,下图:
    在这里插入图片描述

此时操作摇杆就可以控制电机转动,向上电机正转,向下电机反转。

注意操作时动作要慢,不要快速的上下划动摇杆,电机转速突变容易产生高压反电动势,本人的12V小功率开关电源就这样被击穿了。如果是锂电池可能会好点。

二、ADC输入控制

2.1、硬件准备

在这里插入图片描述

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

2.2、更改固件

  • 因为上面测试PPM时使用了带AS5047P编码器的电机,固件中默认使能了SPI接口,所以需要重新烧写不支持SPI接口的固件。固件差别在 《VESC简介与国产替代方案》 这篇文章第3.3小节有说明。

  • 请使用STlink配合STM32 ST-LINK Utility软件烧写,下图:
    在这里插入图片描述

  • 不要使用vesc_tool更新固件,经本人反复对比测试,确认更新无效,下图:
    在这里插入图片描述

2.3、电压信号

  • 用10K电位器(也可以用其它阻值),下图
    这种电位器质量比较差,测试过程中多注意电压信号输出,
    在这里插入图片描述

  • 接VESC,下图:
    在这里插入图片描述

2.4、校准电机

  • 接入无感电机,所以校准参数如下图,
    校准过程请参考上面1.3小节,
    在这里插入图片描述

2.5、输入设置

  • 选择 setup input,下图:
    在这里插入图片描述

  • 选择ADC输入,下图:
    在这里插入图片描述

  • 选择“Duty Cycle”(也可以不选),转动电位器,进度条根据电位器变化,准确的测量出实时电压,下图:
    在这里插入图片描述

  • 选择占空比,写入,下一步,下图:
    在这里插入图片描述

  • 也可以选择其它模式,待熟练后可尝试,下图:
    在这里插入图片描述

  • 点击下一步,完毕。

  • APP中选择ADC并保存,下图:
    在这里插入图片描述

  • 配置完毕,转动电位器,需先转到最低位(最小电压输出0),然后缓慢调大,当输出电压大于1.2V左右时,电机开始转动。
  • 为什么要大于1V才有输出,这跟电动车的转把特性有关,下面介绍。


三、电动车转把控制

3.1、转把说明

在这里插入图片描述

  • 转把是由一个固定的霍尔元件和一个能转动的半圆形磁条构成,
    磁条固定在转柄上,它的磁性是一头强一头弱,起初霍尔是对应磁铁最弱的一端,转动转把霍尔对应磁铁的磁性加大,霍尔感应磁场变强,信号线的电压随着升高,
    在这里插入图片描述

  • SS49E接5V电源,随磁场增强,信号输出电压在1—4V,下图:
    在这里插入图片描述

3.2、转把测试

  • 新买的转把,下图:
    在这里插入图片描述

  • 局部拆开,可以看到霍尔元件和磁铁,下图:
    在这里插入图片描述

  • 接轮毂电机,下图:
    电池为7S(28V),
    在这里插入图片描述
    VESC 购买链接:某宝购买

  • vesc_tool校准,参考上面,不再赘述,
    在这里插入图片描述

  • 转把电源接5V,输出信号电压范围是:0.85—4.49V,
    转把电源接3.3V,输出信号电压范围:0.82—2.6V,
    信号电压超过3.3V,AD转换就满量程了,实际操作中,会觉得后面虚位比较大,所以选择3.3V电源。
    在这里插入图片描述

  • 输入模式如果选择 “current”,因为电机空载,稍微加油门就全速转动,
  • 用 “Duty Cycle” 可以更好的体验油门对转速的控制,



在这里插入图片描述

四、ADC的其它模式

4.1、Current No Reverse Brake ADC2

这个操作模式增加了刹车功能,控制逻辑与我们骑电动车的逻辑完全相同,
在这里插入图片描述

  • 油门接ADC1,和上面用法一致,
  • 刹车接ADC2(刹车是一个开关信号,但确实要接在ADC2引脚上),
  • ADC2为低电平时,油门控制电机转速,ADC2为高电平时,电机立刻停止转动无论油门大小。

4.2、Current No Reverse Brake Center

用摇杆控制电机转速,
在这里插入图片描述
在这里插入图片描述

摇杆电位器居中位置,正向加速,反向减速,完全放开刹车,有点“单踏板”的意思。
注意摇杆操作要慢,不要突然松开摇杆,防止反电动势击穿电源,建议用锂电池供电。

4.3、 其它模式

搜到一篇比较好的视频教程,https://www.bilibili.com/video/av930193861/,有兴趣的同学可以细细研究。



(完)

这篇关于VESC操作入门(三)——PPM输入控制和ADC输入控制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/202793

相关文章

Python调用Orator ORM进行数据库操作

《Python调用OratorORM进行数据库操作》OratorORM是一个功能丰富且灵活的PythonORM库,旨在简化数据库操作,它支持多种数据库并提供了简洁且直观的API,下面我们就... 目录Orator ORM 主要特点安装使用示例总结Orator ORM 是一个功能丰富且灵活的 python O

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

C++实现封装的顺序表的操作与实践

《C++实现封装的顺序表的操作与实践》在程序设计中,顺序表是一种常见的线性数据结构,通常用于存储具有固定顺序的元素,与链表不同,顺序表中的元素是连续存储的,因此访问速度较快,但插入和删除操作的效率可能... 目录一、顺序表的基本概念二、顺序表类的设计1. 顺序表类的成员变量2. 构造函数和析构函数三、顺序表

使用C++实现单链表的操作与实践

《使用C++实现单链表的操作与实践》在程序设计中,链表是一种常见的数据结构,特别是在动态数据管理、频繁插入和删除元素的场景中,链表相比于数组,具有更高的灵活性和高效性,尤其是在需要频繁修改数据结构的应... 目录一、单链表的基本概念二、单链表类的设计1. 节点的定义2. 链表的类定义三、单链表的操作实现四、

Python利用自带模块实现屏幕像素高效操作

《Python利用自带模块实现屏幕像素高效操作》这篇文章主要为大家详细介绍了Python如何利用自带模块实现屏幕像素高效操作,文中的示例代码讲解详,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、获取屏幕放缩比例2、获取屏幕指定坐标处像素颜色3、一个简单的使用案例4、总结1、获取屏幕放缩比例from

通过prometheus监控Tomcat运行状态的操作流程

《通过prometheus监控Tomcat运行状态的操作流程》文章介绍了如何安装和配置Tomcat,并使用Prometheus和TomcatExporter来监控Tomcat的运行状态,文章详细讲解了... 目录Tomcat安装配置以及prometheus监控Tomcat一. 安装并配置tomcat1、安装

Python中操作Redis的常用方法小结

《Python中操作Redis的常用方法小结》这篇文章主要为大家详细介绍了Python中操作Redis的常用方法,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以了解一下... 目录安装Redis开启、关闭Redisredis数据结构redis-cli操作安装redis-py数据库连接和释放增