首先,需要有一个可以编程的成品飞控,例如wmc,如果没有飞控,自己手头有熟悉的单片机,只要不是太慢,都可以,需要有iic和pwm,飞思卡尔什么的估计都行,官方提供的肯定也可以,然后买一个6轴模块或者9轴模块(姿态传感器),一般都是iic通信方式,然后买一个航模遥控器,时间来不及看看同学有没有,如果比赛方不让用遥控,就准备一个数传,最好串口透传,或者其他自己用过的数传也行,用来传递控制信息。然后,我介绍下系统怎么工作,一种是遥控方式,不管是用遥控器还是数传来遥控,都是需要人参与,第二种是飞机自动控制,自动控制飞行和姿态,不用人参与。第一种可以做出来,第二种在这几天里我觉得没人能做出来,除非之前很久就开始准备,所以以下讨论都针对第一种方式,也就是有人参与控制。
系统的主流程是:
1:读取传感器数据
2:传感器数据处理 滤波 减零偏等等
3:姿态计算 方法很多,例如旋转矩阵,四元数等,我的源码用的四元数
4:根据得到的姿态进行PID计算并输出结果给电机
归纳起来应该就这几步,这就是程序的主循环,当然,在某些步骤还要融入一些其他东西,例如遥控信号等等
遥控信号怎么融入控制?在第三部,姿态计算和第四步PID计算之间,融入控制数据。姿态解算出来的是当前姿态角,遥控数据经过衰减后得到期望姿态角,两个做差,再进行PID运算,就可以将遥控信号融入控制中,具体代码请看我的工程。
怎么获得遥控信号?对于成品飞控或者开发板,如果对单片机熟悉或者有一定功力,可以对遥控接收机的输出PWM进行采样,最少采样四路,分别是油门、YAW、ROL、PIT四个控制量,后三个对应航向角,横滚角和俯仰角。如果赛方不准用遥控,或者想简化方案,就要想办法用数传,直接传输数字控制量,是用电脑遥控还是什么,就看大家了,总之就是将控制量(例如+-50度)通过数传传输给飞控。
信号的传输与采集讲了,后面就是飞控的运算了,怎么用请参照我的程序。前面提到的1234请看我另一个帖子,也是叫 给电赛的同学一些建议 里面有写。
然后,飞控或者开发板输出什么来控制电机呢?pwm,什么样的pwm?看电调了,电调默认pwm格式为50hz,但是有的电调能支持到400+hz貌似,也就是pwm的频率,关于pwm的占空比,请看电调的说明书,我没有,也就没法帮大家了,说明书上有写占空比应该,要么就百度一下,再不行就用示波器观察航模遥控接收机的输出PWM,就可以知道了。有一点要注意,商品电调在开机时有个解锁信号貌似,说明书应该有写,大家记得每次开机要解锁电调,拿到电调后还要进行油门行程校准这些,也在说明书里。
总结一下利用商品飞控或者开发板来做比赛的关键点:
1:要能编程,方便编程和调试,最好可以在线调试
2:搞定数据采集,不管是pwm还是数传
3:参照另一个帖子,和刚才说那几部,搞定姿态计算和pid计算,其实不多,就是读传感器,滤波,计算,没几步,大家不要怕
4:搞定输出,也就是驱动电调
5:锻炼自己的操作能力,呵呵,航模我觉得3分靠飞控,7飞靠操作,个人操作是非常重要的,或者找个玩过航模的加入电赛小组,应该很不错
以上都是个人看法,有不对请指正