pATAq 发表于 2020-4-21 00:16:31

MTO1804无刷电机引发的悲惨经历之一:起底神秘的无名电调

# 前言
原创文章,转载引用请务必注明链接,水平有限,如有疏漏,欢迎指正。
这个无刷电机、电调背后的知识着实繁复。设想中的学习过程是,“初极狭,才通人,复前行,豁然开朗,便至桃花源”。然而现实中是,爬出来一个坑,又掉进一个更大的坑,不禁感叹学海无涯回头是岸,乃至现在打字记录时,满纸辛酸泪。

首先感谢DFRobot论坛的活动以及小77,电机拿到手之后对比我之前的XXD C2312-13T无刷电机,发现真的很小。另外看到其他坛友的发帖,有的说CW也有说CCW,说明一些小概念也很模糊。这里就以探究神秘无名电调真面目为主线,和大家整理分享一下最近学了点啥。另外因为大部分都是我自己总结的,所以语言表述上肯定有不严谨的地方。
![电机对比](https://mc.dfrobot.com.cn/data/attachment/forum/202004/22/020839uodp7fk6rz9dfdad.png)
!(https://mc.dfrobot.com.cn/data/attachment/forum/202004/22/020839doa22x7agy7yb7ny.png)
硬件列表:

* DF MOT1804无刷电机+电调
* 富斯FS-T6遥控器(日本手)+R6B接收机接收机 / 富斯FS-i6x遥控器(美国手)+FS-RX2A Pro V1迷你接收机
* 3S 2200mAh 锂聚合物电池

## 1、基础知识
这俩就不写了,分享下视频,大家都讲得比我好。
* [电机,电子调速器(电调),螺旋桨,电池,燃油发动机知识。电调电机螺旋桨的匹配](https://www.bilibili.com/video/BV1P7411K76w)
* [电调的相关问题【我的第一架遥控飞机】第五集](https://www.bilibili.com/video/BV14i4y1t72t)

### 1.1 什么是无刷电机

### 1.2 什么是电子调速器

## 2、产品解读

我们来到DFRobot这款无刷电机的[产品页面](https://www.dfrobot.com.cn/goods-2569.html),首先来看看无刷电机本体,主要参数包括如下:

1. **CW和CCW**

   表示电动机的运转方向,前者表示ClockWise 由输出轴侧观看呈顺时针方向(正转), 后者表示CounterClockWise 逆时针方向(反转) ,当然有些电机写的CW/CCW,代表正反转都可以。不过我们知道无刷电机可以很方便的调整转向,那么为什么要标CW、CCW呢?其实主要是和自紧螺帽有关系,按标记方向旋转可以防止螺帽转松。同样可以根据拧螺丝的方法分辨电机是CW还是CCW,即同向松,反向紧。(https://oscarliang.com/propeller-shaft-adapter-nuts-cw-ccw/),

2. **1804**

   指的是内定子直径18mm,高度4mm。那么我的C2312无刷电机就是23mm*12mm,所以知道之后看到型号就明白大约有多大,比我的无刷电机小

3. **KV值**:2480

   我的电机KV值是980,它的定义是施加1v电压空载转速2200rpm,KV值越高转速越高,使用小浆;KV低转速低,扭力大,使用大桨

4. 轴直径:M5

   注意买合适的桨,还要注意桨的正反,标R的是反桨。

5. 最大连续电流(A): 5A

   代表正常工作时电流,另外电机卡住时的电流要比这大

6. 供电为2~3S

   代表支持2-3块锂聚合物电池串联作为供电,也就是11.1v(3.7*3)

再来看看电调。

1. **连续电流**:20A

   对应上面的电机最大连续电流,峰值电流:25A,一般能维持10s,表示电机卡住时的电流。

2. **NO BEC**

   有的电调内置分电功能,可以从电池供电里分出5v供电给飞控乃至其他设备使用(接收机、GPS等),因为他们无法直接使用电池的高电压。带BEC的有三条线,没有的有两条线(黑GND,白SIG)。

3. **输入电压**:2~4S的电池

## 3、简单测试

由于不知道电调的型号,我们用一般的方法来测试一下是否可用。首先将电调和电机焊接好,我这里测试过了,并排三条线焊上去(注意套热缩管)是正转,所以大家调换任意两条线的位置就行了,当然最好自己先试试再焊接。因为不知道具体使用的什么电调,所以使用通用的接线方式,以我的Hobbywing Xrotor 20A为例,接线方式如下:

![](https://mc.dfrobot.com.cn/data/attachment/forum/202004/22/020842dzzr4bgg8rfdvgkd.png)![](https://mc.dfrobot.com.cn/data/attachment/forum/202004/22/020854mompni7bojuo0doj.png)

![](https://mc.dfrobot.com.cn/data/attachment/forum/202004/22/020855ln6nbkdnnd971jbk.png)【两部遥控器,T6为日本手,油门在右;i6x为美国手,油门在左。油门不会自动回中】

![](https://mc.dfrobot.com.cn/data/attachment/forum/202004/22/020852qqfen51zhyeujnhu.png)
【多针脚接收机的接法,一些迷你接收机一般只有3根线,就得通过飞控来测试了】

> **Caution**
>
> 1. 接收机使用5v供电,不需要和11.1v锂电池共地(因为那根可恶的鳄鱼线纠结了我很久),随便找个5v输出给接收机就行,我这里是从APM飞控里引出来的5v供电
> 2. 电调的信号线接到CH3上,也就是遥控器油门通道,黑色接地,白色接信号
> 3. 电调需要接上无刷电机才会有声音,说个冷知识,上电后发出的嘀嘀声是由电机发出而不是电调发出的,原理就是无刷电机的线圈和磁铁形成一个“喇叭”,具体可以参考这篇文章[《How does an ESC make my motor beep?》](https://www.rcgroups.com/forums/showthread.php?2230874-How-does-an-ESC-make-my-motor-beep),所以我们也能看到有人控制多个无刷电机奏乐。

这里专门把这根黑色鳄鱼线拉出来批判,插电无反应,我排查了两天都没想到是它,因为之前没弄过,不知道,还想过共地什么的,但根本就是因为这条线是断路的!!!卡了我那么久,头都想秃了。

![](https://mc.dfrobot.com.cn/data/attachment/forum/202004/22/020855ffifii7crvoqij0i.png)

上电之后,会听到一阵音乐,然后把遥控器的油门慢慢上推,就会看到电机转起来了。上推不会回中的那个摇杆就是油门。

## 4、无名电调

ok,我们知道,一般的电调都需要油门校准,有些还支持编程,但是这块电调外面就是热缩管包着,没有标品牌型号,也不知道参数和说明书,这样就不能改造也不能安全使用了。那咋办嘛,问问客服,然后客服表示我也不知道啊。

![](https://mc.dfrobot.com.cn/data/attachment/forum/202004/22/020936flzkggal8gnqoeq8.png)

所以黑衣电调到底是何方神圣?虽然剪开热缩管可以一探究竟,然而想想拔掉外套有点变态而且不美观,那有没有不剪开的情况下通过软件的方法鉴定它的身份呢?我们来挑战一下,想想不拆马甲就可以看电脑内存颗粒的软件Thaiphoon Burner,我们也应该可以通过软件的方法揭开谜底。下面化身面无表情的打字记录机器。

### 4.1 找出电调软件代理人

飞控告诉电调要做什么,电调控制电机完成相应动作,电调也是一个单片机,有它的操作系统(firmware 固件),折腾路由器刷各种系统的肯定熟悉这个。电调固件可以通过某种协议和外界交互,相当于电机和外界的中间代理人,我们首先调查调查一般啥人能当代理,有什么路子能和这位代理大哥搭上话。

### 4.2 电调常见固件

电调固件决定电调的性能、通讯协议以及交互界面,常见的固件包括以下几种:

* BLHeli
* BLHeli_S
* BLHeli_32
* SimonK
* 其他厂商专用固件

SimonK和BLHeli是两个最早的开源固件,后来SimonK久未更新,2015年之后基本市面上就是用的BLHeli固件了。后来随着软硬件的发展,出现了第2代BLHeli_S和第3代BLHeli_32固件。除了这两者之外,有些电调厂家也有自己的专有闭源固件。(https://oscarliang.com/esc-firmware-protocols/)

BLHeli一般是Atmel和SiLabs的8051单片机,BLHeli_S使用SiLbas的BB1和BB2芯片,后面会讲;BLHeli_32使用32bit的芯片,性能那是强了很多。不过目前市面上仍然有很多采用8bit芯片的电调,主要是便宜而且核心功能都有。

> However there are still many 8-bit ESC’s on the market, because they still offer the key features such as RPM filter, DShot support, 48KHz Mode and so on, for a much more affordable price. For a lot of people, that’s enough.

### 4.3 验证假设

我们首先假设DF的电调是采用BLHeli,然后去验证是不是,一般的固件都会提供相关交互工具,我们放狗一搜,来到了BLHeli的(https://github.com/bitdump/BLHeli),继而了解到有一个软件叫做BLHeliSuite,可以刷新升级、配置电调固件。进入[下载页面](https://www.mediafire.com/folder/dx6kfaasyo24l/BLHeliSuite),看到Windows下有两个版本:16和32,先都下载回来。

![](https://mc.dfrobot.com.cn/data/attachment/forum/202004/22/020840fxamuumyomoo9qsm.png)

后续通过[这篇文章](https://oscarliang.com/blheli-s-hardware-pwm-32bit/)了解到,BLHeli和BLHeli_S适用8bit处理器,使用BLHeliSuite16714902;BLHeli_32适用ARM 32bit处理器,使用BLHeliSuite32_32711。我们的DF电机电调比较新,盲猜其电调使用的是ARM 32bit的处理器,打开软件:

![](https://mc.dfrobot.com.cn/data/attachment/forum/202004/22/020837a29ahoyou4fdidfd.png)

两眼一抹黑,有点厉害。愣着干啥啊,赶紧想想办法,看看咋用的。噼里啪啦一阵敲,你猜怎么着,还真让我找到法子了。

#### 4.3.1 PassThough

[《HOW TO CONNECT/FLASH BLHELI_32 ESC VIA FC PASSTHROUGH》](https://oscarliang.com/blheli-32-esc-fc-passthrough/),这种方法称作`PASSTHROUGH`,通过安装有CleanFight、BetaFight系统的飞控来与电调交互。那么啥是BetaFight呢?带着疑问点开了(https://betaflight.com/):

![](https://mc.dfrobot.com.cn/data/attachment/forum/202004/22/020838wplgsz1rlorrps12.png)

于是几天过去了,增长了很多知识。它诞生自CleanFIght固件,是一款支持STM32芯片的飞控系统,但是翻了翻自己的开发板库,有STM32F411,Nucleo-F767ZI,STM32F103,但是都不在官方支持列表里,自己编译移植又怕进坑,看着自己手里基于Arduino Mega装载Ardupilot系统的APM2.8飞控板,留下了落后的眼泪。

此路不通,再寻别径。

#### 4.3.2 1-Wire

除了通过飞控的PassThough方式外,还有一种[使用Arduino做编程器的方法](https://oscarliang.com/flash-blheli-s-esc-firmware-fc-pass-through/),但是用于老BLHeli固件的,不知道Arm 32的电调能不能行,死马当活马医呗,万一赌对了呢,单车变摩托。好,开始整活。

我先拿我之前的电调做实验,型号是Hobbywing Xrotor 20A,考虑比较老,使用的BLHeliSuite16,方式差不多,积累经验。幸运的是在软件目录里的`Manuals\BLHeli supported SiLabs ESCs.pdf`文件中发现支持我的电调,基于SiLabs的芯片。

!(https://mc.dfrobot.com.cn/data/attachment/forum/202004/22/020856c1m01uj7q1m57q47.png)

首先使用Arduino Uno(其他大多数Arduino板也行)连接到电脑,识别后选中Arduino的接口,如下图设置:

!(https://mc.dfrobot.com.cn/data/attachment/forum/202004/22/020854nvfzc0nxm0m0jgt1.png)

![](https://mc.dfrobot.com.cn/data/attachment/forum/202004/22/020838mdp27ttr7s67qt6d.png)

【因为不知道使用的什么芯片,BD23都可以试试】

> **Caution**
>
> * 一定要选择正确的Arduino接口,示例中Uno、Nano、Mega成功,我先前使用基于Duemilanove的SeeedDuino失败,换成基于Uno的DFRduino成功
> * `Arudino BLHeli Bootloader`和`Arduino 4way-inface`理论上都可以成功,我用的4way,按钮右边的B、D、2、3对应菜单栏中的`Select ATMEL/SILABS Interface`。
> * 在ESC Setup标签中线选择正确的Interface(参上),和正确的Arduino接口,然后点击Connect,再点Check
> * 根据`Manuals\BLHeliSuite 4w-if interfaces pinout.pdf`,将电调的白色Sig线接到Uno的D11,黑色的Gnd接Uno的地线
> * 连接的时候一般先插信号线,后插电源线,断开连接的时候则先拔电源线,再拔信号线。
> * 电调由3s锂电池供电,不用和Arduino共地。   

!(https://mc.dfrobot.com.cn/data/attachment/forum/202004/22/020848u19zk0jq3ct3kqmt.png)

然后失败了。没识别出来,我不记得当时有没有用那根黑色的鳄鱼线了,反正我又自闭了,又头秃了,又放空了一段时间。

##### 关于共地的测试

我又回来了,越挫越勇,这两天一直寻思着是不是电调和Arduino要共地,因为之前使用LN298N直流电机驱动的时候要共地。于是掏出来DF家的(https://www.dfrobot.com.cn/goods-604.html),接线上电一气呵成,伴随着一股青烟扶摇直上,电调的sig线接头也变形了,赶紧断开,继续自闭。**注意动力锂电池电流很高,**很危险!!!**

!(https://mc.dfrobot.com.cn/data/attachment/forum/202004/22/020844shfh42ofou4r292i.png)

##### 关于接不接电机

我之前不接电机的,没有响,也不知道软件识没识别电调,因为以为是电调发出的嘀嘀嘀,所以一直以为失败的,后来才知道声音是接上电机发出的声音。

### 4.4 久旱逢甘霖

琢磨着要不试试DF的电调吧,换个心情,既然换心情,就把电机接上去。打开BLHeliSuite32,制作设置界面差不多,4-way固件选哪个都可以,我用的Multi。接线上电一气呵成,一如既往没有识别,但是这个电调上电有声。有戏!总不会是8bit的电调吧???竟然真的是8bit的电调,BLHeliSuite16识别如图:

![](https://mc.dfrobot.com.cn/data/attachment/forum/202004/22/020850ptcuzetcuwzp0ui8.png)

感动的眼泪都要出来了。平复一下激动的心情,定睛一看,没有电调的牌子,只有G-H-30字样,使用BLHeli_S 16.5的固件。至此我们终于揭开了黑衣电调的第一层面纱,G-H-30啥意思呢?

> First letter is the hardware configuration of the ESC; the second letter, H for BB2 MCU and L for BB1 MCU; the last numbers are the dead-time value.
> **The first letter denotes the pinout of the Micro controller (MCU) on the ESC**
> ——(https://oscarliang.com/setup-rpm-filter-for-blheli_s-esc-for-free/)

G我没整明白啥意思,H搞懂了,代表BB2芯片,BLHeli_S支持两个芯片,都是SiLabs的,性能较之前的芯片有极大提升:

* BusyBee1 (EFM8BB10F8),24MHz, motor speed up to 350k eRPM
* BusyBee2 (EFM8BB21F16) ,50MHz,motor speed up to 500k eRPM

采用BLHEli_S的电调较之前的软硬件改进可以[参考这里](https://oscarliang.com/blheli-s-hardware-pwm-32bit/),具体的芯片规格[参考这里](https://www.silabs.com/mcu/8-bit/efm8-busy-bee)。虽然不是最新的Arm32电调,现在的电调也不错,性价比高,但是我在这里绕了好大一圈,一直在用BLHeliSuite32,肯定识别不了。

`Dead-time Value`死区时间,我不懂,请大佬来讲讲。

#### 4.4.1 更上一层楼

现在我们获得了新信息:G-H-30,BLHeli_S ,BB2,下一步以以下关键字搜索:`ESC G-H-30`,找到了几个产品:

* (https://www.aikon-electronics.com/index.php?id=9) | 固件、大小、供电等不符,排除
* (http://cn.dys.hk/product/XS20A-Solder-Version.html) | 东阳创新科技出品的,A_H_70排除

结合DFRobot产品页面的线索:

![](https://mc.dfrobot.com.cn/data/attachment/forum/202004/22/020839ljplgqt3mmly0xr0.png)

主要关注电调的布局(芯片位置、信号线位置),尺寸重量、电流、输入电压等参数,最终找到如下产品:

* 香港旭日科技出品
* (https://www.racerstar.com/racerstar-rs20a-v2-new-20a-blheli_s-opto-2-4s-esc-support-oneshot42-multishot-for-fpv-racer-p-8.html) | 和上面的外观、参数很像

![](https://mc.dfrobot.com.cn/data/attachment/forum/202004/22/024424cdc44s0z4x2g8mwg.png)

最后确定二者采用G-H-30固件。但是电调板信号线位置能对上,**芯片形状位置对不上**,仔细一看电调实物,原来DFRobot产品介绍页面的示意图是错的。。。实物布局和上述两款电调一致。感觉离真相越来越近了。

![](https://mc.dfrobot.com.cn/data/attachment/forum/202004/22/020854ycquhmro2zl2vrnz.jpg)

【RS20A电调布局图】

好在Cicaca电调介绍页面有使用说明书(~~英文版和中文版清晰度不一样什么鬼~~),结合油门校准声音和对照前面看到的电调参数默认值,我现在有99%的把握确定就是这两款电调的黑衣定制款。

![](https://mc.dfrobot.com.cn/data/attachment/forum/202004/22/020846dkkjkokyt2pd2kt2.png)

【默认参数】

![](https://mc.dfrobot.com.cn/data/attachment/forum/202004/22/020838l0wy94d0w50gej7p.png)

【校准音调】

### 4.5 电调优化 (TBD...)

遥控器调参演示

#### 4.5.1 升级固件

* Main: Intended for helicopter main motor
* Tail: Intended for helicopter tail motor
* Multi: Intended for multirotor motors

#### 4.5.2 综合优化

1. 启用DShot协议 | Betafight Needed
2. 开启RPM Filter功能 | Custom Firmware
3. 开启48MHz PWM | Custom Fireware
4. 优化丢失报警声音

## 小结

回头看来,个人水平学识有限,走了太多弯路,写下来贻笑大方,无奈自己记性不好,这里于人于己留个笔记。


77 发表于 2020-4-21 10:12:16

明明都是中文 我都看的懂 为啥···连起来我就是看不懂呢

Vibranium 发表于 2020-4-21 12:55:10

期待楼主,是什么悲惨经历呢【好奇】

pATAq 发表于 2020-4-22 02:31:18

总结一下,DFRobot产品介绍页面电调的配图错了。
上次的JetsonNano产品介绍也错了,是没有板载eMMC的版本

pATAq 发表于 2020-4-22 02:32:32

Vibranium 发表于 2020-4-21 12:55
期待楼主,是什么悲惨经历呢【好奇】
头都要难秃了,很悲惨。这才是一部分。。。

pATAq 发表于 2020-4-22 02:33:30

77 发表于 2020-4-21 10:12
明明都是中文 我都看的懂 为啥···连起来我就是看不懂呢

可能我九年义务教育学的比较秀吧

77 发表于 2020-4-22 10:14:44

pATAq 发表于 2020-4-22 02:31
总结一下,DFRobot产品介绍页面电调的配图错了。
上次的JetsonNano产品介绍也错了,是没有板载eMMC的版本
...

我去反馈一下
页: [1]
查看完整版本: MTO1804无刷电机引发的悲惨经历之一:起底神秘的无名电调