前言
首先十分感谢B站TASKBL up主的视频教程以及他的耐心指导,视频链接Skye 原机主板刷BetaFlight 参考教程_哔哩哔哩_bilibili。整个改造过程耗时三天,现把改造过程以及遇到的一些问题记录下来。
1.材料清单
ST-LINK V2下载器、USB数据线、电烙铁、杜邦线及插针若干。
2.电路改造
拆下5颗固定螺丝,用电烙铁焊除4根电源线,取下整块电路板。
主板底面需要拆除一颗8脚芯片——SN65HVD232D,因其会影响USB烧写,然后如图将其中四个引脚引出,其中
USB_DP——USB数据线绿线
GND ——USB数据线黑线
VCC ——USB数据线红线(这里最好用AMS1117-3.3将USB的5V转为3.3V,因为芯片供电是2.6-3.6V)
USB_DP——USB数据线绿线
可以采用4P接口,方便拆装操作,USB数据线与电脑连接进行调试。
下一步去除图中4颗螺丝,拆开主板正面对应的小黑块(小心排线),去除里面的加热片,因为刷完BF之后其会一直加热烧坏芯片。拆除之后可用热熔胶或者704硅橡胶把里面填充一下。
SN65HVD232D封装图如下
3.烧写Betaflight固件
硬件改造完成后,就可以开始往主控里烧写程序啦~
将ST-LINK下载器的引脚与SWD下载接口连接,对应关系如图所示。
将下载器插入电脑,打开STM32 ST-LINK Utility软件,点击连接;
相关资料下载链接:百度网盘 请输入提取码
提取码:lw5f
点击Target》Program...;
打开Betaflight固件hex文件(在网盘链接文件中),点击烧写。这里笔者使用的是4.0.0固件,高版本的固件无法启动笔者的电机,不知其他机器如何。
烧写完成就可以将ST-LINK断开连接了,进入下一步Betaflight设置。
4.Betaflight飞控设置
打开Betaflight Configurator调参软件,将之前接好的USB数据线连接电脑,选择对应端口,点击连接;
没有开始设置之前是这样的界面,主控没有识别到传感器,所以需要进行CLI命令行调试。
点击CLI(命令行),将下面的命令粘贴,回车执行命令,之后输入save,回车保存配置;
CLI命令段:
# start the command batch batch start board_name STM32F405 manufacturer_id STM32F # name: STM32F # resources resource MOTOR 1 B06 resource MOTOR 2 B09 resource MOTOR 3 B08 resource MOTOR 4 B07 resource SERIAL_TX 1 A09 resource SERIAL_TX 2 A02 resource SERIAL_TX 4 A00 resource SERIAL_TX 6 C06 resource SERIAL_RX 1 A10 resource SERIAL_RX 1 A10 resource SERIAL_RX 4 A01 resource SERIAL_RX 5 D02 resource I2C_SCL 2 B10 resource I2C_SDA 2 B11 resource LED 1 A08 resource BEEPER 1 B05 resource SPI_SCK 1 A05 resource SPI_SCK 2 B13 resource SPI_SCK 3 C10 resource SPI_MISO 1 A06 resource SPI_MISO 2 B14 resource SPI_MISO 3 C11 resource SPI_MOSI 1 A07 resource SPI_MOSI 2 B15 resource SPI_MOSI 3 C12 resource ADC_BATT 1 C02 resource ADC_CURR 1 C01 resource BARO_CS 1 A15 resource FLASH_CS 1 B12 resource GYRO_EXTI 1 C07 resource GYRO_CS 1 B12 # master set gyro_lowpass2_hz = 300 set dyn_lpf_gyro_min_hz = 240 set dyn_lpf_gyro_max_hz = 600 set acc_calibration = -34,198,-36,1 set mag_spi_device = 1 set mag_hardware = NONE set baro_spi_device = 3 set mid_rc = 1520 set min_check = 1200 set rc_smoothing_derivative_type = BIQUAD set serialrx_provider = SBUS set adc_device = 2 set blackbox_p_ratio = 4 set min_throttle = 900 set motor_pwm_protocol = OFF set failsafe_throttle = 1100 set failsafe_procedure = AUTO-LAND set current_meter = ADC set current_meter = ADC set battery_meter = ADC set beeper_inversion = ON set beeper_od = OFF set yaw_motors_reversed = ON set deadband = 2 set yaw_deadband = 2 set pid_process_denom = 16 set system_hse_mhz = 8 set dashboard_i2c_bus = 1 set flash_spi_bus = 2 set gyro_1_bustype = SPI set gyro_1_spibus = 2 set gyro_1_sensor_align = CW0FLIP set gyro_1_align_pitch = 1800 profile 0 # profile 0 set dyn_lpf_dterm_min_hz = 84 set dyn_lpf_dterm_max_hz = 204 set dterm_lowpass2_hz = 180 set dterm_lowpass2_hz = 180 set acro_trainer_angle_limit = 25 set p_pitch = 110 set i_pitch = 135 set d_pitch = 92 set f_pitch = 171 set p_roll = 101 set i_roll = 128 set d_roll = 84 set f_roll = 162 set p_yaw = 72 set i_yaw = 135 set f_yaw = 144 set d_min_roll = 48 set d_min_pitch = 53 rateprofile 0 # rateprofile 0 set roll_rc_rate = 95 set pitch_rc_rate = 95 set yaw_rc_rate = 95 set roll_expo = 10 set pitch_expo = 10 set yaw_expo = 10 set roll_srate = 10 set pitch_srate = 10 set yaw_srate = 10 save
现在就可以识别到传感器了,更多命令可以参考GitHub - betaflight/betaflight: Open Source Flight Controller Firmware;
将无人机水平放置,点击校准加速度计进行调平;
端口设置里面,设置UART4波特率,启动UART5串行数字接收机(与SBUS接收机通信);
配置界面中,设置混控类型为Quad X 1234并打开反转电机转向,这样才与无人机的电机转向匹配;
电调协议为PWM,打开MOTOR_STOP,防止启动时发生意外;
接收机选择串行数字接收机,协议选择SBUS;
AIRMODE的作用是在零油门时依然能够维持飞机的姿态,但是会在飞机解锁后直接启动电机,建议开启。
PID参数按照默认即可,飞行很稳定;
Rate参数可按图中设置,使遥控器拨杆没有那么灵活,这款无人机较重不需要过大角度反馈;
后来又调节的一套PID,只调整了横滚、俯仰的P和D值
PID的作用概述:
1、P产生响应速度和力度,是I和D的基础
过小响应慢(虽然无震荡)
过大会产生振荡且不断发散
2、D抑制过冲和振荡,抵抗外界的突发干扰,阻止系统的突变。
过小系统会过冲
过大会减慢响应速度(虽然不引起过冲)
3、I在有系统误差和外力作用时消除偏差、提高精度,同时也会增加响应速度,产生过冲
过小时消除偏差的速度慢
过大会产生振荡
进入接收机界面,拨动摇杆,可以看到对应通道值的变化,摇杆低位阈值要设置的比油门最小值大一些,否则无法解锁;
设置解锁通道和自稳开关,对于新手来说一定要打开自稳开关,否则飞机很难控制;
其他模式可以自行摸索,这里给出一些说明(摘自翻译一些betaflight的东西 - 5iMX.com 我爱模型)
Horizon Mode (水平模式) :也是自稳模式,但是可以翻滚,感觉上和玩具的一建翻滚差不多。
Acro Mode或者Rate mode (手动模式或者比率模式) :根据遥控器杆的输入进行相应比率的动作。真正意义 上的飞行模式就以上三种:角度模式、水平模式、手动模式,其他均为辅助飞行的模式。
Beeper (蜂鸣器) :当你的通道输出某个值时,蜂鸣器会发声,如果设置了电调的话,电调也会发声。
Airmode (空中模式) :当油门]打到最低时,还可以控制飞机。如果配置表中勾选了即默认开启,并且在模式列表中隐藏。
Anti-Gravity (反重力模式) :1 飞行时模拟无重力。 通过检测油门]变化来实时干预PID参数中的|值运算,提供大机动大油门状态下的飞机l值的稳定性。
一般来说Airmode和Anti-Gravity默认开启, 增加飞行的顺滑。
Blackbox Start/Erase (黑匣子开启/清除) :名字很明显了。
Camera Control 1, 2, 3 (相机控制) : 基本用不到,没描述。
OSD Disable SW (OSD显示去除键) :去除屏幕上的OSD显示。
Pre-arm (预解锁) :为了防止解锁键误按,多设置一个开关键, 解锁后可以关掉。
Flip Over After Crash (反乌龟) :炸机后翻身,需要支持Dshot的电调。
VTX Pit Mode (图传降功率) :图传功率将会降到接近0,为了防止干扰其他玩家。需要图传支持OSD调参,并设置好。
Failsafe (失控保护) :手动进入失控保护,而不用等遥控器失控。需Betaflight另设置失控保护。
FPV angle mix (摄像头角度补偿) :简单的来说,就是穿越机的摄像头-般都是朝上一 个角度。这个摄像机角度轴线和机身轴线有一个角度。如果飞机以机身角度横滚,那么从你的摄像头里面看出去会混合一个俯仰角度进去, 因为两个轴线不重合。
Baro或alt hold (定高模式) :也就是barometer (气压计)的意思,使用气压计定高。
Telemetry (遥控信号) :资料找不到Headfree (无头模式或简单模式) :当机头朝某个方向解锁,则方向杆向上打则是飞往那个指向,此时打油方向杆机头会转动,但方向杆向上打还是往那个方向飞。
Headadj (头调整模式或超级简单模式) :不管机头往哪个方向朝,向杆向上打则是往你起飞点远处飞,向上打则是往你起飞点飞。(好像要GPS ,我只试过apm飞K控)Paralyze (瘫痪模式) :团队赛时,使用备用机,同时为了防止解锁坠毁的飞机。当在锁定时
可以启动,启动后关闭模式改变、图传改成不常用频段且低功率输出、关闭遥控信号。解锁时
会检测瘫痪模式是否开启。
Acro trainer (手动模式练习) :和手动模式-样,但是有角度限制,新手可以慢慢加大限制角度。
不装螺旋桨的情况下,打开我已了解风险,上电拖动滑块,对应通道的电机即可旋转。用手轻触电机侧面,判断电机转向是否与软件中相同;
所有设置已经完成了,现在即可试飞啦~
友情提醒:接非原装电池的话,只能2-3S电池,因为主板电压转换芯片耐压只有16V,4S电池会将其烧坏!
解锁电机前要把油门按到最低,起飞时缓慢抬油门(因为原装遥控器油门是自动回中的)。
5.更换遥控器方法
官方说原装遥控器只能遥控200m,所以笔者更换了其他遥控器。取下原装接收机,如图引出主控的SBUS引脚;
按照下图焊接取反电路,即可实现对接其他遥控器。
如图为3.3V焊点,5V电压可以使用L7805将电源降压获得。
6.焊接蜂鸣器
这一步可跳过,不影响实际飞行,只是方便飞手判断飞控状态。但是这一步焊接需要一定的焊功,引脚很容易粘连,一定要使用尖头烙铁!笔者就差一点翻车。如图焊接蜂鸣器电路即可。
7.原装电池改造
STM32F405RGT6主控的引脚封装及资源使用如下:
-----------------------------------祝爽飞!----------------------------------
笔者也将教程上传至B站(Skye无人机刷Betaflight详细图文教程),欢迎评论、点赞、投币哈~
---------------------------------------------------------------------------------
相关资料下载
链接:百度网盘 请输入提取码
提取码:lw5f
最后再次感谢B站TASKBL up主提供的支持与帮助!