记录点滴大赛。

起初,从一个小白走向机器人大赛,经过不少人的推荐(传说有奖),(瞎)报名了循迹机器人大赛。

循迹机器人(要做的)是:利用红外线感知黑色线路,并沿着其行进,赛道设计的有弯道,且需要考虑速度,因为时间越短越好。

嗯,需要硬件加算法呀。要好好学习一下呀(笑)

然而,半个月后报名结束,通知由于项目人数过多,主办方不再提供材料,由学生自行购买。。。

根据一份不完全清单在淘宝搜寻一段时间后,得到130的价格。

之后了解到要学习五一单片机,于是开始学习了解(其实以我们的比赛程度和技术,不用了解也是完全可以的2333)。

了解到有朋友已经用电烙铁烧坏一个小车了,而我们还没买材料,什么都不知道,还有点慌呢。

开始买买买!

img

与此同时,开始学习51单片机(下载资料。。。)

资料截图.jpg

Screenshot_2019-09-15-13-53-07-164_com.android.systemui.png

Screenshot_2019-10-13-23-37-06-063_com.mxtech.videoplayer.pro.png

对了,我甚至还在b站打开了经典影片(十天放弃单片机):

郭天祥视频截图.jpg

如你们所愿(截止发稿日期,我还没有打开看。。。:))

数日后:部分零件到位:(赶在了双十一之前哦img

到货截图.jpg

当然:学校也试图让我们懂一些什么。。。(不过,他好像失败了)

学校授课.jpg

第一次去自己尝试拼板子,当然有很多差错,会有许多奇奇妙妙的出现,如发现少了一只紧固件(一个透明的小片,用来固定马达和板子的),结果最后一个马达就很难安装固定好,就(灵机一动)使用纸板来固定,从而引出无数bug。(但是第二天扒拉到了紧固件,就解决了,哎!)

IMG_20191029_001928.jpg.JPGIMG_20191029_002812.jpg.JPG

最后因为小车是双层的(一般可以做单层的就足够了),就在安装好第二层后发现没有在第一层安装东西,于是又拆掉了(打算第二层为一个盖子)(内心很尴尬)。

img

中间有太多别的事情(好吧,是懒),小车在装线阶段,卡住了,一直没有进展,就放了好久(因为比赛日期还有一个月,全力向着deadline前进!)

然后小车单片机无法下载程序。。。

(检测不到单片机)(我一直担心是不是插反了,导致我的单片机烧毁了,最后发现还好不是~~img

询问学长才发现所购买的单片机的晶振消失了,淘宝商家又补拍给我。。(但是晶振太便宜,于是自己又下单4元(一半是运费)买了20个,庆幸,时间和双十一紧挨着)

小车代码阶段:在硬件拼装完成后,代码从网络上copy,但是出现了许多不适配的问题,紧接着经过不断地爆肝调试,在这个过程中也对代码不断理解。但是依次出现了小车的各种问题,但一步步在变好。

代码.jpg

从只能原地转圈(四个轮子的驱动指令反了);这个好搞!!!(许多小车因为这个原因,总是自动原地,爱的魔力转圈圈)

视频.gif

再到有一个轮子是反转的(原因同上);

再到只能走直线(红外感应器的代码对应的接口写错了);

到只能够走弧度较大的弯道,到能够走直角(但此时不会走弧度较大的弯道了,因采用的是增加转向时的延迟,所以这个很难控制);

最后比赛前夕,发现其他队伍都是参考学长们的代码,我们也就临时copy了一份,发现代码逻辑确实有很大的变化,思路更为清晰,解决了不少我们的一些困惑和更好的理解了小车的运行原理。(后来比赛时才知道,代码这个事情大多参赛组都是祖传代码。。。)

但copy的代码又有了一个新的问题,借来的代码(读书人的事情,对吧)是单驱动的,而我们的循迹小车采用的是双驱动,在面临这个问题时,我陷入了犹豫,是将循迹车的硬件(主要是接线)更改为单驱动,还是我自己多研究代码,将其改为双驱动呢???最后,在10min的漫长思考后,我打开了三份代码,打算突破一下自己,开始研究代码,半个小时后,增加了几个电机(驱动)的代码,将循迹的转向,偏移等进行了更改。最后将代码写入了小车,成功了。

但是,我们在自己制作的小车赛道中(就是用电工胶带铺设的黑线),遇到了红外感应器过高,感应很不灵敏,于是我们又通过增设铜柱,使之近乎摩擦地面而前行。好在方案可行。

最终能够实现跌跌撞撞的前行(过于灵敏),转向。此时已经是夜里12点多,8个多小时就要开始比赛了。(虽然还有很多队比我们的情况还要恶劣,但也有大神的)。

完成制作了!!!撒花。(代码就不放了,因为写的太烂了)

小车雪藏.jpg

后来:

表情包0基础.jpg

输了。

是的。

自己亲手制作的小车在赛道上向观众们展示了灵车漂移,在一惊一乍中,在经过第一个点后,脱离了赛道。。。第二次机会测试的时候,小车直接冲出赛道(红外传感器有一个失灵了),视黑线于无物。这就是我很尴尬了。。。

当然,有不少小车真的很强,从他们小车的动作中,我看到了小车配件和组装的更多可能,以及小车代码的更多可优化方向。(其实就是我太菜了。。。哈哈!)

表情包太菜了.jpg

最后,虽然输了比赛,但在比赛前,我们每天都坚持到午夜,经过一星期的努力(有些晚了,应该提前准备的),从无到有,将一堆没有灵魂的零件,通过自己的组装,写入代码,使其能够跌跌撞撞的跑下去,虽然他还是个憨憨,但是这不就像成长中的我们么?我们不也是像那个小车一样,在一次一次的失败,报错中,积累经验得到成长的吗?而且,在这次的准备中,我也积累和收获了不少的知识与感悟,在代码的思索中,更清楚的认识到面向过程的c语言是怎样的,在单片机编程方面应该注意些什么。自然,个人的收获是大于比赛的。

有收获

那么?回过头来:此类比赛的意义究竟是什么呢?它既不能使社会的财富大大增加,也不能使得相关技术得到突破,甚至说他还有一点点浪费学生的时间和社会的资源,是么?我们是为了证明我们自己优秀而特地来为了获得奖项来证明我们自己的么?不,不是,或者说不完全是。

在这类竞赛的过程中,更重要的是面向过程的,结果并不是出发的前提,我们选择了远方,不仅仅是因为目的地的美好,更是因为沿途的美丽风光不断地吸引着我们;同样,在acm,ccpc等的竞赛中获奖者并非多数,但能够有许多志同道合的朋友在一起,一起为了一个方向而努力,一个目标而前行,这样的奋斗过程才是幸福的吧。他们往往称自己痛并快乐着。是呀,能够在青春最美好的时间段里,去勇敢的追逐梦想,过程本身就是一件令人振奋的事,不是么?恰同学少年,风华正茂;愿诸位不忘初心,方得始终。

感谢阅读,欢迎交流哦!