玩航模的对于Blheli这个词语应该很熟悉,Blheli只是一个电调固件程序,一个非常强大的固件,一个完全开源的固件程序,刷了该固件立马可以让几十元的电调瞬间拥有几百元电调的功能,在此同时响应速度提升N倍,是玩3D或者多轴的利器!它没有专门的图纸,针对性的编译了市场上常见的电调固件,对每款型号电调都有相应的配置文件,可以自己配置编译。由于BlHeli固件的开源和高速响应速度,有人为它专门设计了可视化的PC端设置软件BLHeliSuite,人性化的菜单界面,这些都为我们详细设置带来方便。
关于Blheli的源代码可以在Blheli的维基下载:https://github.com/bitdump/BLHeli 本文只针对BlHeli13.2版本进行实践介绍,设置软件BLHeliSuite在维基主页下方有具体网址。
在正式刷电调之前首先介绍下航模电调,航模电调,是航空模型用电子调速器的简称,英文名Air-modeling ESC。现在的航模电子调速器一般都是无刷电子调速器。由于无刷电机在同功率下体积要比有刷大大减少,所以有刷现在在市场上已经渐渐式微了。现在的航模电调品牌国外以美国的凤凰最为出名,国内主要品牌有:好盈,中特威,飞盈佳乐等品牌。
电调可以分为两个不同的硬件平台,这取决与它使用的MCU是Silabs(Silabs是C8051内核,C8051Fxxx系列单片机)还是Atmel(Atmel是AVR内核,ATMEGA-8单片机)。两个硬件平台的选项部分不同。下称silabs电调和Atmel电调。无论是silabs电调还是atmel电调都是支持引导程序(bootloader,下称引导程序或引导)的,引导程序是烧写在电调上的一小段代码,它可以支持通过信号线来烧写固件和设置参数。但是对于没有引导程序的电调,第一次烧写必须使用常规的方式,并且写入引导程序后才能在后续支持单线烧写(单线烧写方式不重点说,文中以普通方式为主,因为电调又不天天更新程序,有些电调因为PPM输入端有电阻,导致单线烧写无法正常工作,所有文中主要说普通烧写方式,解决实际应用为主)。
在刷航模电调Blheli固件前需要做一些准备工作
1、arduino uno R3开发板一块(XP下安装驱动比较容易,驱动文件在下载的固件文件夹里面有,如果是WIN7或者 以 上版本系统,打不上驱动是因为Ghost版本系统精简了系统文件导致,解决方法是下载微软官方原版镜像 进行安装,保证问题解决)

2、Blheli固件 (维基下载 https://github.com/bitdump/BLHeli 文件夹里面有详细支持电调种类PDF文档)
3、BLHeliSuite PC端设置软件BLHeliSuite13.2版本(文件夹里有详细刷机方式,接线图,参数资料,支持电调 种类等PDF文档)

BLHeliSuite13.2版本,增加了些功能,其中单线烧录最为突出,菜单也有所改进,具体的请看图片
其中菜单上红线框的部分,上部分A、B、C、D为Silabs电调菜单,1、2、3、4、5、X为Atmel电调菜单,这里这些标号并不是通常软件中的快捷键,这个是为后文的简单刷机做下铺垫,利用arduino uno R3刷Blheli固件,在这个过程由于电调MCU不同和需要刷的方式也不同,arduino uno R3开发板充当的角色也不同,不同的角色就需要对arduino uno R3开发板刷入不同的程序,我们只需看需要刷机的方式所对应的标号,就能看出需要对arduino uno R3开发板刷入相应程序

上图和下图对号入座,比如要用B方式进行刷机,那么我们就要对arduino uno R3开发板刷入Make Arduino general 程序
当然D、2、3方式刷机也用该程序,这样就不需要死记硬背了,很方便,很灵活
下面说具体刷电调过程,Silabs电调首次刷机使用B方式(C2方式),Atmel电调首次刷机使用X方式(ISP方式),这个是必须的,至于为什么,自己去看看两款单片机的编程资料,以下刷机步骤用图文合并,多图少字,简单直接。
Silabs电调首次刷机,打开BLHeliSuite13.2设置软件,进入make Interfaces 菜单对arduino uno R3写入程序,让它变成常规编程器


等待刷入数据


烧写完毕!下面看硬件,实验电调为好赢天行者40A
内部结构,后期查看固件名称需要对照硬件图片

支持电调类型文档在BLHeliSuite根目录下Manuals文件夹里

查看天行者40A电调硬件图对应的固件名称 :skywalker 40A

需要提示的是Silabs电调基本上预留了烧录的触点,这为我们后期烧录方便了许多,看图拿条舵机线按颜色焊上

电调焊接好了,需要把电调连接到arduino uno R3开发板,具体连接,资料在BLHeliSuite根目录下Manuals文件夹里

查看连接引脚

颜色对号入座,黑色接开发板GND,白色接开发板D2,红色接开发板D3

所有硬件连接完成,下面进入刷机环节,打开BLHeliSuite软件,选择B方式

选择arduino uno R3开发板对应的COM口,点击连接,连接单片机
固件名称在上文已经查询好skywalker 40A,选择相应固件,2、固件名称 3、固件类型(MAIN:直升机固定翼
TAIL:直升机尾翼 MULTI:多轴)4、固件版本选择,默认为最新,可以选择其他版本
这里选择多轴版本固件



是否马上设置电调?这里我们选择是,马上进行设置

在红框内可以看到相应的硬件和BLheli固件版本号,到这里Silabs电调刷机完成,电调响应速度可以自己测试,保证满意 至于怎么设置,以后翻译好在详细讲解

Silabs电调刷完了下面到Atmel电调的刷机方法
Atmel电调首次刷机,打开BLHeliSuite13.2设置软件,进入make Interfaces 菜单对arduino uno R3写入程序,让它变成ISP编程器


等待数据写入



烧写完毕!下面看硬件,实验硬件为一款不知名电调,因为拆了外皮

支持电调类型文档在BLHeliSuite根目录下Manuals文件夹里

查看PDF文档,找到相对于的硬件名称BlueSeries 20A

Atmel 电调和Silabs电调不太一样,只有部分Atmel电调预留了烧录的触点,正好我们实验的这款有触点,方便了许多。这里需要说明的是,Atmel单片机是用ISP烧录,对应的硬件引脚为下图
怎么把这些引脚连接到arduino uno R3开发板呢?资料在BLHeliSuite根目录下Manuals文件夹里

里面有详细的教程和硬件接线图,资料是英文的

知道了硬件连接图,下面需要把硬件连接好


所有硬件连接完成,下面进入刷机环节,打开BLHeliSuite软件,选择X方式

选择IPS硬件(这里选ArduinoISP),选择对应端对应口波特率

点击Flash BLHeli


固件名称在上文已经查询好Blueseries 20A,选择相应固件,1、固件名称 2、固件类型(MAIN:直升机固定翼
TAIL:直升机尾翼 MULTI:多轴)3、固件版本选择,默认为最新,可以选择其他版本
这里选择多轴固件

注意:1 处需要查看硬件PPM输入端口,要避开该引脚与PPM输入端口一样,一样了会有点奇怪,具体这里的用意没 有具体查看资料
2 处是选择引导方式,Keep Exising Bootloader 保存原引导
Install BLHeli Bootloader BLHeli引导
Install Simonk Bootloader Simonk 引导



是否马上设置电调?这里我们选择否,因为Atmel电调固件里面带有引导程序,首次刷完支持单线刷机

到这来Atmel电调首次刷机完成,由于Atmel电调刷机是带了引导程序,首次刷完成后支持单线刷机,然而Silabs电调则不同,Silabs电调是不带引导的,引导需要后面刷入。之前说过,重点不是单线刷机,Silabs电调用C2方式刷机也就3根线,线少也不需要单独搞单线刷,有些Silabs电调PPM输入端有电阻,会导致单线刷机失败。
Atmel电调刷首次刷机带了引导,下面来测试下单线读写设置电调,Atmel电调要把arduino uno R3刷成make arduino general 编程器用2方式读写





写入完毕!下面可以连接硬件了,在这里需要说的是,刚才刷机的时候Bootloader at pin引脚故意避开PPM输入端,选择了PB4端口

确定了电调端的单线引脚端口,下面查看相应资料确定接入arduino uno R3开发板D3端口,资料在BLHeliSuite根目录下Manuals文件夹里


连接好硬件打开BLHeliSuite13.2设置软件

选好开发板对应的COM口,点击连接,点击读取数据

在红框内可以看到相应的硬件和BLheli固件版本号,到这里Atmel电调读取完成,至于怎么设置,以后翻译好在详细讲解

有引导的Atmel电调程序,可以支持单线刷机,连接后,点击Flash BLHeli 就能进入刷机,具体操作很简单,不详解了
写了几个小时的教程,边操作边写,花时比较长,图文结合,读书少,不做太多文字叙述,希望喜欢搞开源的朋友看完我的教程对有需要的朋友有所帮助,如有不了解可以单独私聊

|