智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1603|回复: 8
打印 上一主题 下一主题

做车经验与教训

[复制链接]

1

主题

24

帖子

0

精华

注册会员

Rank: 2

积分
52
QQ
威望
26
贡献
12
兑换币
12
注册时间
2015-1-7
在线时间
7 小时
毕业学校
电子科技大学
跳转到指定楼层
1#
发表于 2015-1-9 01:40:28 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 freescaler 于 2015-1-9 01:44 编辑

飞思卡尔备忘录(摄像头直立组)
     飞思卡尔智能汽车这样一个平台,使我得到了很大的锻炼,还要感谢我们的指导老师,感谢这一年给予的大力支持,最后还要感谢我的队友,是我们的精诚合作,才取得了今天的成绩。
经历了将近一年的奋战,期待的飞思卡尔比赛结束了,虽然留下了些许的遗憾,但是现在回头去看这一年走过的路,现在的我真是要感谢当初的自己。记得大二下学期报名参加迷宫鼠比赛,当时是对于电路,程序还没有一点概念。看到学长制作的一个光点传感器,感觉好神奇,而现在的我对基本的电子设计以及工程项目的开发,都有了初步的认识。仔细想想,这一年真是学到了很多的东西。
      当然,任何的成长都要付出努力, 对于这一年的辛苦我想只有自己才清楚,不论寒署昼夜,都有我们团队的身影。有时候,面对一个难题,要纠结几天甚至半月。现在想想,如果当时能够得到些许的点播,或许我们就可以少走很多的弯路,特别是技术难度比较大的摄像头直立组,每一次的难题都是在头破血流的摸索后突破的。
现在反思为什么我们学校很多时候都差一步冲进国赛。我想其中一个原因就是没有很好的继承性,很多时候是在做重复的工作。特此,我花了两天时间把脑中尚存的一点东西整理了一下,也是我在做车过程中遇到的一些关键问题以及重要的算法和思想和大家分享,希望各位学弟学妹能够站在我们的肩膀上走的更远。下面我就针对摄像头直立组提纲挈领的把要点列出:
一.硬件方面
1.            芯片的选型:摄像头直立组数据量大,运算量大,建议直接用K60。超频到200M,我们既然编写不出来高效率的代码,就尽可能的提高单片机的运算速度。
2.            摄像头的选型:我们队今年用的是野火的鹰眼,个人对它评价相当高,他的优势很明显:硬件二值化,一次可以采集八个像素点,最高可以达到150帧图像每秒。建议更换一个视角更大的镜头,说到镜头,镜头的焦距十分关键,受到灯光影响,调好的焦距可能会拍不出清晰的图像,建议整一个大的液晶或者上位机,把图像显示出来,调节焦距直到拍出清晰的图像为止。在比赛现场很有可能需要调焦距,今年我们就被焦距问题坑了。
3.            编码器的选型:红树伟业的500线的编码器不错,就是有点大,可以考虑用一下有一种很小的编码器,最好使用500线的。
4.            车模的选型:车模很关键,我们选的是E型车模,实践证明,这个选择是正确的,众观省赛和西部赛区的比赛,跑的牛逼的车都是采用的E车模,第一他的轮距大,转弯时稳当些,当然避障要困难一点,第二他的电机给力,出力大,第三,他的轮子大,对于上坡有好处。
5.            陀螺仪的选型:建议采用龙邱的一款陀螺仪,单轴足够了,由于规定不能用带有硬件合成角度输出的,我们是采用单轴的陀螺仪和Z轴的加速度计进行软件合成角度的。效果还不错。
6.            电机驱动:直接用BTN7971,大电流,就是n贵,注意他的逻辑电路部分,不然会烧了他的控制回路的,建议直接用他的典型应用。前置加高速光耦或者缓冲器隔离,防止烧掉单片机。
7.            电池的选型:尽量选白色的那款,容量大,充满电电压高,注意不要买到假的。
8.            蓝牙通讯模块选型:建议两块HC-05,另外还有一种USB的电平转换模块,对于发图像,发数据十分方便。
9.            OLED:调试的时候很有帮助。
10.        下载/仿真器:我们用的是JLINK.整体还好用,就是固件容易被冲,重新刷一下固件就可以了。
11.        板子的制作:原理图一定要检查正确了,尽量找队友检查错误,布线时要注意电源线,电机线尽量粗而且长度对称。
12.        整车的搭建:这个工作很重要,一般要考虑的就是重心位置,转动惯量,电池的位置和固定方式,主板的位置,陀螺仪的位置,摄像头的高度。所有这些对算法,程序,参数的影响非常大。我们的理念就是尽量采用螺钉连接,少用胶枪连接。反正最后搭建的小车应该做到:重心低,重量小,转向灵活,稳定,结实牢固,美观。

二.软件的注意事项:
1.底层驱动:要想入门快,建议用野火的K60的底层驱动,函数丰富,用到的模块驱动函数都有,函数接口十分标准,调用很方便,格式很工整。
2.编译软件:看了一下IAR是最好的开发环境,编译,下载,调试速度快。操作界面简单。
3.程序管理:一定要养成程序随改随存,简单准确的注释,程序版本升级了要记得做好备注。另外,程序的管理很重要,不要把全部程序都放在一个group下,同一硬件模块的函数,变量定义在一个(.C)文件中,另外建一个同名的(.h)把需要外部引用的变量,函数声明一下。程序分成driver文件和header文件以及其他的应用文件,driver文件夹存放(.c)文件,header文件夹存放(.h)文件。这样分别添加,分别管理,就可以保证再编写大型程序时有条不紊。
4.上位机:有一款红树伟业的上位机很好用,串口,示波器,CCD,摄像头,功能强大,协议简单,UART就可以搞定。
5.软件编写:a.好的程序移植性很好,逻辑性强,要做到这两点,就要学会程序的分层,由于我们还不是基于操作系统的编程,所以就要更加注意的程序分层,先是硬件驱动层,只对硬件操作,其上是硬件隔离层,再往上我们就可以编写应用程序,实现我们的算法。层与层之间留有函数接口,层层的调用。自己编写的应用函数要尽量做到函数的移植性好,而且接口好用。b.软件建模方法:我最常用的的就是有限状态机,利用外部事件触发状态状态转移,然后执行相应的动作。c.前后台程序的设计,程序中重要紧急的事情作为前台程序,放在中断中执行,比如数据的采集,控制的实施。而后台程序只是进行如数据的处理,显示,等时间可以延迟的事情。程序一定要注意不要形成阻塞。
6.在线调试:好的程序不是一下就可以写出来的,而是在不断的查错,修改,调试中结晶的。所以,在线仿真可以说是最好的程序调试手段。
三.算法程序
程序和算法,我按照我们开发过程中依次遇见的一些关键问题,
1.FTM模块:我们用了本模块的两个功能,
a.一个是PWM波输出,频率是10~20k,注意PWM的精度是1/1000.
b.另一个是正交解码功能,把编码器的A,B相输入到本模块的正交解码输入口,就可以读出小车的速度和方向。注意:正交解码一定要使能他的输入引脚的数字滤波功能,不然测得的数字跳变很大,根本不是真实的编码器的输出。
c.测速的话可以测量多次的瞬时速度,作为此时小车的平均速度,用做小车的速度反馈,去控制小车的速度。
2.ADC模块:
a. ad连续采集10次取均值或中值再去使用.
b.采集陀螺仪和加速度计的输出。
3.UART模块:蓝牙,串口线,都可以连接。发波形,发图像,发数据,必用。
4.DMA:摄像头数据的转运,非常适合用于数据量大的场合。
5.SCCB协议:ov系列摄像头寄存器初始化时用于写摄像头的寄存器。协议基本和IIC一样。
6.中断:中断最重要的是设置各个中断的优先级,行>场>PIT中断。
7.卡尔曼滤波:函数是我们在网上搜的,看懂他需要一点概率论的知识,适用于含有高斯噪声的数据滤波,大概意思是利用先验估计和后验估计更新协方差矩阵,不断迭代,使得输出与测量的协方差最小。我们调试时,测出的角度波形会出现滞后和过冲,关键的就是修改积分时间dt。
8.均值滤波:可以用于AD,编码器测速,图像处理.....
9.中值滤波:用于AD,去除图像的椒盐噪点.....
10.PID算法及其改进:
11.模糊控制:
12.双闭环控制:
13.直立控制:
14.速度控制:
15.转向控制:
16.赛道中线拟合:
17.赛道中线斜率:
18.循迹:
19.坡道:
20.人字:
21.障碍:
                          (继续更新929168503)








回复

使用道具 举报

19

主题

730

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2390
威望
1180
贡献
718
兑换币
762
注册时间
2014-7-14
在线时间
246 小时
9#
发表于 2015-1-9 21:37:59 | 只看该作者
这就是教训吧:lol
回复 支持 反对

使用道具 举报

19

主题

730

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2390
威望
1180
贡献
718
兑换币
762
注册时间
2014-7-14
在线时间
246 小时
8#
发表于 2015-1-9 21:37:39 | 只看该作者
:L:L
回复 支持 反对

使用道具 举报

0

主题

43

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
494
威望
247
贡献
149
兑换币
164
注册时间
2014-11-28
在线时间
49 小时
毕业学校
广东工业大学
7#
发表于 2015-1-9 20:12:15 | 只看该作者
为麻子看不了?
回复 支持 反对

使用道具 举报

0

主题

396

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4586
QQ
威望
2920
贡献
1166
兑换币
907
注册时间
2014-9-12
在线时间
250 小时
6#
发表于 2015-1-9 15:03:50 | 只看该作者
楼主,你这到底是干嘛了呀???
回复 支持 反对

使用道具 举报

13

主题

1457

帖子

0

精华

知名人物

黑暗中的光

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

积分
41864

活跃会员奖章优秀会员奖章论坛元老奖章在线王奖章

威望
33106
贡献
7098
兑换币
272
注册时间
2014-10-25
在线时间
830 小时
5#
发表于 2015-1-9 14:02:48 | 只看该作者
没得看了
回复 支持 反对

使用道具 举报

1

主题

373

帖子

0

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
14252

论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章

威望
6571
贡献
4551
兑换币
4005
注册时间
2012-1-8
在线时间
1565 小时
4#
发表于 2015-1-9 13:34:25 | 只看该作者
为嘛,想看都没得看了
回复 支持 反对

使用道具 举报

8

主题

437

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2938
威望
1452
贡献
846
兑换币
982
注册时间
2014-12-7
在线时间
320 小时
3#
发表于 2015-1-9 13:21:43 | 只看该作者
:L:L
回复 支持 反对

使用道具 举报

10

主题

406

帖子

0

精华

跨届大侠

车魔

Rank: 10Rank: 10Rank: 10

积分
11152

优秀会员奖章活跃会员奖章论坛元老奖章在线王奖章资源大师奖章

威望
7292
贡献
2938
兑换币
1271
注册时间
2014-1-7
在线时间
461 小时
2#
发表于 2015-1-9 13:02:21 | 只看该作者
;P;P
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-26 16:47 , Processed in 0.115155 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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