首先说明一下我不是第一个给OmnibusF4刷ardupilot固件(也就所谓的pix固件,apm固件)的,之前有很多大佬,都用OmnibusF4刷好ardupilot固件用来飞固定翼,而且取得了很好的效果,也有大佬拿来飞直升机的,很厉害。
有需要的可以参考下面的帖子:
http://bbs.5imx.com/forum.php?mod=viewthread&tid=1438864&extra=page%3D2
http://www.5imx.com/forum.php?mod=viewthread&tid=1490256
有能力的请参考ardupilot官方说明,会有更加专业的讲解:
http://ardupilot.org/copter/docs/common-omnibusf4pro.html
我这个教程只针对多旋翼,由于多旋翼要实现定点和返航需要接入罗盘和GPS,调试时也比较费心,我没找现成的资料所以只能自己一路摸索过来,关于说为什么要折腾F4而不是直接买minipix之类的飞控,主要还是没钱,,,况且ardupilot的大佬们都把固件给准备好了,就剩下调试了,F4飞控还集成了OSD和电流计,这些功能再加上稳定可靠的固件,简直是远航穿越机入门的福音,以一个较低的价格获得不错的飞行体验,何乐而不为呢
先说一下配置,我使用的飞控是OmnibusF4 V3,也就是不带电流计的版本,之前的帖子基本上都是F4 pro v3,我用不到电流计,而且V3可以检测电压,最重要的还是省钱,机架是幻神的御动力,之前inav固件的体验并不好,这也算是我换固件的原因之一吧,GPS是BN880集成罗盘,其他配置和接线大同小异,我从inav固件换到ardupilot固件也只是换了两根电调线(ardupilot固件和inav固件的电机编号不一样,一定要注意这一点,当然ardupilot新的固件也可以直接改电机编号,为了避免混淆,建议还是重新接一下),其他不用动,接线图参考下面的:
陀螺仪接在I2C,GPS接在UART1,接收机目前只支持ppm(我用r12dsm接收机,ppm/sbus可切换,很方便),短接ppm接在对应的位置即可
由于F4 v3受价格限制,板载的陀螺仪和气压计都比较一般,所以强烈建议加上减震和海绵块,可以很显著地提升飞行体验,我用的5块钱4个胶钉,虽然贵点,但是效果很好。要准备一张tf卡,用于记录log信息。
接下来刷固件
在下面的网站,选择latest最新的固件,
http://firmware.ardupilot.org/Copter/
这里官方给列出了很多的硬件版本,下载对应自己飞控的就可以,至于你问为什么有没有国内厂商出飞控,,你不如去问问客服他们是基于哪个版本设计的,,,
第一次刷选择带bl(bootloader)的hex文件,具体过程不演示,方法很多,几乎所有地面站都可以用来刷固件,只要最后提示成功就可以,然后就需要连接电脑Mission Planner地面站
如果识别到串口且连接成功,说明固件刷写成功(多么熟悉的界面),第一次连接可能会有很多错误提示,不用管,后面会解决。
这里建议大家使用最新版的MP1.3.64地面站,这里新增了一个选项(需要开启osd),用来调试OSD很方便,和BF,INAV一样可以拖动,不然的话只能用修改参数坐标盲改,这里也可以看出ardupilot很用心了,当然最新的不一定最好,这个后面再说。
下面进入调参阶段,按照顺序来就可以,有变化的步骤会说明,简单的会跳过,注意,如果接线正确罗盘直接可以用,GPS需要修改串口参数,这个下面会有详细的说明。
先选择机架类型
校准罗盘,那个方向不用动,会自动修改,我的是yaw180;如果电机接线是对的servo output也不用动,不确定的话,可以用电机测试,电机编号ABCD是从右上角的电机开始,顺时针循环的;ESC里面可以修改电调协议,电机怠速之类的,看个人需求,我用的dshot(新版地面没dshot选项这个选项,1.3.58版本可以看到,可能是bug)
可选硬件里开启OSD和电池监测器,OSD直接点启用遥测,需重启才会在参数表里看到参数
电流计这里,F4 V3没有电流计,所以选择只检测电压,APM版本也不用选,也需要重启才会生效,电压可能不准,自己用万用表量一下添上即可
以上图形界面的设置,在完成后重启飞控,如果设置正确的话,重启后不会再有错误信息弹出
下面到全部参数表里进行设置
这里先找到MOT_PWM_TYPE这个选项,在1.3.58版本的MP中(同样的固件)这里有很多协议可以选择,dshot1200也有,但是在1.3.64中就找不到了,我那个数字6对应的是dshot600,目前对飞行没影响,可能是个bug。
然后到了最重要的修改串口环节
找到serial开头的参数,后面数字对应的是相应的串口,在默认参数下UART3和UART4对应的是GPS,这符合pixhawk的设定,但是不适用于F4飞控,在f4飞控上UART3是和I2C复用的接口,也就是接罗盘的地方,UART4找不到,UART6是给接收机用的,所以要做相应的修改,
SERIAL0对应的是usb,不用动
SERIAL1接的是GPS,选5,波特率选38400
SERIAL2不动
SERIAL3和SERIAL4改为-1
写入参数
然后重启飞控
重启飞控后,如果地图上有个四轴的图标在漂移,说明飞控收到了GPS回传的信息(我的GPS之前用过,所以会直接出现在上次的位置),刚才的修改起了作用,
这个时候在自稳模式下可以解锁,定点模式下会提示没有3D定位
如果不能解锁请根据错误提示,自行调整
可以找个宽阔的地方“试飞”,但是不建议,原因如下
你以为下面就到了爽飞环节吗?
并不是!!
没调pid 飞个锤子,都抖出帕金森了
pix的默认pid适合轴距450-650的大多数机型,但是穿越机的轴距通常是250及以下,默认的pid显然不适用于这个轴距,御动力的轴距我粗略量了一下,在320左右,所以在经过无数次调参过后我得到了一套相对稳定的pid,在自稳模式下飞行器很跟手,飞行平稳,没有肉眼可见的抖动,定点模式下,姿态修正积极且不过激,电机加减速很平顺。
我的PID可能并不适用于你的飞机!!慎用!!
关于log的查看,我简单的说一下,可以查看飞行器飞行数据,也可以用来检验pid调教是否合理,具体可以参考这个博主写的文章,
https://blog.csdn.net/xazzh/article/details/72814567
下面这两个图是气压计在未加海绵和加海绵情况下的对比,结果一目了然,在加了海绵之后高度基本稳定,可以实现钉钉子的效果,且急加急减速的暴力飞行,无明显掉高
下面图两条线是目标值和实际值,基本重合,说明飞机非常跟手,反应不迟钝
陀螺仪参数,浮动越小越好,保持在+-1之间是合理值,如果飞控不加减震会造成这个值有非常明显的波动。