一.介绍

VESC是一个开源的无刷电机驱动器,由工程师本杰明研发,最初应用于电动滑板,但是由于其出色的性能,也渐渐在其他领域得到了应用。

由于VESC的固件是基于电动滑板这个应用场景开发的,所以如果我们想将其应用在其他领域,就需要对其源码进行二次开发,修改通讯协议或增添自定义的功能。本文章分别介绍了如何在Ubuntu和Windows下搭建开发环境和烧录固件。

二.Ubuntu平台

1.说明

  • 系统:Ubuntu-16.04

    • 若使用Ubuntu-20.04,则安装编译工具链时会比较麻烦,具体可参考这个提问:[How to install arm-none-eabi-gdb on Ubuntu 20.04 LTS (Focal Fossa)
  • 开发环境:GNU Arm Embedded Toolchain + build-essential + 文本编辑器

    • GNU Arm Embedded Toolchain为arm的嵌入式编译工具链,可以为Arm Cortex-M架构的芯片编译程序,VESC的缔造者本杰明就是使用该工具链编写的VESC固件。
    • build-essential提供了make等编译工具。
    • 最后需要一个文本编译器用于修改代码。
  • 烧录:STLink + st-flash

2.搭建开发环境

#下载arm编译工具链
sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
sudo apt update
sudo apt install gcc-arm-embedded
#下载基本的编译工具
sudo apt install build-essential
#从github上下载VESC固件的源码
cd ~ && git clone https://github.com/vedderb/bldc.git vesc_firmware
cd vesc_firmware
#编译
make

3.烧录固件

#安装依赖
sudo apt-get install git libusb-1.0.0-dev
#下载编译stlink软件
git clone https://github.com/stlink-org/stlink.git
cd stlink
mkdir build && cd build
cmake ..
make
sudo make install
#BLDC_4_ChibiOS.bin为编译出的固件名
st-flash write BLDC_4_ChibiOS.bin 0x08000000

若首次使用st-flash时出现链接库错误,可以使用sudo ldconfig修复。烧录成功的提示见下图。

4.连接BLDC tool

#安装依赖
cd ~
sudo apt-get install qtcreator qt-sdk libudev-dev libqt5serialport5-dev
#下载编译BLDC tool
git clone https://github.com/vedderb/bldc-tool.git
cd bldc-tool
qmake -qt=qt5
make clean && make
#给予串口访问权限
sudo adduser $USER dialout
#重启使设置生效
reboot
#运行BLDC tool
cd ~/bldc-tool
./BLDC_Tool

打开BLDC tool以后,使用mini USB连接VESC V4,或者使用mirco USB连接VESC V6。

注意要焊接该0R电阻,才可以通过USB给VESC供电,若没有焊接,则需要给VESC上强电,下图是VESC V4 0R电阻的位置:

随后在BLDC tool中选择串口,单击右上角的Connect按钮,若右下角显示连接,则证明固件烧录成功。

三.Windows平台

1.说明

  • 开发环境:VSCode + GNU Arm Embedded Toolchain + mingw + git bash

    • VSCode作为文本编译器,同时也将git bash集成在VSCode中,方便进行代码的修改和编译。
    • GNU Arm Embedded Toolchain为arm的嵌入式编译工具链,可以为Arm Cortex-M架构的芯片编译程序,VESC的缔造者本杰明就是使用该工具链编写的VESC固件。
    • mingw可以在windows上提供make指令,可以解释makefile中的编译连接规则。
    • git bash用于在windows上提供一个类linux的终端,执行一些linux命令。
  • 烧录:STLink + STM32 ST-LINK UtilityJ-Link + J-flash

    • 这两种方式都可以通过VESC上的SWD接口为stm32烧录bin文件。

2.搭建开发环境

我们需要分别下载上面提到的VSCode、GNU Arm Embedded Toolchain、mingw 、git,其中GNU Arm Embedded Toolchain可能使用的人比较少,只需去arm官网对应界面中选择gcc-arm-none-eabi-10-2020-q4-major-win32.exe下载即可。其余三种工具下载起来都比较容易,网上也有很多教程,我在这里就不说了。

下载上述工具时一定要注意配置好环境变量,否则终端无法识别对应的命令。我们可以通过快捷键Win+R打开运行,输入cmd并回车,打开终端。在终端输入gitgccarm-none-eabi-gcc三条命令,若终端都可以正常识别,则环境变量配置正确,否则需要手动添加环境变量。

下面给出我安装GNU Arm Embedded Toolchain时添加环境变量的选项:

下面我们去github上下载源码,下载完使用VSCode打开该文件夹,如果是第一次使用VSCode,则需要先把git bash设置为VSCode的默认集成终端。

我们打开终端后,在终端中输入mingw32-make命令,即可成功编译固件,如下图所示:


编译生成的固件在./build路径中。

在帮助同学配置开发环境的过程中,我发现在同学的电脑上只能成功编译固件一次,之后就会报错,删去编译生成的./.dep文件夹中的中间文件就可以重新编译了。我写了一个脚本来简化编译流程:

if [[ $1 = "force" ]];thenrm -rf ./buildrm -rf ./build_all
fiif [ -f "./Makefile" ];thenrm -rf ./.depmingw32-make
elseecho "找不到makefile文件,尝试更换文件夹"
fi

3.烧录固件

这里以STLink + STM32 ST-LINK Utility为例介绍如何为VESC烧录固件, J-Link + J-flash操作几乎相同。

首先需要在ST的官网上面下载STM32 ST-LINK Utility,记得要留自己的邮箱,这样才能收到下载链接,下载过程中可能会询问你是否要按照STMicroelectronics Virtual COM驱动,我们选择安装。

打开STM32 ST-LINK Utility,将VESC通过ST-LINK连接到电脑。

点击connect按钮,若系统检测到单片机,则可成功连接,若没有检测到,需要再检测一下连接线路。

随后将我们刚刚编译生成的.bin固件拖进该软件中:

随后点击烧录按钮进行烧录。

记得要勾选reset选项,不然烧录进固件以后无法自动
运行,需要手动复位才能运行。

4.连接VESC tool

有关VESC tool的使用,我将会在下一篇博客中详细介绍,这里使用VESC tool来连接电调,只是为了检测我们是否成功烧录了固件。

打开VESC tool,使用mini USB连接VESC V4,或者使用mirco USB连接VESC V6。

注意要焊接该0R电阻,才可以通过USB给VESC供电,若没有焊接,则需要给VESC上强电,下图是VESC V4 0R电阻的位置:

点击连接按钮,若能成功检测到VESC,则证明固件烧录成功。

四.参考资料

Benjamin’s robotics

vedderb/bldc-tool

vedderb/bldc

stlink-org/stlink

bilibili up:北冥有鱼qzs

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

  1. SharePoint 2013 配置开发环境,需安装VS2012插件

    SharePoint 2013已经安装好了,接下来就是配置开发环境,安装VS2012,但是,装好了以后,发现没有SharePoint 2013开发的支持,如下图: 然后,去网上查找资料,VS2012对 ...

  2. java fx配置_JavaFX系列-配置开发环境

    JavaFX系列-配置开发环境 本文主要介绍JavaFX环境的搭建和如何部署JavaFX应用 添加JavaFX依赖 在工程 build.gradle 中加入以下内容: plugins { id 'ap ...

  3. react http请求_通过Webpack全局配置开发环境和多种生产环境的请求地址

    在线上项目的开发中,我们经常会有一个测试服务器一个正式服务器,当我们开发时我们会去使用测试服务器的接口地址,而发版时会把地址改为正式服务器的地址,因此我们可能会在两个地址来回切换(有可能还有更多环境, ...

  4. Django配置开发环境和生产环境以及配置Jinja2模板引擎

    配置开发环境 在项目的目录(即就是settings.py的同级目录)创建settings的Python的包 在创建的settings的包中,创建dev.py,将原项目的setting.py中内容全部复 ...

  5. HarmonyOS之搭建和配置开发环境的流程

    一.搭建开发环境流程 DevEco Studio 支持 Windows 系统和 macOS 系统,在开发 HarmonyOS 应用前,需要准备 HarmonyOS 应用的开发环境.环境准备流程如下所示 ...

  6. QT + OpenCV + MinGW 在windows下配置开发环境

           由于研究项目需要,最近开始接触C++界面设计,关于"QT + OpenCV + MinGW在windows下配置开发环境"着实让人头疼,单次配置时间相当长,也十分不容 ...

  7. php4 apache 配置,[开发环境配置]windows下php4+mysql4+apache2开发环境配置

    在网上看了好多php+mysql+apache的开发环境配置文档.但是其中不乏出现了很多的问题导致在配置开发环境的时候出现了很多的问题.这里总结出一份自己配置过程中的文档希望能给大家带来一些帮助.那么 ...

  8. 超级详细Window10安装Java JDK 和配置开发环境

    Window10安装Java JDK 和配置开发环境 准备工作 下载 JDK8 百度云下载链接:https://pan.baidu.com/s/1vCmurwpOpAcwTJiXEZIXCA?pwd= ...

  9. Phpstorm+phpstudy组合配置开发环境(Win端)

    Phpstorm+phpstudy组合配置开发环境(Win端) Phpstorm集成了PHP语言多种开发环境和插件,其项目式管理符合各大公司项目分布式分工管理,从而使网站的前后端开发都是独立自主完成, ...

最新文章

  1. python awk 读文件_测试python awk sed 读取文件指定位置时的性能
  2. linux 时间 无法连接服务器地址,怎么解决linux访问不了ip地址问题?
  3. ajax 405报错,使用ajax请求时发生随机HTTP错误405
  4. java中的集合_你真的了解Java中的集合类么?
  5. python 遍历文件夹
  6. python输入y继续运行_Python二三事 - 接触Python(x,y)
  7. php中include,require的文件包含问题,以及$_SERVER['PHP_SELF']和__FILE__的区别
  8. i219v微星 驱动_intel英特尔网卡驱动下载-intel英特尔i217/i218/i219系列网卡驱动电脑版 - 极光下载站...
  9. 深度学习技术在不同方向的应用及相关开源项目
  10. 母亲节与父亲节之我见
  11. 祈求代码不出 Bug 该拜哪个“神仙”?
  12. 干货 | 使用pyecharts绘制交互式动态地图
  13. 乐高编程学c语言吗,乐高编程和少儿编程的区别
  14. 关于图片不变形适应屏幕的解决方法(vue为例)
  15. 06:判断是否为两位数
  16. 图像特征点、投影变换与图像拼接
  17. bzoj 4808: 马【匈牙利算法】
  18. pyOCD - 用于调试烧写 Cortex-M 芯片环境成功搭建
  19. Linux多线程编程---线程间同步(互斥锁、条件变量、信号量和读写锁)
  20. 电商网站搭建——多环境部署、如何打War包

热门文章

  1. 虚拟机共享计算机的网络连接,Parallels Desktop如何共享网络 Mac与虚拟机共享网络设置教程...
  2. Won a Air Purifier in DD lucky draw
  3. oracle实验报告2:: Oracle数据库物理存储结构管理(含实验小结)
  4. 【间歇性努力,不是真正的努力】
  5. window10卸载软件 搜 控制面板
  6. 联想服务器如何修改硬盘模式,联想thinkpad如何修改硬盘模式为ahci
  7. 个人永久性免费-Excel催化剂功能第21波-Excel与Sqlserver零门槛交互-执行SQL语句篇...
  8. NM_CUSTOMDRAW消息
  9. 商科能读计算机专业吗,我本科读的计算机 想去新西兰留学可以换专业吗? 没分了跪求啊,...
  10. 把握大都市的高度和速度