蔡杰:创新与实习
创新与实习
F0903029 5090309058 蔡杰
马上就是大四毕业的时候了,感慨良多。大学四年是我人生中极为重要的四年,这个阶段,定型了我的爱好,也极有可能决定我未来几十年的职业。无论怎么赞美这一段美妙的时光都是不为过的。这四年,我学到了很多,不光是专业方面,也有人生、未来方面。纸上得来终觉浅,绝知此事要躬行。在这里,我具体的讲讲我参与的两件事情。一个是学校的大学生创新计划—发牌机项目,一个是在英特尔亚太研发中心的实习经历。
先来谈谈发牌机项目。
在研究设计阶段,主要的设计困难在于将洗乱的牌整理整齐。在遇到瓶颈之后,我反复的考虑,设计了多种模型。一种是基于人洗牌时的手部动作,先不分角度的将牌落成一堆,然后将牌竖起来,模拟人手的动作,利用重力将牌理顺,同时通过连杆将垂直于桌面的牌捋顺。但是这个办法也很快就被否决了,机械结构过于复杂。模拟人手的翻腕、挤压、以及手指的拨动,需要大量的电机、连杆来实现,这违背了设计的初衷。后来,我受到了滑滑梯的启发,也让牌来做滑梯,上宽下窄,那么牌滑到底端的时候,不就已经理顺了么?但是实践发现,摩擦力远远大于重力,牌会卡在突出处,根本不可能往下滑动。那么,如何才能把卡住的害群之“卡”给揪出来呢?再次受到了人手操作时的启发,我想到可以通过连杆的上下运动来捋顺牌。这样,捋顺牌部分的电机数量被降为了两个。
最后一个设计上的矛盾点,在于入牌口的设计,最先设想的两道门式的入口,虽然紧密型可以得到保障,但加工难度和复杂度实在是令人堪忧,为什么不可以用已有的资源来完成这件事情呢?我们已经有一个电机了,能不能利用它呢?最后我们采取了简单的滚筒式旋转门,一举解决了这个棘手的问题。
在项目实施阶段,我和同学们跑了很多地方买材料,上海专门卖电子设备的北京东路我们也跑了好多次,有的时候由于对这些内容不是很了解,由于一些参数的选择上会有一些偏差,没少走弯路。特别印象深刻的是一次电源的选择问题。我们的单片机是6V供电的,但我却贪图电机功率买了12V的电压源,结果完全无法匹配,而降压的电路却又非常复杂,实现的很不实际。只能将买来的电压源丢弃,虽然不是很贵,但却着实给自己上了一课。
我们的核心结构,是亚克力板的材质,需要先电脑作图,然后送到加工厂刻板。结果样品却让我们大跌眼镜,明明应该是连成整体的一个圆却被割成了三份。我们百思不得其解,去找加工店的老板,他给出了答案。我们作图的经验不足,没有深刻了解加工的过程,激光刀的走线是严格按照作图来的,虽然我们的轮廓是正确的,但却不是一个整体,中间的小部件没有与外壳连为整体,这样,激光刀违背了我们的意愿,却又忠实的按照图样切割,结果中间多了两刀。
单片机程序设计是完成由我来负责的。因为只是简单的C语言,因此基本上没有什么障碍。唯一让我心有余悸的,是舵机的控制。从网上的资料,舵机的工作频率是不给出的,因此,我第一次在测试的时候,完全找不到方向,因此只能盲人摸象般尝试。很不幸的,有一个舵机在测试过程中烧毁了,后分析原因,还是这个探索式的研究太过冒险,还是应该多查资料多考虑。最后,我们在一个专业的航模论坛上找到了答案,原来航模使用的是50Hz的工作频率。有了理论基础,我们的测试也非常的稳健了。
再来说说我的实习。
正式参与到公司的运作中之后,一开始的工作并不涉及核心内容,只是参与了客户的支持。正式编写第一条自己工作用途的java代码,生成符合客户要求的数据,再进一步用这些数据来测试性能。这些事情看似枯燥乏味,但每次更新自己的代码,都是一次进步。而一次又一次的执行插入数据,调试数据,读写数据的时候,也是一点一点加深我对整个系统了解,提高了我操作的能力,以及遇到问题之后,解决问题的能力。
比较记忆深刻的,是一次将客户要求插入Hbase的操作。由于对同事的代码细节没有仔细深刻的研究,没有很好的理解,因此,在一开始操作的时候,错误的认识了region的划分规则。在查找到这个问题以后,我迅速改写了代码,将整个region的分割区间调整为0到30,这样,很好的解决了分布不均匀的问题。
在这个工作中,我们还遇到了许多硬件问题。比如有一次硬盘发生了损坏,生成的数据发生了丢失。我们进到lab里,一点一点排查硬件问题,将发生错误的硬盘取出调试,然后再反复试验,终于按时完成了数据插入的任务。
结束这一阶段的客户支持之后,我正式参与了产品的开发。一开始,布置给了我一个比较简单的任务,大框架已经搭建好了,但是第一次接触这么庞杂的代码,接触到很多没有人仔细研究过的关节性问题,着实让我费了一番周折。在查阅了大量的代码之后,终于找到了切入点,然后又从网上找了很多处理的办法,从前人的工作中找到自己可以利用的部分,然后做出改造,终于按时完成了所布置的任务。
在这一过程中,我体会到了工作和考试的一大区别。考试主要考察学生的知识记忆能力,至少是在记忆的基础上运用。但工作却不是非常注重记忆,而是着重点在运用上。写代码这个工作,世界上有无数的人参与,别人的工作,只要是开源的,都可以借鉴。整个软件项目非常巨大,远远不是能够凭借几个人的才干就能完成的。项目设计计算机的许多方面,从操作系统,到java的各种工具和接口,茫茫多的未知领域。在这种情况下,就一定要有资料搜集和整理的能力了,恰当的借鉴他人的代码,可以使你事半功倍。许多论坛网页,以及项目原始API文档,都是借鉴的金宝典。逐渐的,我锻炼着自己这方面的能力,从不会搜到会搜,从看不懂到逐渐看懂,一点一滴提高着自己的能力。
紧接着,经理布置了另外一个开发任务。这次的任务没有框架可以参考,全部需要自己搜寻。从底层的系统构建,数据的搜集,到接口的应用,界面的实现,统统需要自己来搞定。仍然忘不了盯着屏幕整整三天,才终于搞清楚几个配置文件的作用,更忘不了终于拿到数据之后的喜悦。这,也就是实习的意义所在吧。
这个任务本来就是研发阶段,很大程度上是要求搭建一个组内从来没有应用过的框架。而这个框架,却没有可以一起讨论的同事,因此,所有的问题都需要我自己来解决了。在网上整整找了两天,翻阅了各种文章,终于,在最后让我尝试通了。当看见正确的返回值出现在电脑屏幕上的时候,实在是非常非常的开心。
其中遇到一个很郁闷的问题,就是在加入进程监控的时候,实际情况与网上所描述的有点出入,一直报一个无法正确加载配置文件的错误。翻来覆去的检查了很久,不停的改新添的配置文件,不断的做着启动关闭的尝试,最后发现问题出在自己的虚拟机小系统上面。在和同事讨论过之后,顺利的解决了这个问题。这个事情告诉我,网上的他人资料固然重要,与自己实际情况结合更是要一丝不苟的解决。遇到问题不要慌张,慢慢的分析一点一点排查,定下心来,肯定能解决的。
我觉得,个人最大的收获,在于体验了社会,体验了不同于课堂的另外一个世界。在这个世界中,没有分数,没有测验,只有产品。没有及格,良好,和优秀,只有必须交出产品的底线。没有跟老师的讨价还价,只有任务和完成任务。这就是简单的社会,一个最简单不过的原则。
经历了创新和实习,我才开始怀念读书阶段的惬意,但,我们迟早要面对现实。所以,体验这些才是最大的收获吧。
马上就要去浙江大学控制与工程系继续自己的学业了。相信在上海交通大学的本科期间,每个一点一滴都是我的积累,我一定能厚积薄发,打造自己的一番梦想。
Copyright© 2011, 上海交通大学电子信息与电气工程学院 版权所有