前言
此篇献给GDOU的学子们,或许不是那么政治正确

一、智能车是什么
智能车总体概要
智能车是大学生团体比赛,通常由三个人组成队伍。涉及多个领域的知识,包括计算机编程,涉及电路板,队友间的团队协作,控制算法等。参加比赛的周期是比较长的,涉及的领域如此之多,需要跨不同学科,因此需要投入的时间是比较多的,这就意味着,参加这个比赛的周期是比较长的,一般都是大半年的时间。

比赛内容
最经典的就是在固定赛道比速度,在不出赛道的情况下,谁速度快,谁名次高,经典的赛道如下
在这里插入图片描述

赛车的组别:
赛车组别是有很多的,你可以玩两个轮的,也可以玩四个轮的,三个轮的。不同组别难度是不一样的,不同组别要求也是不一样的,因此选择那个组别就看自己和队友的意愿。选择难度大的,挑战完成,成就感就相应的高。

二、为什么要参加智能车
这个竞赛重点在培养,完成比赛、获得好的成绩只是体现在自己的知识的运用、动手实践的能力,为将来走向工作岗位、进一步深入学习、承担科研能力的打下基础,它本身并不直接产生前沿研究成果。- - - 卓晴(智能车比赛的组织者)

1.收获
功利的角度看
先看这个比赛与其他比赛的区别,其他比赛比如挑战杯,互联网+,创青春,电赛这些比赛。最显著的区别就是花费的时间是相对而言比较长的。它是一个B类的比赛,对于想要保研的同学,这个比赛的性价比是比如其他比赛的性价比高的(相同时间的产出)。

但是,也正是由于这个时间比较长的特点,这个比赛特别能锻炼人,锻炼人的综合能力,卓晴也说了,这个比赛是培养人的工程能力的,对于出去找相关工作,比如嵌入式开发之类的,是有帮助的,企业也是比较认可这个比赛的(电赛也是同理)。对于想要搞专研学术的同学,这个比赛就没必要参加了,不合适。

这个比赛也像是电赛,机器人大赛,这些技术性的比赛,潜规则相对而言是比较少的,是相对而言比较公平的比赛了,都是学生的做的项目,不会和老师的项目进行竞争。

从体验的角度看
回忆:
如果能够和志同道合靠谱的队友参加这个比赛,绝对可以留下一段美好的回忆。你们会回忆起一起通宵调车,一起调侃车子这么难搞,爷不玩了,转身又埋头调车。你会遇到无数个让你百思不得其解的问题,期间会无数次想要放弃,无数次质疑自己为什么参加这个又累又难的比赛。也会为了解决掉一个一个BUG,用老父亲得眼光看着车子从蹒跚学步到长大得过程。直到它到赛场上,你会为了它而骄傲。

友谊
在比赛前,你和队友可能不怎么认识,但可能会因为这个比赛,把彼此心得距离拉近,获得不一样的友谊。你们会在这大半年的时间相互合作,一起互相扶助,相互鼓励,共同成长,一起为了同一个目标努力。这种纯粹的友谊是很难得的,如果拥有,可谓是幸运。

能力
如果认真备赛,能力将会有一个质的飞跃,在这个过程中,会慢慢学会照顾别人的感受,照顾队友的情绪。也能学会各种技能,会画电路板,会焊接,会写代码,会调试。当然还有一项技能,还会熬夜。在参加这个比赛,综合能力无疑是会得到提升,慢慢成长为六边形战士。

总的来说

或许以后都不会参加这样的比赛,工作的内容也与智能车毫不相干,但你仍会记得,那段大学时光,和大部分人都不一样的体验。你们一起做车,你们因为车子彼此连接,车子承载着时光,搭载着三人期待的目光,承载着你们的友谊。在往后的回忆里,每当提及到智能车的时候,你总会想起那段回忆。智能车之所以美丽,是因为它的承载着做车的酸甜苦辣。

三、备赛
备赛分为两个阶段: 1:做车 2:参赛 到这里,智能车已经制作完毕了,各位看官可以溜了 开个小玩笑,但也确实是分为两个步骤,没有毛病,两个步骤太宽泛,那让我们细分一下,谈谈做智能车需要些什么品质,做车需要些什么技能
大概分为这么几个步骤: 找队友,抄作业,做作业
(1)找队友
找队友可谓是智能车制作的重中之重,基础中的基础,如果找到不合适的队友,就又可以体味一下人生的苦的滋味了,味道堪比舌尖上的中国。

我们前面也已经说了,智能车并不是一个回报产出比高的比赛,如果想要高性价比,进来混证书之类的,大概率混不出结果。这个是不付出,就别想要结果的比赛,非常的真实。

那怎么找到比较可靠的队友,从而保证队友不会划水,不会出现单打独斗,男儿当自强的情况呢。毕竟在大学里面,队友放你飞机,划水也不会受到什么惩罚,最多就一点点的道德谴责。下面给出我自己的愚见,希望对你有帮助。

找队友的四个方面:
1:意愿
2:责任心
3:日常表现
4:时间
PS:最好不要找好朋友组队

下面谈谈为什么说是这三个方面,而不是其他方面。

1:意愿
意愿是指你们确实都是自愿的,想要去参加这个比赛,不管是因为什么原因,证书也好,绩点也好,就是体验比赛本身也好,这个不怎么要紧的。如果都是被胁迫的,不是自愿的,在没有强大外力的驱动下,非常容易出现划水摸鱼的情况,使得队友独自奋斗。

2:责任心
有意愿是前提,但有时候意愿只是暂时的满腔热血,三分钟热度。但参加这个比赛,更多的是学习,调试,没有那个多紧张刺激,这个不是游戏。责任心是确保自己和队友能够在没有报名那时候的冲动下,任然能够继续坚持学习。从而慢慢地从学习,从写代码,从调试中找到成就感,进而维持做车的动力。

3:日常表现
如果有条件,能够知道这个人的日常行为表现,是积极,还是消极,是否能够在没什么强大外力的情况下,任然有学习新东西的动力。平常的时候,就是差不多是人最真实的状态了,不要看报名时后的一腔热血,要看冷静状态下的他毕竟间歇性踌躇满志,持续性混吃等死才是常态。如果他平时都是懒懒散散的,就别指望他能够突然因为一个比赛,就变得努力上进,会和你一起参加这个又苦又累的比赛,改变一个人是很难的。

4:时间
如果他是符合上面三个条件,也要看队友平常是不是比较的忙,或者假期的时候也是比较忙的,或是只有在学校有时间。或者学校里面他的职务有很多,学生会会长,又是班长,又是主席之类的。这个比赛还真的不适合他/她,这个比赛会挤占非常多的个人时间,基本上大半年的时间都是处于不断学习,不断调车,不断思考的状态。如果他/她平时是这样的,确实是没多少时间,那我的建议大概还是放弃和他/她组队,折磨的只有自己。如果假期很忙,也是基本没什么时间搞车,假期的时间是很宝贵的,如果不能利用起来,也是很容易翻车的,特别是以前没有参加过的同学,个人也是不建议组队的。

PS:最好不要找好朋友组队
最好不要找好朋友组队,如果他/她发生特殊情况,没有时间和你搞车了,那你要不要把人家提走,提走感觉是好朋友不合适,不提走呢,折磨的只有自己。除非是自己清楚,如果发生了特殊情况,她/他没有时间搞,自己知道怎么处理,或者说,即使不知道怎么处理,也能承受住这个后果不后悔即可。如果一开始组队的队友,和你并不是那么要好,他/她白嫖,提醒屡次不改,那中途踢了,找别人重新组队会舒服很多。踢人也不是什么事,人家凭什么白嫖呢,你又凭什么给人家白嫖呢。

(2)抄作业
这里并不是鼓励抄袭,而是通过抄袭的方式,快速地了解智能车的制作过程。这个和美术中的临摹的思想类似,先临摹大师的作品,等理解了以后再去做自己的作品。如果连抄都抄不好,又怎么奢求自己能拿奖呢。那为什么要抄呢,因为在做出来之前,并不能判断它的好坏,甚至做出来之后也大概率不知道哪里不对,还需要大量的迭代。不如一开始就找一个世界级的东西做模板,这样经验就不会成为制约的天花板。

既然我们知道了抄袭的重要性,它能大大的减少翻车的概率,那抄袭的姿势又是什么呢?

1)找参考系
找到你参加的这个比赛的比较顶尖的作品,通常是国一或者国二的作品,越是顶尖的作品,参考的价值就越大。这些作品可以从实验室往年的作品中传承,托关系找也行,也可以去某宝/某鱼上买相关的PCB和代码等。如果自己的组别是新开的组别,那难度就更大了,需要找一些类似的项目,参考别人的项目来做。

2)临摹的原则
1.取其精华,去其糟粕
别人的车是国一,不一定他的设计都是很好的,要用辩证的思维去看待。参考的时候最好可以清楚,别人为什么这样做,是因为这样做更好,还是找不到更好的办法处理了,是无奈之举,就是糟粕了,需要优化。如果不清楚,可以多看几个优秀的,做做对比。能够比较清楚地知道,别人为什么这样设计,你做出来的车子肯定不会差。

2.如非必要,勿增实体
当需要修改的时候,一定要清楚,为什么要改,理由要充分。不要因为自己觉得好像有用就改,要给出这么改的好处,这么改和原来的有什么不足。

3)抄的基础
当然,要知道别人为什么这样设计也是需要积累的,首先是需要对智能车的制作过程有一个了解,然后补充最基础的知识,前期先多看帖子,多看论坛,多看技术报告,论文,多听听别人的见解,这样看的时候不会那么懵,看不懂的要尽早上百度,CSDN,或者问师兄师姐。对于工程学,一般来说都是拿来主义,过于底层的东西没有那么多时间去弄清楚,去弄清楚也不现实,大概了解即可。当然有时候,看不懂一些别人的代码,可能只是没有多少注释,看懂不易。只要能够抄懂了一个国一的车子,那么你设计的车子成绩也不会差到那里去。

聊完了临摹的问题,那让我们来谈谈创新。

对于我们的绝大部分人,创新更多指的是重组,而不是从零到一提出某个东西。重组就像是,你结合你熟悉的东西,把它和另外的东西组合起来。比如植物大战僵尸,把植物,武器,僵尸的元素组合,在智能车,创新可能是一个新的算法,一种新的结构应用到智能车里面。对于从零到一的创新,这个是很难的,往往需要大量的在相关领域的积累,看看毕加索就知道了,小时候就已经能够把画画到出神入化的境界了,然后不断的耕耘,到后面提出抽象派的画。这个铺垫一般是很长的。

3)做作业
做作业涉及到一些调试工具,使用这些工具将加快调试的进度,这里提及一下:
上位机:
上位机更多是用来显示波形,波形反应车子实际上跑的效果,很多情况,车子跑的情况,肉眼观察很难看出问题,如果能够显示波形,就能比较直观的看到效果

MALTAB:
maltab在仿真时候效果不错,可以用它仿真看看控制代码大概的效果是怎样的,比如PID控制器,各个参数有什么作用。也可以在MATLAB上写图像处理算法,将采集的大量赛道图像(包含各种情况)用matlab进行赛道中线提取和特殊元素处理,这样可以很直观地看出你的算法效果。仿真验证通过后再写进MCU,然后实测效果,反复修改。对于控制系统的理论仿真,个人建议不要使用,除非你的信号与系统和自动控制原理学的很好,能够推导出车子的运行情况。实际上,%99的车子都是使用PID衍生的相关算法,这个不需要对系统的运行了解。或者使用神经网络,以黑箱的形式对车子进行训练,这也不需要信号与系统和自动控制原理学的很好。不然真就容易浪费时间。

AultimDesigner:
这个是用来画电路板的软件,一般使用这个画低频信号的电路板,也不需要什么特别的技巧,快的话3天入门,一周大概就能上手去抄或者局部修改别人的电路板了。

总的来说:

在前期,在已经看了不少资料,也对别人的车子有了一定的理解,知道了做车的大概步骤,就是动手时间了。在制作智能车,最先制作的是硬件,因为硬件搭建慢,出BUG不容易发现,迭代周期长,往往需要先搭建好。在动手的时候,一般都是使用抄作业的方法去搞自己的车子,期间肯定会出现不少问题,这时候是除了使用抄作业的一些方法,还需要上百度,上CSDN,问师兄师姐问题,尽快把BUG解决掉。等车子基本实现比赛的要求,那就改考虑优化车子,在抄的基础上进行优化创新了。

四、总结
通篇我都没有说,没有经验不行,不能做智能车,做车子更重要的是一颗恒心,一些勇气,在面对挫折时时候的不气馁。如果你有想要做车的想法,那就可以大胆去做。

智能车制作不易,需要的是团队的力量,需要队长统筹兼顾,需要队员友好合作,不然很难做出一个好的车子。

这里附上一些一个制作智能车挺全面的链接:
智能车制作

还有一些比较好的链接,有兴趣的同学可以看看
匿名上位机V7使用

电磁车设计

电磁车算法研究

电磁循迹PID

智能车环岛浅析

模糊PID讲解

双车组/三轮组18cm摄像头图像处理

位置式PID和增量式PID区别

AD21四层板设计