编者按:本文作者为Atommann,他上周末和同伴bnw及xyh组成SZDIY团队,参加了硬创邦主办的全球创客马拉松比赛。他们开发的lambda-tortoises是一个可以绘图的海龟机器人,获得了本次比赛的一等奖。本文为Atommann对比赛的回顾,硬创邦做了不改变原意的编辑。
有一件事对我有所启发。这学期幼儿园开学,我去开了一个家长会,老师说学生可以报兴趣班,比如英语班,绘画班,科学班等等,而且说:“科学课比较贵,我们是请校外的教育公司来教,100 元一节课。”
我当时就想,我自己就是工程师,懂得一些东西,而且对科技有兴趣,为什么就不能自己想办法,做一些装置来教 (启蒙) 自己的孩子学科学呢?比如这个海龟机器人。
(关于创客马拉松) 说一些我还记得的。
Hackathon (指创客马拉松) 是周五早上 10 点开始,这个时间确实有点早,出门时我匆忙赶到公司去拿自己的工具箱,里面是一些常用工具:各种 USB 线,电线,钳子,排针,Arduino,电机,AVR 编程器,rPi,焊焬丝,多孔板,面包板……
去 hackathon 一定要带自己的一套工具,有很多原因:主办方不可能准备好一切;主办方的工具数量有限,如果别人在用一个工具,你得等,这会浪费时间;用自己的工具更顺手。
到了现场,发现 bnw 也来了。非常好,因为我们团队就多了人手和可以想 idea 的人。现场环境很好,校园里人很少,整层楼就有两个大露台,还有一个咖啡厅。有地方睡觉。只是每个团队的桌子有点小。
Hackathon 一开始我们就立即安排,bnw 用 inkscape 画了小车的底盘。由于主办方不能提供激光切割机和服务,我准备去公司切割。到了公司我就等 bnw 的图纸,但把 SVG 转成 DXF 始终有问题,一些孔消失不见了。后来 bnw 找到了正确的方法,我也得到正确的图纸,几分钟之内完成了切割,然后拿上白板纸,坐上最后一趟地铁往hackathon 现场赶。
画图的白板笔是用舵机控制的,但我以前没有用 amforth 控制过舵机,解决方法:先 Google 已有的代码。我只找到一个有关例子,读懂了代码,但代码太旧,寄存器名也对不上。于是我拿了电脑,笔记本,铅笔,一块 Arduino板和一个舵机,到露台上。我坐在地上把 datasheet 上 PWM生成的相关内容读了一遍,改了几个寄存器名字和参数,就可以控制舵机了。也就是说,我们定义 word pen-up 和 pen-down 了。
应该是在周六下午,机器人安装起来后,我们让它在白板纸上画一条直线,但得到的是一条曲线!不是一般的曲,而是非常曲!(现在想来,可能是由两个电机的启动时间有个小间隔造成的,要检查代码) 我想,这下子完蛋了。xyh则认为可以找出一个“线性系数”来修正。压力很大,我决定出去散散心。
等我回来的时候,xyh 说他可以让机器人走直线了,简直不可思议!据说是在一个电机的速度上乘了一个系数,在没有反馈和控制算法的情况下,能尽量走出直线,这非常关键。然后,我们又通过实验,找出了可以让机器人转动某个角度的时间常数。
我的电脑可以连上蓝牙模块,bnw 的可以,rPi 也可以,但主程序员 xyh 的电脑却不行!这可把我们急坏了。经过各种尝试,还是让他的电脑连接上了蓝牙,这意味着他可以开始用键盘和他那台老旧,但他可以运指如飞的电脑和机器人“决战”了。
周六晚上,我们在露台上喝咖啡休息的时候,就想在最终演示的时候应该画什么图形。xyh 说:“我要写哈工大三个字”。我拍着桌子大笑说:“xyh,你这个有拍 HIT (指哈工大) 马屁的嫌疑!而且,写中文,没有闭环控制,难度会很大,写英文字母 HIT,三个字母都是直线。”xyh要汉字这件事,我没有放在心上,以为他只是开个玩笑。
周六半夜,我和 bnw 都去休息了,xyh 说他在通宵工作 (当天喝了三杯咖啡,A hacker is a machine for turning coffee into awesome codes)。早上醒来,我立即去看 xyh 的进展。不看不知道,一看吓一跳。首先,地上的白板纸上有一个“口”字,中规中矩,这就是说机器人可以画矩形了。我走到他电脑旁边看,发现他居然是用中文在编程!这可真是把我笑坏了。(代码在这里)
原来他是在编程写“哈工大”三个字!而且很快就做出了原型。然后很快就可能让机器人画一点小鱼,这样,机器人基本上达到了可以 demo 的状态。于是星期天早上到中午,我都处于基本无事可做的状态。
中午吃饭的时候,他们告诉我有麻烦,说机器人写出来的字不行了。这可麻烦了!还有 30 分钟我们就要上场了!我们三个人一起工作,xyh不停调试程序,我和 bnw 负责摆放机器人,擦白板纸。我们和主办方争取到推迟上台的机会,xyh 继续调试程序。我发现机器人一个轮胎的轴套破掉了 (有一条裂缝),这是一个可能的原因,于是用 AB 胶做了简单的修复。xyh也继续改程序。后来终于达到我们满意的程度,我说 OK 了,可 xyh 始终不肯放弃,说“这个哈字值一万块钱!”。所以,“用一个周末写了三个字赚了一万块”的说法是不准确的。(注:硬创邦之前在报道中说,他们写了“哈工大”三个字,赢得了万元大奖。这里的意思应该是,写出“哈”字就代表解决了问题,稳操胜券)看来他很有自信,我却没有那么自信。
我们要离开的时候,主办方说要把机器人留下,我想带走继续改进,可 xyh 催我说:“快给他们,快给他们!我缺钱,我缺钱!评委和我聊天的时候,我说我缺钱,所以他们把一等奖给了我们。”这个,这个,我真不相信。(注:硬创邦的评选当然是公平公正的啦)
xyh 还提醒我在演示的时候千万不要提 lisp (我心想,这家伙真精),难道是怕那些括号把大家吓到?于是我有没有提,因为底层改得太多,而我们的 lisp 代码又没有准备好,会影响 demo。
星期天其实我想给 rPi 做一个机箱,把它做成迷你电脑,但 7 寸的车载显示器显示效果实在太差,就没有做迷你电脑,后面我准备用别的显示器。
我们还要继续改进 lambda-tortoises,要达到我们设想的初衷。
大概在小学五年级的时候 (1994年),某天老师对我们说:“最近有一个科技制作活动,大家可以做一些制作交给我,我交到中心小学去展出和评奖。”
然后我向老师提出一个想法:我们可以做一个电动小车,可以遥控它前进,后退,左转,右转。别的几个同学也有兴趣,有一个同学说他们家里有小电机,于是中午我们走很远的乡村小路到他家里拿零件。但我们根本无法完成这个项目,原因有几个:无人指导,我们所拥有的零件只有电线,所有的工具只有老虎钳和螺丝刀 (记得某次老爸修电器,还叫我到别人家借电烙铁)。
电动小车做不出来,我不甘心,决定做一个叶轮。因为那段时间我正在玩的一个项目,是把水装在玻璃瓶里,用蜡烛在下面把水烧得沸腾,蒸汽就从前面的一个针头高速喷出。如果我能用蒸汽推动叶轮,那就可以想办法让它带动一个小直流电机发电。
于是我找到一个塑料瓶盖,一些铝片,几块木板,坐在家里的八仙桌边,先把铝片用钳子折断成我想要的大小,再用钳子夹住铝片放在煤油灯上烧热,然后插到塑料瓶盖上。之后找了一根铁丝做为轴,用螺丝刀在木板上钻孔 (因为没有钻头),再用铝片折弯,做成L 型支架,用钉子把轴承座订在底板上。
第二天就把这个制作交给老师,过了一段时间,老师给了我皱巴巴的一元钱,说是中心小学给我的奖励。我也去中心小学看了别人的一些制作,现在还有印象的是一个用绳子套着的飞机,绳子穿过一根管子,利用离心力它可以飞起来。
20 年之后,我和 SZDIY 的另一群小伙伴们一起完成了小车项目,但以另一种有趣的方式完成 :)
“英特尔Edison鼎力支持中国创客!打开微信,搜索【英特尔中国】回复B,密切关注创客产业!”