本帖最后由 AngelEyes 于 2013-1-17 17:55 编辑
调过MWC的同学都知道挺折腾,玩过Naza的同学都知道很傻瓜。是否能把MWC做得傻瓜化,让新手可以直接上手,不用折腾。根据我们的理解和深入分析,觉得这是可行的,为此我们将发这个改造计划。所有代码都将采用GPL协议开源化,感兴趣的同学可以加入哦。
MWC飞控的飞行效果是很不错的,但就是比较难配置。编译配置MWC时,需要C语言基础(至少要懂宏是啥)。国内关于WMC的文档也比较匮乏,所以还需要懂点米文才能搞定。
让我们看一下MWC的编译配置过程:
1、在代码中注释一些宏来控制你所选择的飞行器类型、传感器类型,修改 电机怠速油门、 遥控器最大/最新油门等 2、编译烧录到Arduino中 3、打开MWC的配置程序进行配置
配置程序的界面十分丰富,全部操作显示都堆在一张界面中了。但这会让初次接触MWC的人像个丈二和尚般摸不着头脑,界面中的东西都是些什么啊。你不得不费些功夫认真研究,最后终于弄明白了大部分内容,可“PID”是什么呢?面对“PID”配置,很折腾人,都不如何下手配置,头大。即使有幸你的飞行器稳飞了,PID你搞明白了么?还有一点,很不合理:飞行器类型的选择是在编译MWC代码之前就选择的,而不是在配置程序中选择。
MWC的配置程序界面
而Naza的配置程序,界面友好,简单易用,配置时压根就没有PID这个概念,普通用户完全在15分钟之内就能搞定Naza的配置,顺利起飞。(大疆要付我们广告费了)如果MWC配置程序像Naza般友好点,岂不亲民点?
MWC有一点也很让人讨厌:每次上电后,你都要通过电脑或android手机上的配置程序,检查遥控器的横滚(roll)、俯仰(pitch),航向(yaw)通道的输出中值是否为1500。不是的话,需要调到1500。如果控是天6的级别的,就杯具了,每次飞,都要折腾半天调试控的摇杆的中值,好像设置deadband能帮下忙。但这点始终不不合理:凭什么中指非要为1500,普通用户对中值1500有概念吗?如果通过检验出遥控器的各通道的范围值,让飞控自动判断出中值,岂不简单省事?
MWC 项目的发起者的初衷是让飞控在稳定的情况下成本尽量的低,所以很多硬件都是可选的,最简化的MWC 只需要aduinio+ 陀螺仪传感器。MWC 中有相当一部分代码是针对不同传感器而加的。如果只支持某一款特定的陀螺仪和加速计,那么MWC 的代码将大幅简化。
以前刚开始接触MWC 时,挺意外的,代码文件那么少。几乎每个代码文件都跟一个硬件模块对应,作用正如其名。下图是MWC 的代码文件:
总体研究了下MWC的代码,代码量本身不多,也还算易懂,所以改造MWC是可行的。如果能搞出更好的飞控算法的话,那就可以说是完全脱胎换骨了。
MWC本身的配置程序的代码更少了,在windows,就一个java文件:
配置程序是使用艺术家语言Processing写的。这语言用于开简单的GUI程序还算能胜任,写复杂点的GUI程序就有点吃力了。所以新的配置程序将使用C++和Qt来开发。
目标
一、简化配置程序 (1)友好界面,简单易用,普通用户就能轻松上手 (2)无需调PID(不是说使用一个固定的PID值 而是给PID包个上层封装 让PID的一堆参数不可见 简化调校 或者让飞控自己学习调整PID) (3)实现遥控器摇杆的范围值校验,免去遥控器的中值校准必须到1500的弊病,实现中值自动校准 (4)配置界面中就可以选择飞行器的类型
二、改造MWC主控程序 (1)配置程序改了,飞控本身要配合作相应修改 (2)只针对特定的陀螺仪和传感器 (3)优化飞控算法(可能)
三、开发制造专用飞控板和电源/状态显示模式模块。
物美价廉; 制作出改造后MWC的专用飞控板,飞控板会尽量的小,用外壳封装好,并预留以下接口: (1)横滚(roll)、俯仰(pitch)、航向(yaw)、油门(Throttle)控制接口 (2)飞行模式控制接口 (4)GPS接口 (5)电源和状态指示灯接口
电源/状态显示模式模块: (1) 飞控状态指示灯 (2) 变压功能,能将2s~4s的电压降压到arduino能使用的电压,免去UBEC (3) usb编程接口(这个可以没有 如果使用的是原生arduino板 但感觉重新整个arduino兼容板本才是上策)
参与
全部代码遵循GPL协议,代码使用github.com的版本控制服务器进行控制,参与的同学分配相应的git服务器权限。有兴趣的同学请PM我。
开发语言及框架
Arduino、C语言、Qt、C++
回报
参与开源项目的同学根据贡献奖励T恤,记事本,MWC飞控,多轴飞行器。
我们的其他几个开源项目
重在掺和
|