Arduino 助力“跳一跳”

杭州经济技术开发区听涛小学 裘炯涛
温州中学 谢作如
微信朋友圈已经成为了现代人们社交的重要的场合,2017年末的朋友圈被一个简单的小游戏占领。在2017年12月29日更新的最新版微信中,增加了一个名为“跳一跳”的小游戏。
游戏的规则很简单,游戏中的小人要从一个方块跳到下一个方块上,玩家通过按压屏幕时间的长短来控制这个小人跳跃的距离。玩家需要每次都能让小人落在下一个方块上,如果每次都能跳到正中心还会有额外加分。
元旦假期,我也尝试去挑战这个游戏,但是屡试屡败,得分很少能超过50分。看着朋友圈里的好友都能跳到两三百分,我深深怀疑自己的笨手笨脚。稍作思考后,我准备利用Arduino挑战“跳一跳”高分榜。


图 1微信“跳一跳”小游戏

游戏分析

在游戏中,小人要从当前方块跳跃到下一个方块,玩家通过按压屏幕蓄力,按压越久,蓄力越多,跳得也就越远。

策略分析

经过分析,跳一跳的关键在于要精确控制手指按压屏幕的时间。人们可以区分1秒与2秒的时间差,但是10毫秒与20毫秒的区别,人就很难区分了。然而,机器却可以做到对时间的精确控制。
我打算利用Arduino控制舵机按压屏幕,按压一定时间后抬起舵机,小人就可以跳到一定距离之外。而按压时间根据需要跳跃的距离来推算,跳跃距离可以用尺子测量,并用旋钮传感器将距离输入Arduino。Arduino将距离转化成对应的按压时间,最后用一个按钮来控制舵机执行按压动作。


图 2所需元件

难点解决1:模拟手指

现在市面上的智能手机的屏幕绝大多数都是电容屏,一般来说需要用手指触摸才能有效,而普通的笔、木棒等并不能触控屏幕。那么可以使用哪些材料来代替手指呢?
电容触摸笔是专门为手机、平板电脑设计的触摸手写笔,使用触摸笔是最好的选择,如图 3所示。可以将电容笔固定在舵机臂上,用舵机带动电容笔按压手机屏幕。

图 3电容触摸笔

电容笔当然是最理想的选择,但是手头如果没有电容笔,还可以用导电铜箔或者导电胶布来代替。导电铜箔具有良好的导电性,将导电铜箔一端固定在舵机上,导电铜箔另一端与手指接触。在舵机带动下用铜箔按压手机屏幕,通过导电铜箔的连接,相当于手指按压了屏幕。
图 4导电铜箔

搭建结构

利用T1飞机盒做框架,搭建游戏盒子。先将手机放在纸盒中间,确定各元件安装位置,如图 5所示。


图 5元件安装位置

将LCD1602显示屏倒扣在纸盒上,用铅笔沿着显示屏画出轮廓,如图 6所示。


图 6画出元件轮廓

将LCD1602显示屏和旋钮传感器安装在孔位中,并用热熔胶进行固定,如图 7所示。
图 7安装显示屏和旋钮传感器

在舵机安装前,先垫高约1厘米的纸板,将舵机安装位置提高到与手机屏幕齐平的高度。然后用热熔胶将舵机固定在纸板上,将舵机臂安装到舵机上,由于舵机的塑料臂比较短,可以使用长约6厘米的雪糕棍进行延长,如图 8所示。


图 8安装舵机臂

在雪糕棍上安装一个竖直向下的竹签,竹签末端安装一个水平的2厘米左右的雪糕棍,用于模拟手指,雪糕棍表面要正好能触碰到手机屏幕,如图 9所示。
图 9安装模拟手指

在雪糕棍上缠绕导电铜箔,为了保证导电铜箔能与手机屏幕能充分接触,可以将接触面做大且压平。然后将导电铜箔引出15厘米左右,用于跟人手指接触,如图 10所示。
图 10缠绕导电铜箔

用一只手抓住导电铜箔一段,让模拟手指去接触手机屏幕,观察是否有反应。如果有反应说明模拟手指能实现功能,如果触摸效果不佳,检查导电铜箔是否缠绕牢固,接触面是否够大。

电路连接

将各元件连接到主控板对应管脚,传感器与管脚对应关系如表 1所示。
表 1传感器与管脚关系表

传感器 按钮传感器 舵机 旋钮传感器 LCD1602显示屏
管脚 D2 D8 A0 IIC

将主控板安装在纸盒内部,并连接好各元件,用热熔胶将按钮固定在盒子侧面。主板的供电可以使用9V电池,也可以在盒子侧面打孔,使用USB线连接到外部电源,如图 11所示。


图 11电路连接

难点解决:时间与距离的关系

之前我们定性地分析出按压时间越久,跳跃距离越大,但是并不知道两者之间的具体关系。
编写测试程序,当按钮按下后,舵机转动,带动模拟手指按压屏幕,并保持一定时间后弹回,程序如图 12所示。

图 12测试程序

以小人身体的尾部作为起点,沿着两个方块边缘平行的方向测量,终点为下一个方块的中心点,如图 13所示。


图 13测量距离

根据测量出的距离先估计按压时间,然后将时间赋值给变量time,上传程序并跳跃。再测量出实际跳跃距离,经过几轮测试,得出表 2数据。
表 2 按压时间与条约距离关系表

按压时间(time) 跳跃距离(distance)
500ms 15mm
600ms 20mm
700ms 25mm
800ms 30mm
900ms 37mm
1000ms 40mm

将以上数据输入到excel表格中,用表格中数据绘制散点图,并画出线性趋势线,得到按压时间与跳跃距离的关系式为distance=0.0517time-10.952,经转换time=(distance+10.952)/0.0517。[1]

图 14按压时间与跳跃距离关系图

难点解决:距离输入

经过几轮游戏测试与测量,小人跳跃距离的范围在10mm-50mm之间。距离输入可以使用旋钮传感器,旋钮传感器原本的输入范围是0-1023,而现在需要输入的距离为10-50mm,因此可以使用映射模块将数据范围进行转化。再利用LCD1602屏幕将跳跃距离和按压时间都实时显示出来,完整程序如图 15所示。


图 15“跳一跳”游戏盒完整程序

使用测试

游戏盒子制作完成后,就可以进行使用测试了。在手机上启动游戏,并将手机放在盒子上,用尺子量出当前小人的位置到下一个方块中心点的距离。在盒子上用旋钮传感器调节跳跃距离,LCD1602上会显示跳跃距离及对应的按压时间,调节完成后按下起跳开关,舵机就会带着模拟手指转动,在屏幕上按压一定时间后抬起,小人完成完美一跳。

小结

制作完成这个盒子后,我将使用该盒子玩“跳一跳”游戏的视频发到了朋友圈,有人给我点赞,也有人向我挑战,还有人说这是作弊。我觉得,这个作品再一次告诉我们,对于一些有规律的、重复性强的工作,机器比我们人类更加专业,可以比我们做得更好。2017年,可以说是“人工智能”元年,在这一年里,我们发现机器在越来越多的领域战胜了人类。毋庸置疑,在接下来的时间里,机器将更加深入全面进入人们的生活。


[1] 该公式是根据5寸屏幕测得的数据,不同尺寸的手机测得数据不同,公式也会不同。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,524评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,869评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,813评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,210评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,085评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,117评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,533评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,219评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,487评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,582评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,362评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,218评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,589评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,899评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,176评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,503评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,707评论 2 335