2014年福建省大学生电子设计竞赛测控组参赛心得讲稿

首先先给大家说个不好意思,由于这个月开始到公司实习,所以并没有花太多的时间来准备这个讲演,PPT也是做得十分简陋,很敷衍,简直就是贴几张图片就是一个PPT了。我考虑过要怎么跟介绍我们的作品了,如果是跟大家讲其中的整个过程,四轴飞行器的原理,难免会很枯燥,而且大家有些同学没有做过了解过飞行器的项目,说的太复杂怕大家一时半会消化不来,说我就先简单的介绍一下我们的作品,然后说一说我的队友和我对于此次比赛的整个参赛过程。

2014年福建省大学生电子设计竞赛测控组参赛心得讲稿_第1张图片 

由于上届国赛做的是飞行器的,还有近几年出的题目也是越来越前卫,开始从地上跑的智能车在到天上飞的飞机了,所以,我和我的队友断定今年的省赛肯定是有一道关于飞行器的题目,至于具体的题目是怎么样,我们才不来,但是我们认为至少要在暑假的时候把飞机做出来,至于要是实现怎么样的飞行难度,我们先不管,至少要先能飞起来,能够在空中稳定的悬停。所以,我们从暑假开始就开始做四轴飞行器了,由于至于为什么做四轴的,很简单,流行所以资料多,很多发烧友都在玩四轴,网上现成的方案也很多,所以做四轴是必然的选择。虽然网上资料多,但是我们还是先请教了做过飞行器的学长,也就是陈诚斌学长,在这里我要感谢一下陈诚斌学长,在整个制作过程中帮了我们很多忙,做飞行器需要的模块清单就是按陈诚斌学长的推荐配置的。开始我们在一贴论坛和贴吧上找,资料很多,但是不全,对于一个对飞行器什么都不懂的团队来说,资料不全是一个很大的障碍,因为即使却了什么你也不知道是不是缺了,然后缺了该去哪里找。前面几天我和队友都在找资料,逛论坛和贴吧,我把自己能找到的能下载的东西打包一下,发给队友,队友也把他找到的好东西发给我,经过一对比,发现看的东西都是差不多,我们能够的除了百度还是百度,对于找资料的方法我觉得是相当重要的,几个常用的网站都去注册一下,有些需要花钱买积分的,有需要的话也花点钱,毕竟花不了多少钱,这样更省事。最后我们决定用一个叫做“匿名”的方案,这家伙也是个技术宅,他把有的东西全部开源,还上传了飞行视频,源代码和电路图都十分的全面。

 

于是我们就开始研究代码了,毕竟你是要参加比赛,你必须把里面的每一行代码都吃透然后才能去修改代码参加比赛,对于看代码,我们前前后后也是花了近一个星期的时间才吃透,中间也逐渐学会如何模块化编程,之前做过的项目都比较小,所有的代码都在一个.C文件里面实现,所以看了飞行器这个庞大之后我也学会了如何去模块话编程,后来和队友合作的时候,我就把我做的模块写一个.c和.h文件,然后写一个说明文档,这样队友使用起来就非常方便。然后我们就开始照着网上的方案简历自己的工程文件,这其中我们还要说明的是,我们使用的处理器是stm32,为什么使用这个款处理器呢,首先是流行,因为流行说资料很丰富,而且在课堂上也听说现在的很多公司都在使用这款处理器,所以很有必要学习一下这款处理器,这款处理器有个有个有事就是,厂商提供了十分丰富的固件,很多底层的东西都已经帮你做好了,设置IO,串口,SPI,IIC等都是有现成的函数可以调用,使用起来时非常傻瓜化了的,现在也有些同学在学这款处理器,然后去看那厚厚的权威手册,点亮个led还一个一个寄存器的去设置,我觉得没必要这样子学,不仅麻烦效率不高,还特别容易出错。在真个软件工程建立好之前,我们的飞机的样子已经出来了,除了处理器的线还没接,毕竟线怎么接法跟软件是有直接关系的。等软件做完了我们就开始要下载程序,开始调试了,我所说的软件做完了是说编译通过了没有什么错误了,至于能不能飞,我们完全不知道,毕竟只有试了才知道。关于调试时跟飞机通信的手段,最理想的当然是无线呢,首选的就是NRF模块,通信距离远,但是这个模块要编程,测试的时候一直出问题,电脑上接收不到,我花了一个多星期的时间都没有把这个模块搞定,所以就暂时放弃了,退而求其次,改用串口,就是在机身上拉一根线usb线接到电脑上,是很不方便了的,在比赛前几天,我们才想到用蓝牙模块,用蓝牙模块真是方便,不用编程,直接借两个串口引脚,电脑上再接个蓝牙接收器,就可以用了。

 

之后我们就开始调试了,调试的过程也是历经千辛万苦,因为飞机毕竟和智能车不一样,一个是地上跑的,一个是天上飞的,在地上跑的你再怎么跑还是在一个二维平面,而飞机就不一样了,三维的立体的,而且整个程序都还没有经过验证,所以,指不定程序下载完毕后开始运行,飞机就飞到哪里去了,虽然刚开始并没有遇到这样的问题,但是毕竟飞机拉这一根串口线,所以,调试的成果毕竟是有限的,到了后拉用上了蓝牙后才算真正的调试,调试的第一个问题就是平衡了,首先就是保证四个马达加同样的油门的时候能够直立飞行起来,而不会不定向的乱飞,主要还是调节一个六轴传感器的零漂点和PID参数,有网友建议要调平衡可以分开调,平衡有两个方向,我们就先把一个方向固定住,调另一个方向,等另一个方向okay了再换过来调这个方向,就这样慢慢地尝试,有做过控制类的同学知道调PID是一个多么漫长和痛苦的过程,PID具体怎么调我就说了,相关的资料非常多,大多数的意见都是先调那个再调那个,然后再两个一起调。

 

在这里还有一个插曲,我们做到这个时候其他省份省赛的题目已经陆续出来了,我们看了题目推测比赛用的处理器应该会有要求要用TI公司的430或者TIVA4,当然这只是猜测,我们也没有十足的把握,我们请教老师,老师认为是不会,但是我们为了保险起见,还是在这个时候决定弃用stm32,改用TIVA4,这个过程是我的队友完成的,虽然是陌生的芯片,但是毕竟都是ARM架构的处理器,所以还是有很多的共同之处,所以,并没有遇到非常多的困难,而且这款芯片也有函数库,我们需要用到的函数也是直接调用,所以还是非常方便的,从这两款芯片的使用,我认为,日后不论哪一款新的处理器想要流行的话,毕竟要有自己的固定库,单单给个原件手册远远不够,这样不仅能缩短开发者上手的时间,还能大大缩短整个产品的研发周期,使用方法越傻瓜越好,学习成本越低越好,就想苹果手机给人的感觉就是拿起来就能用,如果再加上价格合理,如果有这样的芯片我们有什么理由不用呢?

 

下面我说一说比赛前几天我们是怎么调试的,开始的话,我们是在飞机上绑着一根绳子,一个人拉这,一个人用电脑端控制,根据飞行的飞行状体调试参数,第一个目标就是希望能做到悬停,我们开始以为悬停是最基本的,但是到了后面才直达悬停是最难的,你想让飞机往一个方向飞,只要在程序上某个方向剪掉一个角度就可以了,方向基本能按照预定的飞,但是悬停就不一样了,调试的时候按照我们的设定,飞机应该是停这不懂才对,但是在停的时候总会漂移,这个问题就很严肃 ,如果比赛要求悬停,这么一漂移给漂出场外了,那岂不是功亏一篑了,所以,解决这个问题刻不容缓,开始也利用调PID的方法,但是,这次调完漂的不那么严重了,下次换个电池,因为换电池的原因,我们怀疑是不是机身重心变化的原因,于是后来每一次换电池,都要小心翼翼的把把电池按照原来的位置放好,以最大程度的保持中心不变。但是你再怎么小心翼翼也不可能做到和原来的一模一样,所以,当时我就用随身带着的车钥匙往机架上绑着,我是万万没想到,效果很好,而且在也不用担心会因为每次换电池的原因重新再调一次PID。悬停的问题就差不多是用这样的简单粗暴的办法解决了,当时我们的决定是在调试的时候找如何往机身上加钥匙的规律,争取在比赛的能有最快的速度把悬停的问题解决掉,从中也可以看出,我们算法的鲁棒性是相当差的。

 

但是事情并不是一帆风顺的,接下去是定高的问题,定高模块用的是超声波模块,这个模块的使用很简单,附带的说明书有介绍,但是理论和实际常常是不那么符合的,刚开始还好好的,然后我们就放心的扯掉绑在机身上的那根绳子,然后问题出现了,这次出现的问题,差点把我和我的队友吓坏了,在比赛的期间第二天,飞机突然抽疯了,一个劲地往上飞,直接撞上天花板的挡板上,然后桨断了几根,其中一个电机掉在地上直接摔坏了,庆幸的是,机架没有摔断,因为桨和电机都有多买,但是机架没有,要死机架给摔断了,那可真的是一着不慎满盘皆输,所以后来的试飞过程,即使飞机的状态多么稳定,我们也还是绑着绳子。

 

然后我们就参加比赛了,第一次在学校内部比,结果成绩很好,比我们预料的要好,题目要求飞机落点越精确分数越高,平时在测试的时候总是不能落的那么准确,但这次测试的落点相当准备,不偏不倚落在中点上,这是运气的因素,跟我们无关。

 

省测的时候,我们的还是非得不错,但是落点没有第一次那么准确,所以,关于落点的成绩下降了一个等级,但是对于获奖我们还是很有信心的。在这里不得不说到一点,大家从题目可以看出,基础部分是很简单的,就是基本上就是飞机飞过一根绳子,关于落点和稳定性能没有多大的要求,很多组同学都能做到,难点就是悬停3S,而很多组在悬停都没有做,我们的优势就是这里,如果说为什么我们组能得到这个题目的第一名,还真是多亏了我的这串钥匙。

好了,关于比赛的过程就介绍到这里,相信大家也听得有点烦了。

如果要做个心得总结,我觉得有以下几点:

一是经验,如果我们不是第一次参加比赛,我相信我们可以做得更快更好。

二是兴趣,兴趣是最好的老师嘛。

还有的无非就是努力勤奋坚持毅力等这些东西了。

谢谢大家。

你可能感兴趣的:(个人心得)