正式看之前还是放一个音乐吧,全文6000多字,废话又多,怕你们睡着了


2017年总结

周子顺


时间很快,转眼间在718实验室也呆了一年了。在这一年里也经历了很多,也有很多话想对下一年的人说。这个总结我想分为几个方面。首先我想谈一谈我这一年的经历,其次我再想谈一谈刚来实验室的一些感受,然后我想再谈一谈关于参加 NXP 智能车赛和全国大学生电子设计竞赛等其他比赛的一些感想,我还想谈一谈在实验室的日常和实验室之外的一些事情,最后我还想谈一谈实验室的发展。

一年经历

  1. 首先说我的经历吧。我从小就对电子技术比较感兴趣,从小就喜欢拆卸研究各种电器,喜欢研究电脑的操作系统等。上大学前就自己修过手机屏幕和主板,制作过简单的红外遥控器,研究过Unity3D 做过游戏,学习过C++(面向过程的C++,相当于 C语言加上一些简单的 STL 算法库),搞过算法竞赛,也略微自学过 Java,研究过路由器搭建小型服务器等。还记得当时刚入学班助就向我推荐了一个“718 创新交流群“,我怀着试一试的心态加入了这个群,开启了我这大学的科创生活。之后就是参加了实验室的纳新提前批,提前批也就是3道程序题,由于之前的 C++基础,我相对容易的完成了 3 道题,不过也是付出了很多,记得那个国庆假期,我就出去玩了2天,剩下的5天全部在寝室里解题,最晚一次是编程到凌晨两点。进入实验室后就开始学习 51 单片机,一个多星期写了一个电子钟。之后就开始开始准备校园智能车赛,我们采用的是KL26单片机和摄像头循迹方案,效果比单纯的用光电对管循迹效果要好很多,难度也涨了很多,记得当时的情况是一星期勉强入门ARM的单片机,之后结合例程和成品电驱板,花了一个周末的时间勉强让车动了起来。后来的一个多星期主要是在调参数。最后参赛,因为场地光线原因,遗憾没能拿到第一。记得那段时间提到做车就很激动,一点点的看着车从不能跑到能跑,过不了直角弯到稳定过直角弯,从经常时不时断言到后来稳定的运行,做小黄车一路上有激动也有遇到很多困难。经常是晚上接近 11 点了才回寝室,晚自习也是经常上一半就跑出去。小黄车结束后,实验室有了正式的第一批纳新。之后寒假就开始组队制作智能车,我和公续荣,董书航一组,参加的电磁节能组。说实话这是个今年新加入的组别,我们确实遇到了不少坑。我在队伍里面负责是是软件部分,原先的计划我软件,公续荣机械和电路,董书航电源,当然后来也发生了一些变化我后面会提到。二月份寒假,我基本写完了程序的完整框架,还学习了Qt图形编程。三月份时间安排不周,直到三月中旬才把电路板设计出来开始调试,三月份主要就是在调试电路板,调试程序等,之外还进一步学习了Qt,学习了Git代码版本控制工具,也初步了解了一些单片机的底层。四月份工作就很枯燥,就是调车,其实也没怎么调,基本就陷入了一个循环,运放出问题,修运放,之后电感出问题,修电感,然后运放又出问题……基本就是整个系统到处出问题,车基本不能跑,而我们节能组最重要的电源部分还没有开始做。四月份在调车之余用Qt 写了智能车校赛的光电计时系统。进入五月,五月初校赛,车还是跑的很烂,电源还是用的很普通的芯片,没有经过优化。校赛结果非常糟糕,6次发车全部失败。智能车就暂时告一段落,之后参加了校电赛,帆板控制系统,我设计了一个蓝牙控制的上位机,再加上公续荣设计的舵机控制距离,效果非常好,获得一等奖。记忆很深的是电赛最后那天晚上的死亡冲锋,一夜没睡,电赛大部分的东西都是那个周末做出来的,很累,也很有成就感。进入7月,车还是不能跑.7月22号比赛,离比赛还有20天,其他组都上两米了,摄像头都在想办法稳定在 3 米了,我们还不能跑,你们能想象我当时的心里压力吗.说实话那段时间我真的非常想放弃,而且看得出来,我们的一位队员可能已经放弃了.不过在学长的帮助下我们重新设计了电路,直到 7 月 17 号左右我们才开始快速的调车.我和老公(误)(公续荣)实验室连续通宵 5天,5 天没回寝室,等我回去发现人都少了两个.每天吃饭,睡觉,调车,就这三件事情,真的就是非常努力的调车,不过最后还好调到两米多了.记得那段时间印象最深的就是每天晚上两点我都会和老公一起去 3 楼的饮水机那里接开水泡方便面吃,休整一下,然后继续调车.那段时间我过得很累,不过内心却很满足,7 月份我瘦了 10 斤.之后去青岛比赛,比赛成绩并不是很理想,主要也是因为初始的方向选择的就有问题,就是在一条错误的道路上越走越远,所以今年想做节能组的一定要慎重,也一定要和我们多沟通,我们去年掉过的坑希望你们不会再掉进去.之后就是做电赛,没错,电赛就是在暑假,所以暑假想回去的同学我就先给你们说一下你们基本没有暑假了.我去年只回去了5天时间.电赛又是跟老公和刘健建学长在一起的8天8夜,又是8天没回寝室,又是每天晚上去3楼泡方便面……还发生了一件趣事,8天里每次都是刘健建的外卖最先到,之后是我的,最后是老公的,8 天,24 炖饭,每次都这样.然后电赛比赛,初赛很优秀,复赛失利,没能去西安的最终国赛.大概就是这样吧,没想到一年过得这么快,经历了这么多,现在想起来还有点感动吧,感谢那些和我一起奋斗的朋友们!

关于刚到实验室

  1. 有关刚来实验室的感受,其实我觉得首先还是要再问自己一次是不是真的喜欢科创,是不是真的愿意为科创付出心血。718实验室和很多其他学校的实验室不一样,平常没有老师或者其他人天天盯着你要求你完成什么任务,一切全靠兴趣和自觉,加入实验室也很累,有可能你要牺牲掉周末,牺牲掉你的睡眠,甚至牺牲掉你的学习时间。所以我觉得既然选择了科创,选择了加入实验室,就要努力为实验室付出。其次,我觉得要学会提问,向你身边的学长或者同学提问题,学长都是在实验室呆过一年的人,有技术上的难题总会有学长能解决,也许就是可能就是一句话,比你自己研究几天都更有效果。同时我也相信,实验室的所有学长学姐都是愿意帮助你们的。

关于智能车比赛

  1. 之后我说一说关于做智能车方面的事情吧,做智能车的直观感受就是累,真的累,不管是身体上的累,还有心理上的累.这也是有些学长大二不太愿意做智能车的原因吧,不过我还是希望大一进来的队员都要参加这个比赛.一方面 718 实验室是智能车实验室,做智能车这个事情确实还是需要有人来传承的,从另一个方面来说,做一辆智能车确实很锻炼人的,智能车作为一个实际的工程项目,做一年智能车不仅能学到技术上的知识,更能学到的是处理实际工程问题的方法,做工程和做理论研究很不一样,什么不确定的情况都有可能发生,看看每年比赛有多少队伍翻车了就知道了,其实还能锻炼你的心态,锻炼团队协作能力等等.做智能车也仅仅是后期调参数比较累,前期准备写程序,画电路板等等还是很有意思也能学到很多东西的. 以下是我的一些建议:
  • 首先是队员一定要选好,真的队员太重要了,跟一个和你合作不好的队员合作,真的还不如没
    有人合作,这是我今年的教训,希望来年学弟们一定要选择好队员.队员技术都是次要的,最主
    要的还是看这个人是不是想和你做一样的组别,这个人是不是有十足的科创精神,是不是真心
    的想做科创,别做到一半队员放弃了.

  • 队员的任务分工一开始就要做好,最开始就要敲定每个人大概要做什么,别像我们去年那样,
    一个寒假过去了都以为有人在学画板子,结果到头来根本就没有人画板子,分工不一定要很细
    致,因为也不可能什么情况都考虑到,但是大体的分工一定要有,谁写程序,谁画板子等等.

  • 理想
    的结果是两个人写程序,一个人做硬件,另外如果你们想做节能组的话就两个人做硬件和机械,
    另一个人做软件.

  • 队员之间多沟通,尤其是在寒假的时候,一定要经常沟通,你们可以经常内部组织小会,当然我
    们也会经常性的来督促你们.
    如果沟通交流好的话,那么任务分工一定是清晰的,时间制定也一定是清晰的.

  • 说下时间制定,
    一定尽量把时间向前提,尽早的完成更多的工作.

  • 寒假非常重要,学软件的一定要在开学前把
    大体的框架搭建出来,做硬件的要在开学之前把你们的第一板电路发出去,你们开学后就开始
    软硬件的组合,最好的情况就是两周之内就能让车跑起来,前期工作做的好的话最坏一个月也
    能跑起来.

  • 一定要尽早的让车跑起来,跑起来才能发现问题,改进算法,一般都是软件等硬件的,
    像我去年就是等了一个多月的硬件.

  • 我去年是做软件的,就多讲一些软件方面的事情.关于用软件库的问题,不知道你们明年用什
    么库什么单片机,我们去年用的k60单片机,山外的库,我建议如果有能力就上KV58等更高级
    一点的单片机然后使用相对更复杂但是更正轨一点的官方库,并且使用 CMSIS 的算法库,这
    样要求可能有点高,但是对后续学习有极大的帮助,能少走许多弯路.

  • 做软件的别一上来就想
    着什么高级算法,先就用最普通的PID,最普通的巡线算法,高级算法都是后期的事情,智能车也
    不是一个非常复杂的系统,你会发现最后还是一些相对简单的算法更有效(相对简单),直到你
    简单的算法调的差不多了也遇到瓶颈了,可以再加一些更高级的算法.主要也是这么多年了我
    们实验室也没有能够对智能车建立一个数学模型,多数时候也是靠经验来调.

  • 关于做车,硬件非常重要,机械更重要,千万不要以为车跑的不好就把锅推到软件身上,错了,硬
    件决定了这个车的极限速度,软件只是说能不能达到这个极限速度.尤其是想做节能组的同学,
    出问题基本都是电路和机械的问题,别把什么都往软件上推,就这么说吧,去年我们3到7月把
    车调到了1m/s的垃圾速度,7月中旬换了电源方案,5天调上2m/s,我甚至有信心调到2.5m/s.

  • 做车别想着什么都要自己干,学会信任队友,别人干过的东西就不要再去干一遍了,多花时间
    在研究新的东西上面.

  • 做车也别太过于拼命了,还是注意下你们的身体,你们的学习成绩等等.

  • 做软件的一定要学会利用工具,比如我在这里强烈推荐的 Git 分布式代码管理系统,能有效的
    对代码进行版本控制,版本控制是很重要的,经常是调着调着车就不能跑了,你代码的版本就
    要回退回去,另外 Git 还可以用来多人协同编程等等.

  • 学会查找资源,现在互联网上的资源已经
    是很多的了,没事多去各种技术社区看看,比如 CSDN,不一定要和车有关的技术,什么都可以
    了解了解吧.

  • 平时都了解单片机底层的一些知识,了解了解寄存器的操作,不知道怎么操作就
    可从单片机是如何启动的开始看起,看着是汇编,看着看着就会了.

  • 想全方面发展的去看看单
    片机之外的东西,学学电脑上的编程,学学操作系统啥的都是可以的.

关于其他比赛

  1. 关于做车我大概也就想暂时说这么多吧,进入实验室了,大家以后交流的机会还有很多,关于
    做其他比赛以及比赛场上的相关注意事项,我想通过电赛这个比赛为例简单说一下吧,以下是
    我以前在知乎上的一个回答:

    链接:https://www.zhihu.com/question/30453295/answer/216494491
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
    泻药~
    刚参加完17年电赛,做的B题,板球控制系统,我负责的是软件部分目前省赛初赛结束,
    我们组得分99分。感觉还行,就看几天之后的复试吧。
    怎么说呢,全国电赛确实很难,我觉得最大的难点还是要求4天3夜就要做出来。不像NXP
    智能车赛,电赛就要求前期必须要有很多的积累。
    比如,熟悉各种外设,摄像头怎么调分辨率,怎么调阈值,蓝牙怎么配置,陀螺仪怎么卡尔
    曼滤波,OLED怎么刷图,闪烁了怎么办,触摸屏怎么adc采集等等,熟悉参数整定的方法,
    PID怎么调,什么时候该加入其他控制算法,是机械的问题还是参数的问题等等,知道如何
    快速的解决问题,比如我们做到最后一天,摄像头突然图像撕裂了,网上也找不到解决方法,
    就想到可能是中断嵌套了,修改了中断优先级立刻就好了那天晚上如果没有快速的解决问题,
    那我们也就只能弃赛了,还要有耐得住通宵的身体,我们组在实验室呆了八天(电赛前就在
    准备)每天睡4.5个小时,连通8天还是有很多人受不了的。
    再说些其他感受吧。
    1.人员配置很重要,队员间最好有一定默契,最坏也别有矛盾,队内先分裂了,那只有完蛋。
    其次控制题机械真的很重要,也难怪有人说这是电子类机械设计大赛。我认为最理想的情况
    就是有一个会3D打印,会切割,会雕刻,能快速设计出稳定的机械的人。一个一天能写几
    千行代码,熟悉至少一块单片机和各种外设,能快速 debug 的软件很强的人,还有能一个
    精通模电数电,能快速搭一个电路出来,熟悉焊接技术的模电强人。这样的话,软件硬件机
    械都有就很强。
    2.时间分配很重要,敲定一个题就不能中途换题。我们组的分配是这样的:第一天上午三人
    共同决定做的题目,设计好大体的思路,下午和晚上负责软件的人搭建完大体的软件框架,
    另外两个人搭建大体的机械和电路框架,焊接调试了以前设计的一块 PCB 印刷电路板。第
    二天上午,我在对各种传感器进行调试,另外两人分别在安装传感器和组装机械,前一天3D
    打印的各种器件也基本打印完毕,他们在安装。下午就基本组装完成了,勉强能开始调试,
    当然遇到了很多的坑,发现很多不合理的地方,比如摄像头晃动严重,舵机供电不稳,舵机
    舵盘太长,容易产生虚位,软件还是有一堆 bug,甚至我们还遇到 jlink 掉固件了。经过一
    夜的努力,第三天上午我们开始调参数了,我和一个队友在调参数,另一个队友在进一步的
    完善机械,3D打印确实很不错,就是很耗时间,有一个连接件我们打印了15个小时才打印
    完。调参数也是遇到很多坑,最开始我们想的是用普通的PID控制,效果就还可以了,勉强
    球不会掉下去,后来我们又尝试了模糊PID,变论域 PID,bangbang控制等等,最后越调
    越烂,最后还是硬调普通的PID解决了问题。第四天,大概就是在搞附加功能,我们想的是
    用之前我写的一个蓝牙调试助手来控制球的位置,用触摸屏控制小球位置,用自制遥控器控
    制小球位置不过最后遥控器调了两个小时确实没调出来就放弃了,搞机械的队友继续搞附加
    部分的机械,另一个队友继续调参数,我在调试附加功能,结果到晚上又出现之前提到的那
    个问题,不过还好,最后顺利封箱了。
    3.赛前的积累和准备很重要,这个积累不仅是个人的知识经验的积累,也是整个参赛实验室
    整体的积累,这样就算一个人遇到了问题暂时解决不了,但实验室里总有人能解决。一般赛
    前几天都会有很多猜题的人,可以多去论坛或者多加几个电赛群看看。赛前的前几天,我记
    得我在调试熟悉各种外设,摄像头,陀螺仪,加速度传感器,OLED,触摸屏等,特别是触
    摸屏,完全是临时学习的,电阻触摸屏没什么人用了,所以卖的也很少,网购怕来不及,跑
    遍了半个市才找到几块,网上也只有原理没有现成的程序,我也就只能一边拿示波器了解原
    理,一边自己写库,一个 xy 轴坐标互相影响导致定位不准的问题卡了我好久,最后发现是
    一个gpio的电平配置出了问题。另外一个队友设计了一块PCB印刷电路板,发加急在赛前
    发回来了。电赛前一个星期基本上实验室就是24小时有人的状态了。
    4.比赛前运输设备和现场调试很重要,今年这个板球系统尺寸都很大,很多队伍都选择拆了
    到现场组装,其实非常不好,很多都出问题了,比赛前螺丝掉了的,舵机舵盘被撞烂了的,
    摄像头歪了的,舵机中值变了的….很多问题,我们也是那天比赛下暴雨,板子被雨淋了,有
    点变形再加上之前标定的失误,最后那个绕圈的功能失败,不幸扣了一分。现场调试千万心
    态别炸,遇到再严重的问题心态都别炸。赛前做好重要元件的备份,比如单片机,摄像头排
    线等,想好可能遇到的问题,我应该怎么做。遇到答辩老师别紧张,一般他们不会故意为难
    你的。

以上就是我知乎上的回答.

大一之后

  1. 说了这么多,最后再谈一谈实验室的发展和个人的发展吧.大二上也是个技术积累的关键
    时期,大二上没有比赛,能更多的做自己想做的事情,也是拉开差距的时候,怎样让自己更有效
    的学到东西?同时没有比赛,实验室成员之间的交流变少后怎样把大家团结在一起?众所周知,
    实验室今年变化很大,尤其是纳新方面,怎么样才能在联合纳新的情况下收到更好的人?没有
    提前批了怎么样才能吸引到技术很强的人?怎么样处理好和其他实验室的关系还有和科创中
    心的关系?这些都是问题,不仅你们要面对,我们也要面对.到你们这一届实验室有可能要搬迁
    了,会有更大的地盘,怎么利用好这些地盘,需不需要扩大实验室的规模,扩大以后人员在质量
    会不会下降?随着时间的发展,智能车比赛也开始走下坡路了,如果有那么一天,智能车真的不
    行了,我们实验室有应该如何转型?等等一系列问题都需要我们去思考.

尾声

  1. 说了这么多,也感谢你们有耐心听我这么啰嗦的说这么多吧,说了这么多,最后怎么做还
    是看你们个人了.实验室是你们的,也是我们的,但最终是你们的.努力学习和生活吧,比较美好
    的大学时光也是如此的短暂,我也希望你们日后回忆大学生活,有一个叫718的实验室,有一群
    热爱科创的人令你们留念.