|
楼主 |
发表于 2010-9-4 18:15:54
|
显示全部楼层
说到毅力,我也不知自已是不是算可以,但有的时候真的很想放弃,但想到自已已经努力了这么久,而别人能做到为什么自已不行,想到这些就咬咬齿坚持了下去,现在距功成名就还远着,还得努力.
程式说难不难,说简单不简单,如果程式的各个模块单独应用,很容易实现,但组合到一起了,就问题多多了,主要红外线信号接收,2路软件模拟PWM输出及PI运算都要求很实时.
遥控器的程式简单些就不多说了,简单说明一下飞控板的大概原理吧.
飞控板的程式分下面几个关键部份
1.红外线信号接收.
2.二路软件模拟PWM输出.
3.PI控制.
我的方法是设定一个每100us中断一次的定时器,每次进入中断后,扫描一次红外信号的电平,记录每一次电平翻转的计数值,这样经过多次中断,就能完成红外信号的接收.另同时在每一次的中断中,还要完成二路软件模拟PWM输出.现在我的PWM有50级,每一级的精度为100us,这样每个PWM周期为5Ms.以上的工作占用100us中断的60%时间,余下的时间,就用来完成陀螺仪的AD取样,运算,PI输出及其它的一些功能,比如电池电压低啊等.PID控制,在这里我只用到PI,D我测试过,好象没有太大的意义.就取消了.(另说明一下,就为调好PID的各个参数,我都前前后后花了一年时间,可能大家不信,反正差不多一年的业余时间就搭在里面了,试飞用的机机,电池及马达都一大堆了,嘿) 所以也请一些朋友,不要那么直接的跟我要源程式,特别有一些给人的感觉就应是商家的.)程式的算法,差不多就是上面了.
另飞机的前进后退,主要还是要靠机身的配重的,但可以用尾桨的转向来控制其前进的速度,如果调试得好的,后退还是可能的,嘿.用尾桨控制前进后退的原理如下:
要实现这样控制,尾桨就不能跟机身的水平面垂直,要一个夹角,这样在尾桨自已锁定时,其产生的分力会使机机有一个恒定的速度前进或后退,当尾桨转向时,其产生的分力会加大或减少,这样机机前进或后退的速度就会跟着变化.当然这样机机就不能再保证直线前进了.没办法,二通机只能这样了.嘿嘿. |
|