模吧

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

8623查看 | 4回复

DIY功能强大,超轻重量的小机无刷电调- BLHeli详解

[复制链接]
发表于 2013-10-11 22:34:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
BlHeli开源电调代码-背景篇
最近玩FBL100,到了炎夏准备改无刷电机时发现用市面上电调的效果都很不好,试过华科尔的10LT,以及AOE无刷转换器+6A电调,都是油门1/3位置才能启动,到了2/3位置就满油门了,而这些电调都无法编程改变设置,导致fbl100改无刷很不顺,郁闷之际,看到了国外helifreak论坛用xp 3a/7a/12a电调自己刷程序自制mcpx无刷电调的帖子,进过一番研究,读完了长达79页的帖子后学到了不少电调改良的技巧。
这一周在fbl100gcp/minicp的试验结果也证明了这个程序非常强大。论坛里其实已经也有其他人了解这个Blheli的帖子并自制电调成功,不过由于各种原因都不怎么分享,我认为这违背了原作者Steffen开源代码的精神,独乐乐不如众乐乐,下面这个帖子将这个BLHeli的开源电调项目给国内的模友分享,所有的功劳都归功与老外网友Steffen(helifreak论坛id: sskaug), 活雷锋不多见了,还是老外呢
最初项目是用在采用Atmega8单片机的电调上,比如华科尔的10LT电调:http://www.helifreak.com/showthread.php?t=357151
由于采用Atmega8单片机的电调都不便宜也比较难找,稍微容易买到的华科尔电调,其MCU也被头脑有病的华科尔锁了芯片,要刷程序需要买个空白的MCU替换,焊接难度相当大,所以原作者Steffen又找市面比较便宜的3A电调进行试验,最终将程序移植到成本低廉的C8051F单片机电调上,最终大大降低了DIY电调的成本和可操作性,英文好的模友请自行阅读下面的帖子,可以更好的了解原作和刷电调成功的国外模友的结果
http://www.helifreak.com/showthread.php?t=390517

BLHeli程序支持的功能:
- 更好的支持无刷尾电调,避免用SR120导致尾重的效果(除了3D高手,一般人改尾无刷没有太大的必要。但是改了之后确实可以使小鸡在侧翻滚时更好地保持前后平衡,所以是否改尾无刷取决于你的飞行水平是否足够高J
- 主无刷支持定速模式- 这个很强大,将高档电调才有的定速移植到小鸡,使暴力3D时可以有效地避免电机掉转速,不过定速模式需要很大功率的电机(至少hp05s以上)才有足够的功率余量来让定速发挥作用,所以用一般的c05m电机实际意义不大。还有,由于不是用测旋翼头转速来实现定速,这个定速模式可以看做是一种仿真定速或者伪定速。不过无论如何,开启了定速绝对可以让各种飞行保持高度更稳定,这点就足以秒杀市面上其他小鸡无刷电调(当然卖mcpx电调的商家也会抄袭这个程序出改进版的mcpx电调)
- 可以用遥控器对电调参数编程这点也可以市面上其他小鸡无刷电调的厂家回去面壁三天了;此外有其他网友提供的电脑用编程界面,可以在电脑上很方便的设置电调参数,使笔记本成为编程卡,比用遥控器编程更加直观快捷
-
可以自己DIY出超轻的电调(<0.4g--小鸡减轻重量很有用,即使零点几克的减肥也足以让翻滚更好操控
-
支持MCPX v1v2 –这个程序可以自动识别1khz-12khzPWM有刷信号,经过我的实际测试,可以覆盖所有的迷你机:FBL100(12Khz), Mcpx V1(8Khz), Mcpx v2(1Khz), Genius CP/mini cp(据说是2Khz)
- 不需要额外的有刷转换电路- BLHeli程序即可实现有刷信号识别并控制无刷电机,市面上的类似电调比如华科尔的 10LT都要一个单独有刷转无刷电路,弱爆了。
- 最新试验表明 , Blheli除了可以识别mcpx/fbl/cp之类的有刷输出信号,也可以识别PPM无刷信号,在120d02s之类的接收机也可以正常使用 -- 同时兼容有刷和无刷输入,最强电调有木有:em26:
要尝试用BLHeli代码自己DIY电调的,需要符合下述条件
1.有一定焊接能力:如果用xp 7a/12a来刷,焊接水平要求较低;打算用3a电调来diy超轻电调的则需要比较好的焊接能力(主要是MOS管很小,还要叠焊,如果焊接手艺不过关,容易虚焊并烧MOS管)
2.闲得蛋疼: 工作太忙的还不如等t少、c少之类的js知道这个刷电调原理后再找他们买,出点钱,省点时间买个功能强大的电调也很值
3.买了FBL100需要改无刷电机的: FBL100PWM信号与其他小鸡差别较大,用市面的无刷电调线性很差
4.买不到华科尔10LT电调的:自己动手,丰衣足食

 楼主| 发表于 2013-10-11 22:35:13 | 显示全部楼层
硬件篇- 电调选择
原帖列出可用的电调如下:Supermicro 3.5A DP3A, XP 3a, XP 7a, XP12aTurnigy6A
实际上只要是采用Silicon Labs出的c8051f330单片机的电调都可以用来改装,所以看一下手头上的电调,如果是20脚封装标号为”SIL f330 xxxxx”的芯片就可以用了。
这些芯片其实都是类似的电路,价格有差别在于是否可以编程以及所用的MOS管是否好。对于自己换MOS管来刷的模友,找最便宜的就足够了,换成好的MOS管,可以DIY出比华科尔10LT硬件特性更好的电调,这里说一下,虽然华科尔的产品质量很糟糕,其硬件确是一流的,比mcpx好很多,电调选用的mos特性最好,三轴芯片也远好于mcpx. 但这也说明了硬件再好,没有好软件设计人员,产品依然不行。用很烂的3a电调刷BLheli程序可以得到比市面上任何小鸡电调更好的效果,就是一个很好的例子。我一开始用xp3a刷, 最后用30元的便宜电调(淘宝找DYaS 3A电调)来改,效果也是杠杠的。
下面的电路板图中,白圈的焊点连到编程器/下 载器的C2D接线,红圈焊点连编程器/下 载器的C2K, 黑圈焊点接编程器/下 载器的GND
DP3a,最烂的3电调,换好的MOS管就变成最好的电调:
DIY功能强大,超轻重量的小机无刷电调- BLHeli详解 无刷电调比较 作者:121341443 6693 2012-9-16 08:48 上传
下载附件 (15.62 KB)
dp3a



xp3a, MOS管不好不坏,叠焊6个好的MOS就够了:
DIY功能强大,超轻重量的小机无刷电调- BLHeli详解 无刷电调比较 作者:121341443 7252 2012-9-16 08:52 上传
下载附件 (11.71 KB)
xp3a




xp7a, 用7a和12a不增加mos管也可以足够电流支持mcpx/cp,但是低压特性不好:
DIY功能强大,超轻重量的小机无刷电调- BLHeli详解 无刷电调比较 作者:121341443 7095 2012-9-16 08:53 上传
下载附件 (16.99 KB)
xp7a





xp12a:
DIY功能强大,超轻重量的小机无刷电调- BLHeli详解 无刷电调比较 作者:121341443 6958 2012-9-16 08:55 上传
下载附件 (36.84 KB)
xp12a




Turnigy 6a, 鸡肋,如果不是手头有,不要选这个:
DIY功能强大,超轻重量的小机无刷电调- BLHeli详解 无刷电调比较 作者:121341443 8390 2012-9-16 08:55 上传
下载附件 (38.8 KB)
tunigy6a




DYS 3a, 最便宜的电调,国外买不到,国内玩家的福气:em15: (从上至下4个焊点分别是C2D, C2K, VCC, GND --由于飞机给电调供电,所以VCC不需要接出引线):
DIY功能强大,超轻重量的小机无刷电调- BLHeli详解 无刷电调比较 作者:121341443 2683 2012-5-2 13:09 上传
下载附件 (13.8 KB)
dys3a



好盈10A也是用c8051f330 单片机,有模友刷blheli也可以正常使用(参见218楼)
DIY功能强大,超轻重量的小机无刷电调- BLHeli详解 无刷电调比较 作者:121341443 4007
 楼主| 发表于 2013-10-11 22:36:45 | 显示全部楼层
刷机篇- 编程器和刷程序软件
原作推荐的刷程序工具是Silicon Labs出的原版C8051编程器ToolStick, 18美元一个。在我们这个山寨大国,当然可以找到更便宜的,只要在万能的淘宝找”c8051 仿真器就可以找到,由于并口笔记本基本已经取消,最好选usb口的(当然如果机器支持并口,那就可以选十来元的并口下 载器),选择的便宜就行(我买的就是4x元的山寨伪劣产品,按照tf-4所说的,只要不是吃的东西,买山寨产品没有问题:em17: )

电调和编程器连接用C8051C2接口即可,只需要连接3根线。实际上,所有电调的电路板都会留好编程用的焊点,找到C2D, C2KGND三个焊点连接到编程器对应的接脚,然后给电调供电,就可以用下 载器软件刷程序。
DIY功能强大,超轻重量的小机无刷电调- BLHeli详解 无刷电调比较 作者:121341443 3187 2012-9-16 09:10 上传
下载附件 (39.54 KB)



我买的是U-EC6编程器,引出第4(C2D),7(C2K), 9(GND)脚然后焊个mini jst舵机母头,以后就可以很方便与电调连线刷程序或者改参数

DIY功能强大,超轻重量的小机无刷电调- BLHeli详解 无刷电调比较 作者:121341443 327
2012-9-16 09:10 上传
下载附件 (51.38 KB)



同时建议将电调上的这三跟编程用的线用mini jst舵机接口引出,这样可以方便将来随时更新新版的BLHeli程序或者改参数调机
DIY功能强大,超轻重量的小机无刷电调- BLHeli详解 无刷电调比较 作者:121341443 2249 2012-9-16 09:10 上传
下载附件 (73.46 KB)




所有的仿真器都会附带自行开发的下 载软件,但是最好还是用Silicon Labs自己出的下 载器软件: http://www.silabs.com/Support%20Documents/Software/UtilDLL.exe
安装后界面如下,选择USB Debug Adapter再点击Connect按钮就可以连上电调,然后点击上方的”Flash Erase”页面可以将原来的所有程序清除,点击上方的Download Hex File/Go/Stop”页面选择正确版本的BLHeli程序刷电调即可。


DIY功能强大,超轻重量的小机无刷电调- BLHeli详解 无刷电调比较 作者:121341443 8007 2012-5-2 07:58 上传
下载附件 (65.74 KB)




过我个人建议用另一个网友开发的一个图形刷机程序--BlHeli-Setup:刷新Blheli程序、修改设置都可以在一个图形界面进行,可以将电脑变为电调的编程卡,使用非常方便,目前最新的beta我试过没有问题,可以支持3.2版的BlHeli程序下 载
这个图形刷电调程序博客在: http://www.helifreak.com/blog.php?u=144146
,
点击最新的BlHeliSetup3000_EarlyBeta.zip下 载再解压并运行里面的exe即可使用
使用说明如下图 。 如果是新电调,可以点击"Flash BlHeli Hex File"按钮来刷BlHeli程序到电调。 已经刷过BlHeli程序的,如果要修改参数,只需要先点击“Read Setup"读出电调的设置,然后移动中间的各种配置滚动条,再点击"Write Setup"将修改写回电调即可修改电调参数;点击"Targe Go!"按钮可以让电调重启并应用修改后的参数,无需让飞机重新上电。
DIY功能强大,超轻重量的小机无刷电调- BLHeli详解 无刷电调比较 作者:121341443 2713 2012-9-16 09:10 上传
下载附件 (69.91 KB)




BlHeli的源代码可以在github找到:
https://github.com/bitdump/BLHeli
点击页面里的ZIP按钮可以下 载到最新的源码和编译好的二进制文件,用下 载器软件下 载相应的hex文件即可刷电调,对于非dp/xp电调,选择DP电调用的HEX文件就行了,比如主电调可以刷DP_3A_MAIN_REV3_2.HEX
尾电调可以刷DP_3A_TAIL_REV3_2.HEX,不同厂家版本的3A电调其实都通用(但是对7A/12A电调刷3A程序由于F330输出管脚使用不同,会烧MOS管),只是低电压检测可能不起作用而已

下面是一个实际刷机的连线图:先将电调事先焊好的刷机线(中间mini jst舵机线三根)连接到下 载器引出的舵机母线(C2接口);然后给三轴接收机接上电池(遥控不需要开机,三轴接收机的正负极应该与电调的正负极焊好,给接收机通电只是为电调供电而已);下 载器连接到电脑的USB接口;运行BlHeli-Setup程序,点击相关的按钮可以读出或者电调内的设置或者直接刷入BlHeli程序。由于电调与下 载器只用到C2接口的三根线(VCC没有连接),所以通电时可以热插拔断开电调与下 载器的连接
DIY功能强大,超轻重量的小机无刷电调- BLHeli详解 无刷电调比较 作者:121341443 6396
 楼主| 发表于 2013-10-11 22:40:34 | 显示全部楼层
硬件篇- 改良MOSFET管选择
改良3A电调很简单,叠焊3个N沟道(上面一排3个)和3个P沟道(下面一排)即可实现电流加倍,内阻减半的良好效果。helifreak论坛相关帖子甚至有网友叠焊了3套MOS管,用于hp06v2这样的超暴力电机也没问题:em01:
DIY功能强大,超轻重量的小机无刷电调- BLHeli详解 无刷电调比较 作者:121341443 5045
至于选择MOS管的原则,关键不在于MOS的电流(只要大于3a,两个叠焊就足够任何小鸡用了),而在于选择MOS管内阻(2.5v下内阻参数越小越好),所以说选择任何型号的mos都不是问题。
原作者推荐的是DMN2041(N沟道)和DMP2035(P沟道),这两个在淘宝可以找到,是否正品就不得而知了:em25:
对于现有电调,原作者也给出详细的对比参数,看参数表就知道内阻越小的MOS,输出到电机端的电压越大,即使只有零点零几v的电压差别,对与低压工作的迷你电直都是影响很大的,有些模友说低压时锁尾不好,飞行时间不如别人的久,其实就跟电调有关联。顺便提一下,如果为了美观而用免焊接的插头,那用再好的mos也是脱裤子放屁,因为MOS 管顶多减少几十毫欧姆的内阻,输入电源盒输出电源的两套接口就足以增加了额外几百毫欧姆的电阻了。所以最好将输入电源直接焊到电调上,电机线也直焊到电调输出端,这样才能达到最好的飞行效果
附件外围常用迷你机电调MOS参数对比,表中可见xp12a和华科尔10LT的MOS管最好,但是xp12a不是专门针对1s电设计的,所以实际低压特性并不好,华科尔的电调硬件特性最好(那些盲目崇拜mcpx的该醒醒了。当然,过分强调硬件,忽视软件开发也是国产产品的致命弱点)。DIY电调除了增加电调定速,另一个优点就是:只要自己选择好的MOS管改装,烂电调也能变成低压工作很好的超级电调,表中用xp3a作为例子,原版的xp3a在3.5v电池输入时,供给电机的电压是3.14v;将MOS管替换为低内阻的DMN2041和DMP2035, 电调输出电压提高到3.28v;采用两套DMN2041/DMP2035叠焊并联,那么输出电压就提高到3.39v:em24:
DIY功能强大,超轻重量的小机无刷电调- BLHeli详解 无刷电调比较 作者:121341443 6887

关于定速设置
部分模友误以为定速就是简单讲油门曲线设置为一条横线,所以电调的线性无所谓。这种理解是错误的。定速是由电调来根据旋翼头的转速变化来动态修改油门输出(遥控器的油门控制无效),使旋翼头保持几乎不变的转速,所以要达到这个效果,三轴接收机的输出和电调在高油门区域必须有好线性。否则电调根据转速的变化补、减油门的动作将会无法修正旋翼头转速
举例来说。自己在遥控将油门设为80的一条直线,并不是定速,因为随着动作的变化,电机负荷变化,同样的油门输出,转速会随负荷变化而变化,所以定油门!=定速。也就是定速须由三轴接收机(比如v8之类的)或者电调提供这个功能才可实现。Blheli的强大在于引入了高档电调才有的定速功能。但是需要注意的是
1. 最好的定速实现需要物理检测器来实时监控旋翼头转速,并将检测值传入电调或者接收机进行修正。Blheli并没有物理检测接口,按照更专业模友的解释,BlHeli程序应该是检测无刷电机的换向周期知道电机的真实转速,并动态修改油门输出实现旋翼头转速(headspeed)恒定的目的。
2. 定速还依赖于电机的功率,用c05m,hp03s这类电机本身在做3d动作即使满油门都会不够功率而掉转速,所以无论用什么电调定速功能都不可能保证这样的电机能够在大动量动作保持旋翼头转速恒定,因此对这类电机定速功能只能在悬停或者温柔 3d有效。要更好的定速,只能买hp05s甚至hp06v2,电机有足够的功率余量,BLHeli的定速功能才会发挥最大效用  

BlHeli提供了Tx, Armed, Setup三种模式来设置定速。
1. Tx模式下的定速设置我还没完全掌握,大致是将遥控的油门曲线设置为一条横线,电调检测到后就以该油门的初始转速作为定速目标值
2. Armed模式下,开机的时候电调会检测三次设置来获取目标定速值,因此可以利用normal的油门曲线来设置两种不同的定速值,Helifreak一个模友提供的方法如下
比如要设置70和80l两种定速,可以将Norml的油门曲线设置 为 0-70-70-70-80 ;Idle1的油门曲线设置为 100-80-60-80-100 。
当需要用70的定速飞行时,可以如下操作:
a)遥控开机, normal模式, 0油门, 切油门锁定开关 .  
b)电调(飞机)通电, 等电调响3声
c)油门锁定关闭
d) 油门摇杆移动到中间, 电调响1声低音
e)油门摇杆回到最低, 电调响1声高音(进入armed模式)
f)切油门锁定开关
g)切换到idle模式同时将油门摇杆置中(0度螺距,避免后面关闭油门锁定时飞机突然暴起)
h)油门锁定关闭,起飞
同理,如果打算以80的定速飞行,可以用上面a-h同样的步骤,只是在第d)步是将油门摇杆移到最高(让电调读到80的油门设置)即可

3. Setup模式最简单,电调以Governer Setup Targe的值为定速目标值,遥控的油门曲线会被忽略

DIY功能强大,超轻重量的小机无刷电调- BLHeli详解 无刷电调比较 作者:121341443 7921 2012-9-16 09:12 上传
下载附件 (74.19 KB)



需要注意的是,3.x 版之前设置了定速是没法取消的,可能会导致如果降落不慎,飞机掉入草丛里就会高速剪草,损失可想而知:em14: 。3.x版就此增加了新功能,如果电调检测到油门在20%以下会自动取消定速,这样降落时可以实现转速缓慢降低再熄火。所以建议最好刷最新版的代码


FAQ
Q 刷机有风险吗

Ans:  当然有,烧MOS管别找我:em15:

Q.Input Polarity有什么用
Ans: 如果在cp或者fbl100用BlHeli电调,需要注意他们的输出电机信号极性与mcpx刚好是反相的,这也就是为什么有的人在mcpx可以用华科尔主电调,到了cp却只能用华科尔的尾电调(华科尔就是奸商,为了卖两套电调,故意将主尾电机输出信号反相)。解决方法一是将电调从接收板的MOS输入端取信号而不是从电机接口(MOS输出端)取信号; 解决方法二就是将Input Polariy设置为"Negative" --- 可编程的电调就是好,就是好:em24:

Q. 华科尔的电调为什么不能编程
Ans: 如上,因为不能将电调分成主电调和尾电调两套来卖:em01:

Q.可以用在什么机上,九鹰小鸡可以吗
Ans:原帖是在Mcpx上测试的,我自己试过Fbl100(效果很:http://bbs.5imx.com/bbs/viewthread.php?tid=611671&extra=page%3D3),Genius CP(貌似到了2/3就满油门了,有空再找一下原因)和Mini CP(线性很好)。 九鹰我没有,不知道效果,理论上也是可以的,除非九鹰使用了12khz至20Khz之间的PWM频率(你也可以自己改程序来识别:em21: )

Q. 什么是MOS叠焊,为什么要这么做
Ans:就是将两个相同的MOS管并联。MOS管并联可以增加电流供应能力(两个并联电流加倍,三个并联x3),同时降低内阻(两个并联 降低一倍,三个并联内阻变为1/3). DIY功能强大,超轻重量的小机无刷电调- BLHeli详解 无刷电调比较 作者:121341443 5020 2012-5-2 08:36 上传
下载附件 (19.81 KB)



华科尔之类的成品电调也是采用两套相同的MOS管并联来实现加大电流和降低内阻值,但是由于3A电调板空间小,只能用一个垒一个的方法进行--“叠焊”。 由于MOS管本身的塑胶封装有足够好的散热性,只要上下两个MOS贴紧,就可以把下层MOS的热量通过上层MOS散发出去











发表于 2017-3-19 06:44:51 | 显示全部楼层
好长,但是实在
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|关于模吧|APP下载|广告报价|小黑屋|手机版|企业会员|商城入驻|联系我们|模吧 ( 冀公网安备13080502000084号 )

© 2013-2020 Moz8.com 模吧,玩出精彩!