基础知识
电调
- ESC代表电子速度控制器,简称为电调。电调从飞行控制器接收油门信号,并以所需速度驱动无刷电机。
电调固件
- 电调固件是在每个电调上运行的软件,它确定电调的性能,支持的协议以及可以使用的配置接口。电调可以使用的固件取决于硬件。
- SimonK:最古老的两种开源电调固件之一,已经过时不再更新。
- BLHeli:最古老的两种开源电调固件之一,由于其广泛的功能和友好的用户界面而变得流行。
- BLHeli_S:BLHeli固件的第二代。专门为具有Busybee处理器的电调开发。
- BLHeli_32:第三代和最新一代BLHeli固件。专门为32位电调编写,不再开源。
电调处理器
- 市场上大多数电调使用ATMEL、Silabs和ARM的处理器。不同的处理器具有不同的规格和功能,并且受不同的固件支持。
- ATMEL 8位:支持SimonK和BLHeli固件。
- SILABS 8位:支持BLHeli或BLHeli_S固件。
- 主要处理器是F330和F39X系列的F390和F396。
- Busybee处理器是F330和F39X的升级。有BusyBee1(EFM8BB10F8)和BusyBee2(EFM8BB21F16)两种。
- ARM 32位:支持BLHeli_32固件。
电调协议
- 电调协议是飞行控制器和电调用于通信的语言,决定了信号从飞控到电调的发送速度。
- 四轴飞行器使用的电调协议及信号宽度
- Standard PWM :1000us – 2000us
- Oneshot125:125us – 250us
- Oneshot 42:2us – 84us
- Multishot:5us – 25us
- Dshot
- Dshot150 :106.8us
- Dshot300 :53.4us
- Dshot600 :26.7us
- DShot1200:13.4us
- ProShot
电调BEC
- BEC表示 电池消除电路,本质上是电压调整器。作用是将主电池组的电压降压到5V输出。
- 通常内置在电调中,消除了为5V电子设备供电所需的单独电池的麻烦。
BLHeliSuite
手册
- BLHeliSuite的手册位于BLHeliSuite的Manuals目录
- BLHeliSuite的手册主要文件内容:
BLHeli manual xx xx.pdf
:Atmel MCU和SiLabs MCU的电调的参数BLHeli programming adapters.pdf
:适配器的制作和使用BLHeli supported xx ESCs.pdf
:支持的Atmel和SiLabs电调的图片及参数BLHeliSuite 4w-if interfaces pinout.pdf
:Arduino板上用于Atmel/SiLabs电调的BLHeliSuite的4w-if的引脚配置BLHeliSuite 4w-if protocol.pdf
:用于Atmel/SiLabs电调的BLHeliSuite的4w-if的通信协议
适配器
首次刷新电调固件
- SiLabs MCUs电调支持以下适配器
- Arduinos:使用
SILABS C2 (4way-if)
接口。初次使用Arduinos作为适配器时需要对Arduinos进行编程烧录。 - SiLabs Toolstick:使用
SILABS C2 (Toolstick)
接口。 - USB Flashing stick:使用
SILABS C2 (Toolstick)
接口。 - BLHeli Skywalker stick:使用
SILABS C2 (Toolstick)
接口。
- Arduinos:使用
- Atmel MCUs电调支持以下适配器
- Arduinos:使用
ATMEL ISP Interface (AVRDude)
接口。初次使用Arduinos作为适配器时需要对Arduinos进行编程烧录。 - USBasp:使用
ATMEL ISP Interface (AVRDude)
接口。
- Arduinos:使用
刷新电调引导程序
- 刷新电调引导程序为BLHeli主要有
USB/Com
和4way-if
两种类型的接口。 - Arduinos(4way-if):使用
SILABS BLHeli Bootloader (4way-if)
或ATMEL BLHeli Bootloader (4way-if)
接口。使用Arduinos作为适配器时需要对Arduinos进行编程烧录。 - Arduinos(USB/UART 1-Wire bridge):使用
SILABS BLHeli Bootloader (USB/Com)
或ATMEL BLHeli Bootloader (USB/Com)
接口。使用Arduinos作为适配器时需要对Arduinos进行编程烧录。 - Favourite stick:使用
SILABS BLHeli Bootloader (USB/Com)
或ATMEL BLHeli Bootloader (USB/Com)
接口。 - FTDI stick:使用
SILABS BLHeli Bootloader (USB/Com)
或ATMEL BLHeli Bootloader (USB/Com)
接口。 - Multistar stick:使用
SILABS BLHeli Bootloader (USB/Com)
或ATMEL BLHeli Bootloader (USB/Com)
接口。
背景说明
- 适配器:Arduino Nano ATMEGA328P
- 电调:主控芯片SIL F330,功率管AON6504,供电1-4S,电流20A-30A,无BEC
操作说明
前期准备
- 下载Arduino Nano所用的USB转串口芯片CH340C的驱动程序CH341SER.ZIP,安装驱动。
- 下载BLHeliSuite,一般下载
BLHeliSuite16714902.zip
即可。 - 根据电调外观和信息,查阅手册
BLHeli supported xx ESCs.pdf
以确定电调型号。或者根据电调PCB确定电调的主控芯片型号。 - 根据电调的主控芯片型号,查阅手册
BLHeli programming adapters.pdf
以确定需要用到的适配器和接口,以及适配器的制作方法。 - 根据所使用的适配器和所需操作使用的接口,查阅手册
BLHeliSuite 4w-if interfaces pinout.pdf
以确定引脚连接。
制作适配器
- 连接适配器和电脑,打开BLHeliSuite。
- 点击Make interfaces标签页。
- 点击Port选择USB-SERIAL CH340 对应的端口,点击Arduino Board选择Nano w/ ATmega328开发板,点击Baud选择115200波特率,点击Arduino 4way-interface。
- 点击OK,选择最后一个文件后点击打开。
- 点击Yes。
- 等待烧录Arduino,出现Arduino flashed sucsessfully by Avrdude表示已成功将Arduino Nano烧录为适配器。点击OK。
连接电调
- 连接适配器和电调(VCC GND C2D C2CK)。
- 点击Select ATMEL/SILABS Interface选择SILABS C2 (4way-if)接口。
- 点击SiLabs ESC Setup标签页。
- 点击Port选择USB-SERIAL CH340 对应的端口,点击connect,点击Read setup读出电调参数设置。
- 出现setup read successfully表示已成功连接到电调并读取到电调的参数。点击OK。
刷新固件
- 点击Flash BLHeli
- 在弹出的窗口中选择固件名称、固件类型(MAIN:直升机主桨;TAIL:直升机尾桨;MULTI:多桨)、固件版本,点击OK。
- 点击Yes。
- 等待烧录固件,出现sucsessfully表示已成功将电调固件烧录到电调。点击OK。在下一个弹出的窗口中点击Yes。
调整参数
- 点击ESC Setup选择Save Setup to ini file 以备份电调当前的参数。
- 修改电调参数。降低启动功率,降低电调输出的PWM频率,开启低转速功率保护。
- 点击Write setup将参数写入电调。
多轴编程参数表
电调参数说明,详见官方手册
BLHeli manual xx xx.pdf
英文参数 中文参数 参数说明 Startup power 启动功率 启动时允许的最大功率,实际的功率取决于油门的输入。 Motor timing 电机进角 通常设置中进角即适用于大部分电机,但如果电机运转不顺畅时,可以尝试改变进角。 Demag compensation 消磁补偿 防止电机换向后消磁时间过长而引起的电机停转。补偿值越高,保护越好。但补偿值太高,会降低最大功率。 Motor direction 电机转向 在双向模式下,油门中点为零点,中点以上为正转,中点以下为反转。 Startup Beep Volume 蜂鸣器音量 设置正常运行下蜂鸣音量。 Beacon/Signal Volume 信标音量 设置信标的音量。如果零油门信号的时间超过一个设定的时间,电调控制马达发出警报声。以便于找回丢失的飞行器。 Beacon delay 信标延迟 设置信标开始发出之前的延时。 PPM Min throttle;
PPM max throttle;
PPM center throttle最小油门;
最大油门;
中位油门设置电调的油门行程量。中位油门只用于双向模式。正常情况下, 油门信号值在1000us-2000us之间。 对于其他数值输入信号, 则需要做相应比例换算。 Temperature protection 温度保护 温度保护阀值可以设置为80℃-140℃。 Low RPM power protect 低转速功率保护 禁用可以保证低KV电机在低电压运行时实现全功率。但是禁用后会加剧同步丢失的风险,导致烧坏电机。 Brake on stop 停车制动 在通电状态,零油门时会有刹车功能。如果油门没有零点,此项设置无效。 Closed Loop Mode 闭环模式 设置控制环的运行速度范围。在闭环模式下,运行时的油门值对应电机的转速目标。关闭时将禁用控制环。 Closed Loop P-Gain 闭环比例增益 设置转速控制环的比例增益。控制从速度误差到电机功率的增益。 Closed Loop I-Gain 闭环积分增益 设置转速控制环的积分增益。控制从积分速度误差到电机功率的增益。 Motor Gain 电机增益 缩放给定输入施加到电机的功率。仅适用于PWM输入,对PPM输入则无效。会限制电机的最大功率。 PWM Output Dither PWM输出抖动 增加电机PWM关闭周期的长度。减少在PWM频率等于电机换向频率的谐波的转速区域中的问题,并且可以减少达到全油门的步进。不适用于闭环模式。 PWM Frequency/Damped PWM频率/阻尼 设置电调输出的PWM频率。高PWM频率约为20kHz,低PWM频率约为8kHz,轻阻尼模式始终使用高pwm频率。低频率PWM减小了到满功率的步进。轻阻尼模式会增加电机的损耗,从而加快减速速度。 Enable PWM Input 启用PWM输入 如果禁用,则仅接受1-2ms 脉宽的PPM和 OneShot125(125-250us)作为有效输入信号。启用后支持1kHz,2kHz,4kHz,8kHz和12kHz 的PWM输入信号。 Input Polarity 输入极性 用于反转油门。与提供负PWM的接收器一起使用。使用PPM输入时,必须将其设置为正。
注意事项
- 据说电调名称所写的FVT Littlebee 20A并不是真实型号,升级固件可能导致电调烧毁。
- 电调在驱动电机运转前需要执行解锁序列以进行解锁
- 上电时, 电调发出3声蜂鸣声。
- 当检测到油门信号时, 发出一声低音。 表示解锁信号序列开始。
- 当油门减小到零时, 发出一声高音。 表示解锁信号序列结束。
- SILABS电调接口标号为A、B、C、D,Atmel电调接口标号为1、2、3、4、5、X。通过接口所对应的标号,可以在Make interfaces界面方便快捷的得知需要制作的适配器。
- 在使用Arduino Nano w/ ATmega328P作为适配器时。如果Arduino Nano使用的是旧版的引导程序,波特率设置为57600;如果Arduino Nano使用的是新版的引导程序,波特率设置为115200。
参考资料
- FPV无人机ESC购买指南-Oscar Liang
- ESC固件和协议概述-Oscar Liang
- 直流无刷电机工作原理
- 无刷电机和电子调速器(ESC)是如何工作的
- PPM信号介绍
- Arduino 开发板介绍及对比
- 用arduino uno R3做Blheli编程适配器编程航模电调
- BLHeli无刷电调固件烧写及调参(解决电机低速抖动及正反转)
- BLHeli无刷电调 调参介绍 某宝八元电调
- 懒人免焊接傻瓜包会从零开始给电调刷BLHELI固件
- MTO1804无刷电机引发的悲惨经历之二:电调固件刷新与优化
版权声明:本文为「梦幻之心星」原创,依据 CC BY-NC-SA 4.0 许可证进行授权,转载请附上原文出处链接及本声明。
博客园地址:https://www.cnblogs.com/Sky-seeker
微信公众号:关注微信公众号,获取即时推送