本帖最后由 caijie001 于 2017-12-2 12:06 编辑
大家好,我是杰杰。现在,第十三届的飞思卡尔规则已经初步成型,一批又一批的师弟师妹又来参加了,我参加了第十二届飞思卡尔智能车比赛,光电四轮组。现在分享下自己的心得和体会,希望能够师弟师妹带来点帮助。 声明:下面这些内容适合新手,有错误也是在所难免,请根据自己的情况鉴别。下文只对光电四轮组阐述,其他组别我不懂。谢谢。
不管遇到什么事,平常心很重要。----请记住这句话。
我知道很多学校像我们学校一样,没啥传承的,在我们报名的时候,别的学校的车子都能跑上2.5m/s了,对于我们这种,我曾经也抱怨过,为什么我们学校那么迟才报名,为什么车模到手是那么迟。别的学校起步比我们早,传承比我们好。。。。。但是似乎都没什么用。还是不要抱怨了。其实做过车之后你才发现,自己动手做完,成就感是一回事,成长才是重要的,经验也是重要的。
十一二月的时候,可以报名了,选择你们志同道合的队友,能分工明确的,能讨论解决问题的,这点很重要,我见过我们学校的队伍,大家都不想干活的,问我拿了块电路板的原理图,直接打板了。。。。。他们连用什么材料都不知道,就打了。。。。
报名之后就可以准备了,把硬件搭起来,把车模组装好,就调试软件,我是一个寒假在家慢慢设计的电路板,其实,我觉得在寒假之前拿到车模是最好的,寒假在家可以直接做好板,就开始采集数据然后调试,毕竟调试是最难的,还得花超多的时间,而我,白白浪费了一个寒假。在设计电路板,其实这个在后期一周都不用就可以搞定的设计,不需要花太多时间在这上面。
在调试的期间,你会遇到很多很多问题,比如车本来好好的,突然不能跑了,或者龟速了,突然某个器件烧了,电机不转动了,尤其是光电组的对环境依赖很大,有些光的干扰都影响车子。但不论什么时候都要保持一个积极向上的心态,小车虐我千百遍,我待小车如初恋。不乏很多人开始做车之前士气高昂,遇到困难也会尝试解决,但是如果一个问题长时间不能解决,就渐渐放弃了,我师兄就是,解决问题的长时间是多长时间,也许一周,一个月都是有可能的,特别是直立组的,调试陀螺仪,真的需要耐心,其实我很佩服我的师兄的,调了很久,站的很稳,关键是他们3个一直在解决问题,讨论,这点很重要。当你看到群上别人的车都跑的很快了,自己的车还是龟速,甚至连龟速都是不能跑,在雪上加霜的是,你还要上课,课程难,但是你上课又没有心思听,人在教室,心里却想着车,一学期快结束了,也快比赛了,大家都准备考试,你还在调车,担心各种挂科,白天上课,晚上调车调到深夜........各种情况也要有心里准备,这些都是我经历的,上学期基本没怎么听课与复习,有得必有失,有一个好的心态,去舍去,如果你很在意自己的期末成绩与奖学金,不能一心二用,那么,你可以放弃这次飞卡梦了。在比赛中也有不少大神的车6次机会都没有跑下来,我曾见过,六次都没跑完的,他们的车速比我们快多了,但是没跑完就是没成绩,看到他没跑完的心态爆炸,想一脚把他的心血毁掉的也有......这些你都要去考虑一下,如果,你不能接受,或者你心理承受压力很小,那么你可以好好学习,争取考个研,考个公务员,而不是做这种比赛,所以我们做车心里准备一定要做好,同时要保持一个好的心态,在自己遇到困难的时候,要时刻相信困难的解决就在下一秒,也要不断总结,思考问题可能出现在什么地方。另一点不得不说的就是要选择好队友了,一定要相互合作,队友不一定要多么多么牛,但是一定要是那种乐意付出,能吃苦的人,有困难大家一起扛才可以,遇到问题可以一起商量解决才可以,希望做车时一定要严以律己,绝对不能坑队友,以负责的态度去对自己的队伍,同时为了自己不被坑,选择自己信任的人。上面这些绝对是重要的,所以放在第一点,你可以不相信,但是**悔。
11/24日更新:
现在,你们应该已经找好队友并且报名参加了,我这里给个建议:
认真看比赛规则,别在小地方被坑了,我曾经就是一个打板被坑了,师兄没告诉我,队伍名字与学校名字不能打在丝印层,以前是可以打在丝印层的,,,,害得我们重新打一次板子,当然我们的第一批板子是可以用的,毕竟那是我花了一个寒假的心血,我不建议花太多时间用在设计硬件电路上,软件是最重要的,硬件只是次要的,因为以后你要学很多算法,处理各种不同的赛道。话说我大二上学期就是很菜的人,只是做过简单的小东西,对于硬件设计,我只是一个初学者,但是参加了这个比赛之后,我的成长很快,所以,一些比赛我还是建议你们去参加一下。拿个奖也是不错的。
现在初学51的也不要担心,其实飞思卡尔不难,只要安安心心的,慢点学,多打点代码就行。
首先,讲下硬件吧,毕竟软件的调试要基于硬件的基础上,不然,再怎么说软件都没有用。
硬件我个人将其分为3部分:
1):电源模块;
2):控制模块;
3):电机驱动模块;
下面将分别讲述这几部分的内容,可能图就没多少,都是一些经验或者见解吧。
1:电源模块。此处为很重要的一部分,单片机需要稳定的电压来工作,这毋容置疑的,假如电压不稳定,车跑着跑着就复位了,这岂不是很尴尬啊。所以单片机的稳压电路是一个重要的租车部份。 我用的是处理器是MK60FN1M0VLQ15,简称K60FN(兼容FX),为什么选择这块芯片呢,原因主要是其主频是150MHz,与其有4个FTM模块,一个用来做s3010舵机转向,一个用来做电机pwm输出,两路用来做编码器的正交解码,还有就是其浮点运算是K60DN的5倍(卖板子商家说的)我不清楚,但是初学者不需要了解这些,你们选择自己需要的芯片就行,能做驱动舵机与电机的芯片即可。回到稳压电路,说道设计电路,其实我不会,我是参考网上的电路设计与datasheet的基本电路进行设计的,你们要学会看datasheet。一般的元器件都配有基础电路,可以用的,对于选材,是我自己选择的。
传感器更是一个重要的选择部分,稳定的电压,可以使得传感器工作更加稳定,采集的数据更稳定。只有采集到正确的数据,才有机会跑的起来,不然,再好的算法都没有用。我使用的传感器是鹰眼摄像头,60*80分辨率的,当然可调整分辨率的,3.3v供电。
舵机也是很重要的组成部分,可以看看s3010的舵机参数,我用6v供电,就需要为其设计一个6v供电的稳压电路。然后单片机输出的pwm是3.3v的,也需要一个光耦隔离与电平转换一下。(后面我会提供一种我使用到的方案)
我们需要知道的是飞思卡尔专用电源充满电的电压是8.2——8.7v,具体多少v自己去测。所以要对器件进行稳压设计。
5v稳压电路芯片: LM2940.
6v稳压电路芯片: LM2941.
3.3v稳压电路芯片: AMS1117.
这些基本的芯片都有基本的电路,可以参考,当然,我这边会分享我的电路,仅供参考。
然后呢,电机驱动那边,由于我选择了驱动芯片驱动MOS管,驱动芯片的电压为12v,我还需要做一个12v的升压电路,这以后再说。
主控板这边的稳压电路就是很简单的,单纯的对各个模块进行稳压供电处理而已,没什么大电流大功率器件,选的稳压芯片就够了,当时也没考虑噪音什么的,电压稳定就足够了。
下面给一个我的稳压电路:V-OUT为飞思卡尔专用电池输出电压
3.3v:(需要将8v左右的电压转为5v后再转3.3v,不然芯片会有点烫)
5v:
6v
整体电路板图片:
稳压部分图片:
有网友说把电机驱动集成在一块板子上更好,其实我也觉得,但是奈何当时水平有限,做不出那种高度集成的板子,也是没有办法的事,因为学校没什么传承,只能自己动手一步步画出来,没办法。
12/02日更新:
下面来说说飞思卡尔主板的核心部分-----控制部分电路设计 对于摄像头,采集的数据需要稳定的,在高速跑的小车上,采集的图像的深度要快、稳定,才能更好的处理采集的图像。 那么,摄像头的采集数据的电路设计是必须的,我们使用山外的鹰眼与K60,那么就按照他们给的设计来模仿就行了,因为那是他们已经多年的经验积累的产品。 鹰眼转接板的接口原理图:(因为我使用的是软排线,需要买一个转接板) 电路的设计很简单,AD的走线尽可能圆滑,尽可能不要出现90°角,锐角走线,不然对信号还是有干扰的。
还有就是编码器信号的采集,需要正交解码功能,我用上了2路ftm模块,作为编码器的正交解码输入,对于是哪两路FTM,请自行看手册设计,看是哪些io口(我的是PTA10-PTA13),此处上传一份一天攻破k60&KL26的书籍。
正交解码之后得到小车的实时速度,以备我们用来作为对小车的各种转弯控制,由于是我自己当时不知道编码器是怎样的,我就多预留了一个接口,可以正反接。
信号采集的完成了,那么就看控制的,说白了就是舵机与电机的控制,舵机作为转向,电机就是让小车跑起来了。先说舵机吧。 舵机的控制: 舵机型号:S3010,此手册在网上一大堆,就不介绍了。 舵机就是3跟线,电源,地,信号线。信号线是什么东西,其实也是PWM,不懂的自行百度什么是PWM。PWM肯定是单片机输出啊,但是在电路设计的时候,我们要考虑了,舵机的工作电压是6V,上面已经说了我是6v给舵机供电的。但是K60是3.3v供电的,所以输出的PWM信号最大也是3.3v的。而且舵机转动的时候产生电动势,(你们可以试试从舵机左右来回转动,可以看到电路板上的LED会亮,本人亲测的),所以为了保护将近200块的K60,还得做个隔离的电路啊,隔离,用什么隔离。这怎么考虑? 首先实现每个功能,肯定要选材啊,隔离,那就是隔离芯片、光耦作为隔离了,对于作为设计者的我们来说,电路越简单越好啊,那就用光耦隔离吧,简单方便,连电平都转换了。光耦,顾名思义,实现单向的信号转换:电—光—电。电信号转换为发光二极管的光信号,再转换为电信号。实现了防止反向电动势的电流流入单片机。 知道原理,就说说光耦隔离的选型吧。市场上很多光耦,怎么选择呢,实现肯定要根据其工作的频率来选择的,我们知道S3010舵机的工作频率是在50-300Hz(好像是,我也忘了,具体多少看手册)然后光耦的工作频率要比他的工作频率大。但是在实际中,我们用到的舵机频率不过是100Hz,因为我测试过单片机采集一帧图像并处理完大概是9点多ms,算是比较快的了,那么1s就能采100帧图像,也是比较快了。光耦的工作电压是6v,那就满足了我们的要求。 舵机的工作状态:频率越高越灵活,但是力矩越小,反之则是力矩越大,灵敏度越小。请自行选择需要的工作频率与光耦。 对于电机,一路ftm模块,4路pwm通道输出即可。电机的隔离电路,我放在了电机驱动模块。
拨码开关必须要设计的,在比赛的时候要调节档位,调节不同的速度。
蓝牙接口
SD卡接口,可以使用来保存图像,但是我没用上。 然后一些外设你们都可以接上,例如蓝牙模块,OLED屏幕,蓝牙模块就是用来看小车跑起来的速度的数据的。OLED屏幕作为人机交互界面,更能实时显示出小车当前的各种参数,由于当时水平有限,就没有搭载OLED屏幕。再搭载一些按键在板子上,为了节省空间,我们使用贴片的按键即可,方便调试与设置参数,而不用经常擦写代码。留出一些备用的io接口与电源接口,以便我们调试。
未完待续~~
书籍文件:
|