本帖最后由 roland-c 于 2018-5-9 15:13 编辑
2018.5.9 版本更新到3.4,由于lz没时间测试,不再更新
原本的betaflight固件没有直机ccpm混控,因此我在固件里加入了ccpm(120度)的混控,编译之后发在这里。
代码在这里,供参考:github.com/RolandChen/betaflight-Heli_120-NOT_TESTED
改动的主要部分在 github.com/RolandChen/betaflight-Heli_120-NOT_TESTED/tree/master/src/main/flight 下面的servos.c和mixer.c两个文件里。总体来说,cf/bf固件的混控自由度还是比较好的。
固件:百度云附件:betaflight_3.4.0_SPRACINGF3.hex
百度云附件:betaflight_3.4.0_SPRACINGF3EVO.hex
百度云附件:betaflight_3.2.0_Heli_SPRACINGF3EVO.hex
百度云附件:betaflight_3.2.0_Heli_SPRACINGF3.hex
直接用Betaflight调参软件,load local firmware 下载进去即开始运行。
NAZE32和CC3D(STM32F1系列)暂不支持,要改动的地方比较多。
使用说明:
首先是接线:(和我上一个帖子中有不同)
MOTOR 1 接一个副翼舵机,
MOTOR 2 接另一个副翼舵机,
MOTOR 3 接升降舵机
MOTOR 4 尾舵(默认宽频,窄频没测试过,似乎可以调节)
MOTOR 5 留空
MOTOR 6 接电调
然后,刷入固件之后,进入betaflight的调参界面。无论如何,先拆掉大小桨!!!
第一步,请确保cf给电调的信号是PWM!
非BLHeli电调是不会支持有刷/Oneshot/Dshot之类的信号
然后,首页其他的设置和穿越类似。不进行其他设置,我暂时没看出其他问题。
第二步,检查舵机的输出是否存在
方法:摇晃飞机,Servos中的1-4数值会在摇晃过程中发生变化。如果油门=0或者没接遥控的话,停止摇晃后数值会回中(1500)
如果数值不变,那么固件或者飞控有问题,无法进行后续操作,请直接跟帖回复。
第三步,给飞控接上接收机,并且在Receiver选项卡中检查中立点是否为1500。
这里的步骤我就不解释了,和穿越完全一样。Betaflight不能校准遥控器,因此只能自行调整微调/辅助微调来调节中立点。由于积分效应(和陀螺仪相同),错误的中立点会导致飞机起飞前即翻!
第四步,舵机中立点和循环螺距调整
以上从左到右: MID是舵机中点。请设置到舵臂垂直于舵机。 MIN是舵机最小值,MAX是舵机最大值。以不发生干涉为准。轻微偏差不会有影响。 CH1-A8在Betaflight中无效。(Betaflight改变舵机引脚分配必须进CLI,用resource命令修改。) Direction and Rate: 舵机运动增益和反向。 Rate指的是舵机的运动幅度,因此利用Rate来调循环螺距。如果十字盘舵机行程一致,那么十字盘的三个舵机Rate绝对值相等。如果不一致,则需要分开调,保证十字盘始终保持水平。 测量循环螺距的方法:遥控器打死副翼或升降摇杆,读取螺距尺上的读数。(增益是负数->舵机反向) 不同于其他陀螺仪,在cf/bf固件中一旦确定一个Rate值(比如10度的循环螺距),就不要再改变,否则PID要重调。升降和副翼的循环螺距可能有些不等,可能是因为F3固件没有"几何校正"。由于最后的PID的升降和副翼是分开调的,因此不影响。(目前我测试的时候用了8-10度,欢迎更多测试。)循环螺距无论如何,理论上只是相当于一个PID外面的系数,因此不影响飞行,但影响飞行的PID。 尾舵的Rate我设置成100%。
第五步:PID设置
理论上来说,确定了一个固定的循环螺距之后,各种飞机的起始参数也就确定了。由于起始参数因飞机不同而不同,因此希望大家能多提供一些PID结果,我能知道默认值的大概位置。
调试方法和穿越相同。为了防止炸鸡,首次调试的时候请把副翼设置成P=15, I=15,升降P设置成20, I=20,尾舵P设置成40。一般来说这个参数明显偏低,比较难飞(舵量很小很小,飞机很飘),但至少不会起飞炸。我测试的结果,升降和副翼用默认参数,起飞基本上要炸。。。
这一部分以后我要更新。
第六步:滤波调节
直机震动比穿越大太多,因此开动态滤波,截止频率也降得很低。这部分的最佳参数因机而异,欢迎各种测试。可以先按照我的参数设置。
第七步(最后一步):给出解锁区间。
遥控上相应设置油门和飞控的解锁开关(建议设置成同一个)。
最后,装桨,准备起飞。帖子可能写的不够详细,因此如果有疑问请跟帖提问。
|