搜索
bottom↓
回复: 15

关于MIKROKOPTER飞控的框架

[复制链接]

出0入0汤圆

发表于 2010-12-7 19:02:40 | 显示全部楼层 |阅读模式
潜水N久,学了不少东西。虽然才疏学浅,还是希望尽量回报一下。
MK的代码包括许多东西,大部分代码是在对付底层、通信、初始化等"家务",虽然对系统正常运转是必须的,但对刚开始看代码的朋友来说估计造成了不少干扰,毕竟我们看代码时更多的不是关注某个寄存器怎么设置,而是传感器数据处理与飞控算法的实现。因此我粗略整理了一下大家可能比较关注的那些部分的框架,希望能为初学者们省点时间;至于高手,则希望能指出错误、补充一些不完善的地方。

代码是Killarg的0.76版。

一、飞控

MK飞控核心部分集中在fc.c的MotorControl函数里。这个函数由Timer0的ISR控制启动。Timer0的ISR以9.765 kHz的频率执行,每运行20次就将updateMotor标志置为1;负责任务调度的主函数循环检查该标志,若为1则调用MotorControl函数。显然,飞控部分执行频率大约为500HZ。

MotorControl函数依次做下面几件事:

1、调用Mean函数进行传感器数据处理。这个函数对现有的测量值计做一些简单处理比如限制下范围什么的,再启动ADC的ISR例程为下一次循环做准备;这个ISR到底干什么,在后面说。

2、读接收机信号。先判断下信号质量如何,没问题就处理PPM信号。MK的各种遥控器命令也是在这里判断的。

3、串口控制

4、翻筋斗的处理

5、紧急降落的处理

6、陀螺仪/加速度计测量值融合

7、读罗盘、GPS等的值

8、根据各种传感器及控制输入的值计算各个电动机的控制量,也就是说控制算法的实际实现。

MotorControl返回以后主函数循环调用SendMotorData把这些控制量发送到BLDC。


二、传感器数据采集

MK在ADC采样的中断里使用状态机采集各个ADC通道的测量值。源代码中定义了0~17总共18个状态,每个状态中采集一个通道的数据,每次MotorControl启动测量都把全部状态走一遍。

大多数传感器的ADC通道仅对应一个状态,但是陀螺仪与加速度计的部分通道对应多个状态,也就是说采集的更为频繁一些;同时,这些采集比较频繁的通道还进行了简单的平滑处理。

这部分代码在analog.c末尾的中断服务例程里。



回头一看,整理的还真是够粗略-_-# 就当抛砖引玉了,呵呵

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2010-12-7 19:10:12 | 显示全部楼层
占个沙发,希望这个贴能作为对http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3293478&bbs_page_no=1&bbs_id=1025 的回应。那个贴更多的还是在讨论飞控算法。

出0入0汤圆

发表于 2011-12-6 21:20:41 | 显示全部楼层
非常棒,近期想研究MK代码。给我发一份啊 谢谢了。sz_works@163.com

出0入0汤圆

发表于 2011-12-7 17:17:57 | 显示全部楼层
严重关注这个帖子
最好研究0.86d的程序,有很多改进的地方
点击此处下载 ourdev_702524TE9ZZZ.rar(文件大小:351K) (原文件名:V0.86d.rar)

出0入0汤圆

发表于 2011-12-7 22:51:25 | 显示全部楼层
顶起,期待更精彩的分析

出0入0汤圆

发表于 2011-12-7 23:44:03 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-2-14 14:38:04 | 显示全部楼层
顶起!!!

出0入0汤圆

发表于 2012-2-16 23:49:32 | 显示全部楼层
期待楼主下文

出0入0汤圆

发表于 2012-2-21 22:24:17 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-2-21 22:25:35 | 显示全部楼层
俺还是从最简单的0.6开始看起吧

出0入0汤圆

发表于 2012-2-22 16:25:20 | 显示全部楼层
我还是新手,之前学过控制课程,最近从软件先看起来,希望楼主这样的高手多多指导哈~

出0入0汤圆

发表于 2012-3-6 16:12:48 | 显示全部楼层
谢谢了,又学习了。

出0入0汤圆

发表于 2013-4-6 22:39:12 | 显示全部楼层
这个感觉也很难啊

出0入0汤圆

发表于 2013-4-6 22:47:57 | 显示全部楼层
顶起,期待更精彩的分析
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 01:20

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表