Arduino 助力“跳一跳”

杭州經(jīng)濟(jì)技術(shù)開發(fā)區(qū)聽濤小學(xué) 裘炯濤
溫州中學(xué) 謝作如
微信朋友圈已經(jīng)成為了現(xiàn)代人們社交的重要的場(chǎng)合冬殃,2017年末的朋友圈被一個(gè)簡(jiǎn)單的小游戲占領(lǐng)艇搀。在2017年12月29日更新的最新版微信中队寇,增加了一個(gè)名為“跳一跳”的小游戲。
游戲的規(guī)則很簡(jiǎn)單淆党,游戲中的小人要從一個(gè)方塊跳到下一個(gè)方塊上吼蚁,玩家通過按壓屏幕時(shí)間的長(zhǎng)短來控制這個(gè)小人跳躍的距離。玩家需要每次都能讓小人落在下一個(gè)方塊上辙谜,如果每次都能跳到正中心還會(huì)有額外加分俺榆。
元旦假期,我也嘗試去挑戰(zhàn)這個(gè)游戲装哆,但是屢試屢敗罐脊,得分很少能超過50分⊥汕伲看著朋友圈里的好友都能跳到兩三百分萍桌,我深深懷疑自己的笨手笨腳。稍作思考后凌简,我準(zhǔn)備利用Arduino挑戰(zhàn)“跳一跳”高分榜上炎。


圖 1微信“跳一跳”小游戲

游戲分析

在游戲中,小人要從當(dāng)前方塊跳躍到下一個(gè)方塊,玩家通過按壓屏幕蓄力藕施,按壓越久寇损,蓄力越多,跳得也就越遠(yuǎn)裳食。

策略分析

經(jīng)過分析矛市,跳一跳的關(guān)鍵在于要精確控制手指按壓屏幕的時(shí)間。人們可以區(qū)分1秒與2秒的時(shí)間差诲祸,但是10毫秒與20毫秒的區(qū)別浊吏,人就很難區(qū)分了。然而救氯,機(jī)器卻可以做到對(duì)時(shí)間的精確控制找田。
我打算利用Arduino控制舵機(jī)按壓屏幕,按壓一定時(shí)間后抬起舵機(jī)着憨,小人就可以跳到一定距離之外午阵。而按壓時(shí)間根據(jù)需要跳躍的距離來推算,跳躍距離可以用尺子測(cè)量享扔,并用旋鈕傳感器將距離輸入Arduino。Arduino將距離轉(zhuǎn)化成對(duì)應(yīng)的按壓時(shí)間植袍,最后用一個(gè)按鈕來控制舵機(jī)執(zhí)行按壓動(dòng)作惧眠。


圖 2所需元件

難點(diǎn)解決1:模擬手指

現(xiàn)在市面上的智能手機(jī)的屏幕絕大多數(shù)都是電容屏,一般來說需要用手指觸摸才能有效于个,而普通的筆氛魁、木棒等并不能觸控屏幕。那么可以使用哪些材料來代替手指呢厅篓?
電容觸摸筆是專門為手機(jī)秀存、平板電腦設(shè)計(jì)的觸摸手寫筆,使用觸摸筆是最好的選擇羽氮,如圖 3所示或链。可以將電容筆固定在舵機(jī)臂上档押,用舵機(jī)帶動(dòng)電容筆按壓手機(jī)屏幕澳盐。

圖 3電容觸摸筆

電容筆當(dāng)然是最理想的選擇,但是手頭如果沒有電容筆令宿,還可以用導(dǎo)電銅箔或者導(dǎo)電膠布來代替叼耙。導(dǎo)電銅箔具有良好的導(dǎo)電性,將導(dǎo)電銅箔一端固定在舵機(jī)上粒没,導(dǎo)電銅箔另一端與手指接觸筛婉。在舵機(jī)帶動(dòng)下用銅箔按壓手機(jī)屏幕,通過導(dǎo)電銅箔的連接癞松,相當(dāng)于手指按壓了屏幕爽撒。
圖 4導(dǎo)電銅箔

搭建結(jié)構(gòu)

利用T1飛機(jī)盒做框架入蛆,搭建游戲盒子。先將手機(jī)放在紙盒中間匆浙,確定各元件安裝位置安寺,如圖 5所示。


圖 5元件安裝位置

將LCD1602顯示屏倒扣在紙盒上首尼,用鉛筆沿著顯示屏畫出輪廓挑庶,如圖 6所示。


圖 6畫出元件輪廓

將LCD1602顯示屏和旋鈕傳感器安裝在孔位中软能,并用熱熔膠進(jìn)行固定迎捺,如圖 7所示。
圖 7安裝顯示屏和旋鈕傳感器

在舵機(jī)安裝前查排,先墊高約1厘米的紙板凳枝,將舵機(jī)安裝位置提高到與手機(jī)屏幕齊平的高度。然后用熱熔膠將舵機(jī)固定在紙板上跋核,將舵機(jī)臂安裝到舵機(jī)上岖瑰,由于舵機(jī)的塑料臂比較短,可以使用長(zhǎng)約6厘米的雪糕棍進(jìn)行延長(zhǎng)砂代,如圖 8所示蹋订。


圖 8安裝舵機(jī)臂

在雪糕棍上安裝一個(gè)豎直向下的竹簽,竹簽?zāi)┒税惭b一個(gè)水平的2厘米左右的雪糕棍刻伊,用于模擬手指露戒,雪糕棍表面要正好能觸碰到手機(jī)屏幕,如圖 9所示捶箱。
圖 9安裝模擬手指

在雪糕棍上纏繞導(dǎo)電銅箔智什,為了保證導(dǎo)電銅箔能與手機(jī)屏幕能充分接觸,可以將接觸面做大且壓平丁屎。然后將導(dǎo)電銅箔引出15厘米左右荠锭,用于跟人手指接觸,如圖 10所示悦屏。
圖 10纏繞導(dǎo)電銅箔

用一只手抓住導(dǎo)電銅箔一段节沦,讓模擬手指去接觸手機(jī)屏幕,觀察是否有反應(yīng)础爬。如果有反應(yīng)說明模擬手指能實(shí)現(xiàn)功能甫贯,如果觸摸效果不佳,檢查導(dǎo)電銅箔是否纏繞牢固看蚜,接觸面是否夠大叫搁。

電路連接

將各元件連接到主控板對(duì)應(yīng)管腳,傳感器與管腳對(duì)應(yīng)關(guān)系如表 1所示。
表 1傳感器與管腳關(guān)系表

傳感器 按鈕傳感器 舵機(jī) 旋鈕傳感器 LCD1602顯示屏
管腳 D2 D8 A0 IIC

將主控板安裝在紙盒內(nèi)部渴逻,并連接好各元件疾党,用熱熔膠將按鈕固定在盒子側(cè)面。主板的供電可以使用9V電池惨奕,也可以在盒子側(cè)面打孔雪位,使用USB線連接到外部電源,如圖 11所示梨撞。


圖 11電路連接

難點(diǎn)解決:時(shí)間與距離的關(guān)系

之前我們定性地分析出按壓時(shí)間越久雹洗,跳躍距離越大,但是并不知道兩者之間的具體關(guān)系卧波。
編寫測(cè)試程序时肿,當(dāng)按鈕按下后,舵機(jī)轉(zhuǎn)動(dòng)港粱,帶動(dòng)模擬手指按壓屏幕螃成,并保持一定時(shí)間后彈回,程序如圖 12所示查坪。

圖 12測(cè)試程序

以小人身體的尾部作為起點(diǎn)寸宏,沿著兩個(gè)方塊邊緣平行的方向測(cè)量,終點(diǎn)為下一個(gè)方塊的中心點(diǎn)偿曙,如圖 13所示击吱。


圖 13測(cè)量距離

根據(jù)測(cè)量出的距離先估計(jì)按壓時(shí)間,然后將時(shí)間賦值給變量time遥昧,上傳程序并跳躍。再測(cè)量出實(shí)際跳躍距離朵纷,經(jīng)過幾輪測(cè)試炭臭,得出表 2數(shù)據(jù)。
表 2 按壓時(shí)間與條約距離關(guān)系表

按壓時(shí)間(time) 跳躍距離(distance)
500ms 15mm
600ms 20mm
700ms 25mm
800ms 30mm
900ms 37mm
1000ms 40mm

將以上數(shù)據(jù)輸入到excel表格中袍辞,用表格中數(shù)據(jù)繪制散點(diǎn)圖鞋仍,并畫出線性趨勢(shì)線,得到按壓時(shí)間與跳躍距離的關(guān)系式為distance=0.0517time-10.952搅吁,經(jīng)轉(zhuǎn)換time=(distance+10.952)/0.0517威创。[1]

圖 14按壓時(shí)間與跳躍距離關(guān)系圖

難點(diǎn)解決:距離輸入

經(jīng)過幾輪游戲測(cè)試與測(cè)量,小人跳躍距離的范圍在10mm-50mm之間谎懦。距離輸入可以使用旋鈕傳感器肚豺,旋鈕傳感器原本的輸入范圍是0-1023,而現(xiàn)在需要輸入的距離為10-50mm界拦,因此可以使用映射模塊將數(shù)據(jù)范圍進(jìn)行轉(zhuǎn)化吸申。再利用LCD1602屏幕將跳躍距離和按壓時(shí)間都實(shí)時(shí)顯示出來,完整程序如圖 15所示。


圖 15“跳一跳”游戲盒完整程序

使用測(cè)試

游戲盒子制作完成后截碴,就可以進(jìn)行使用測(cè)試了梳侨。在手機(jī)上啟動(dòng)游戲,并將手機(jī)放在盒子上日丹,用尺子量出當(dāng)前小人的位置到下一個(gè)方塊中心點(diǎn)的距離走哺。在盒子上用旋鈕傳感器調(diào)節(jié)跳躍距離,LCD1602上會(huì)顯示跳躍距離及對(duì)應(yīng)的按壓時(shí)間哲虾,調(diào)節(jié)完成后按下起跳開關(guān)丙躏,舵機(jī)就會(huì)帶著模擬手指轉(zhuǎn)動(dòng),在屏幕上按壓一定時(shí)間后抬起妒牙,小人完成完美一跳彼哼。

小結(jié)

制作完成這個(gè)盒子后,我將使用該盒子玩“跳一跳”游戲的視頻發(fā)到了朋友圈湘今,有人給我點(diǎn)贊敢朱,也有人向我挑戰(zhàn),還有人說這是作弊摩瞎。我覺得拴签,這個(gè)作品再一次告訴我們,對(duì)于一些有規(guī)律的旗们、重復(fù)性強(qiáng)的工作蚓哩,機(jī)器比我們?nèi)祟惛訉I(yè),可以比我們做得更好上渴。2017年岸梨,可以說是“人工智能”元年,在這一年里稠氮,我們發(fā)現(xiàn)機(jī)器在越來越多的領(lǐng)域戰(zhàn)勝了人類曹阔。毋庸置疑,在接下來的時(shí)間里隔披,機(jī)器將更加深入全面進(jìn)入人們的生活赃份。


[1] 該公式是根據(jù)5寸屏幕測(cè)得的數(shù)據(jù),不同尺寸的手機(jī)測(cè)得數(shù)據(jù)不同奢米,公式也會(huì)不同抓韩。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市鬓长,隨后出現(xiàn)的幾起案子谒拴,更是在濱河造成了極大的恐慌,老刑警劉巖涉波,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件彪薛,死亡現(xiàn)場(chǎng)離奇詭異茂装,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)善延,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門少态,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人易遣,你說我怎么就攤上這事彼妻。” “怎么了豆茫?”我有些...
    開封第一講書人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵侨歉,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我揩魂,道長(zhǎng)幽邓,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任火脉,我火速辦了婚禮牵舵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘倦挂。我一直安慰自己畸颅,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開白布方援。 她就那樣靜靜地躺著没炒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪犯戏。 梳的紋絲不亂的頭發(fā)上送火,一...
    開封第一講書人閱讀 49,784評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音先匪,去河邊找鬼漾脂。 笑死,一個(gè)胖子當(dāng)著我的面吹牛胚鸯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播笨鸡,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼姜钳,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了形耗?” 一聲冷哼從身側(cè)響起哥桥,我...
    開封第一講書人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎激涤,沒想到半個(gè)月后拟糕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體判呕,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年送滞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了侠草。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡犁嗅,死狀恐怖边涕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情褂微,我是刑警寧澤功蜓,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站宠蚂,受9級(jí)特大地震影響式撼,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜求厕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一著隆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧甘改,春花似錦旅东、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至忘嫉,卻和暖如春荤牍,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背庆冕。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工康吵, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人访递。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓晦嵌,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親拷姿。 傳聞我的和親對(duì)象是個(gè)殘疾皇子惭载,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348