国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Arduino助力“跳一跳”

2018-05-02 10:19裘炯濤謝作如
中國信息技術教育 2018年7期
關鍵詞:舵機導電方塊

裘炯濤 謝作如

2017年歲末,最熱門的游戲莫過于微信的“跳一跳”了(如圖1)。游戲的規(guī)則很簡單,游戲中的小人要從一個方塊跳到下一個方塊上,玩家通過按壓屏幕時間的長短來控制這個小人跳躍的距離,確保每次都能讓小人落到下一個方塊上,如能跳到方塊正中心還會有額外加分。

元旦假期,筆者也嘗試挑戰(zhàn)了這個游戲,但是屢試屢敗,得分很少能超過五十分??粗笥讶锏暮糜讯寄芴絻扇俜?,筆者深覺自己有點笨手笨腳。作為學校的創(chuàng)客教育導師,稍作思考后,筆者就準備利用Arduino來挑戰(zhàn)“跳一跳”高分榜。

游戲分析

在“跳一跳”游戲中,小人要從當前方塊跳躍到下一個方塊的關鍵是控制跳躍距離。玩家通過按壓屏幕蓄力,按壓越久,蓄力越多,跳得也就越遠。經(jīng)過測試后,筆者發(fā)現(xiàn)按壓時間長短和跳躍距離呈線性關系。要獲得游戲高分,得設計一個可以替代人的手指,并能夠精確控制按壓屏幕時間的小裝置,也就是常說的“物理外掛”。

解決方案設計

人可以區(qū)分1秒與2秒的時間差,而區(qū)分10毫秒與20毫秒?yún)s很難,但是用Arduino之類的單片機來實現(xiàn)精確控制就很容易??戳丝磩?chuàng)客空間的設備,筆者設置了一個大致的方案:

在舵機上綁定一支電容筆,用Arduino控制舵機按壓屏幕,按壓一定時間后抬起舵機,小人就可以跳到一定距離之外。而按壓時間根據(jù)需要跳躍的距離來推算,跳躍距離可以用尺子測量,并用旋鈕傳感器將距離輸入Arduino。Arduino將距離轉(zhuǎn)化成對應的按壓時間,最后用一個按鈕來控制舵機執(zhí)行這一按壓動作,所需元件如圖2所示。

步驟一:模擬手指

現(xiàn)在市面上的智能手機的屏幕絕大多數(shù)都是電容屏,電容觸摸筆是專門為手機、平板電腦設計的觸摸手寫筆,使用觸摸筆是最好的選擇(如圖3)。可以將電容筆固定在舵機臂上,用舵機帶動電容筆按壓手機屏幕。

電容筆是最理想的選擇,但是手頭如果沒有電容筆,還可以用導電銅箔或者導電膠布來代替。導電銅箔具有良好的導電性(如下頁圖4),將導電銅箔一端固定在舵機上,導電銅箔另一端與手指接觸。在舵機帶動下用銅箔按壓手機屏幕,通過導電銅箔的連接,相當于手指按壓了屏幕。

步驟二:搭建結(jié)構

筆者找了個紙盒做這一裝置的平臺,盒子上面放了各種元件,Arduino等可以放在盒子中間,盡量讓這個“外掛”看起來比較像個作品,命名為“跳一跳游戲盒子”。

先將手機放在紙盒中間,確定各元件安裝位置(如圖5)。

將LCD1602顯示屏倒扣在紙盒上,用鉛筆沿著顯示屏畫出輪廓(如圖6)。

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

在舵機安裝前,先墊高約1厘米的紙板,將舵機安裝位置提高到與手機屏幕齊平的高度。然后用熱熔膠將舵機固定在紙板上,將舵機臂安裝到舵機上,由于舵機的塑料臂比較短,可以使用長約6厘米的雪糕棍進行延長(如圖8)。

在雪糕棍上安裝一個豎直向下的竹簽,竹簽末端安裝一個水平2厘米左右的雪糕棍,用于模擬手指,雪糕棍表面要正好能觸碰到手機屏幕(如圖9)。

在雪糕棍上纏繞導電銅箔,為了保證導電銅箔能與手機屏幕充分接觸,可以將接觸面做大且壓平,然后將導電銅箔引出15厘米左右,用于跟人手指接觸(如下頁圖10)。

用一只手抓住導電銅箔一端,讓模擬手指去接觸手機屏幕,觀察是否有反應。如果有反應說明模擬手指能實現(xiàn)功能,如果觸摸效果不佳,檢查導電銅箔是否纏繞牢固,接觸面是否夠大。

步驟三:電路連接

將各元件連接到主控板對應管腳,傳感器與管腳對應關系如下頁表1所示。

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

步驟四:計算時間與距離的關系

我們雖然已經(jīng)分析出按壓時間越久,跳躍距離越大,但是并不知道兩者之間的具體關系,這還需要通過編程來測試。

編寫測試程序,當按鈕按下后,舵機轉(zhuǎn)動,帶動模擬手指按壓屏幕,并保持一定時間后彈回,程序如下頁圖12所示。

以小人身體的尾部作為起點,沿著兩個方塊邊緣平行的方向測量,終點為下一個方塊的中心點(如下頁圖13)。

根據(jù)測量出的距離先估計按壓時間,然后將時間賦值給變量time,上傳程序并跳躍,再測量出實際跳躍距離,經(jīng)過幾輪測試,得出表2數(shù)據(jù)。

將以上數(shù)據(jù)輸入到Excel表格中,用表格中數(shù)據(jù)繪制散點圖,并畫出線性趨勢線,得到按壓時間與跳躍距離的關系式為distance=0.0517time-10.952,經(jīng)轉(zhuǎn)換time=(distance+10.952)/0.0517。注意:這個公式是根據(jù)筆者的5寸屏幕手機測得的數(shù)據(jù),不同尺寸的手機測得數(shù)據(jù)不同,公式也會不同(如圖14)。

步驟五:實現(xiàn)距離數(shù)據(jù)的輸入

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

游戲盒子的使用測試

“跳一跳游戲盒子”制作完成后,就可以進行使用測試了。在手機上啟動游戲,并將手機放在盒子上,用尺子量出當前小人的位置到下一個方塊中心點的距離。在盒子上用旋鈕傳感器調(diào)節(jié)跳躍距離,LCD1602上會顯示跳躍距離及對應的按壓時間,調(diào)節(jié)完成后按下起跳開關,舵機就會帶著模擬手指轉(zhuǎn)動,在屏幕上按壓一定時間后抬起,小人完成了完美的一跳。利用這個裝置,筆者成功地拿到了1000多分,高居朋友圈游戲排行榜的榜首。

小結(jié)

制作完成創(chuàng)客作品后,筆者把使用該盒子玩“跳一跳”游戲的視頻發(fā)到了朋友圈。有人點贊,有人挑戰(zhàn),還有人說這是作弊,其實這個作品最重要的價值不是幫筆者拿到游戲高分,而是告訴更多的人:對于一些有規(guī)律、重復性強的工作,機器比人類更專業(yè),可以比人類做得更好。不是嗎?緊跟筆者發(fā)布這個作品的前后,好多工程師都發(fā)布類似的“物理外掛”,大疆工程師甚至用攝像頭來做視角識別,讓更多的人知道了人工智能并不遙遠,而是“近在身邊”。

2017年被媒體譽為“人工智能”元年。在這一年里,我們不斷看到機器在越來越多的領域戰(zhàn)勝了人類。毋庸置疑,在接下來的時間里,機器將更深入、更全面進地入人們的生活。未來已來,中小學教育亟待改革,讓我們從創(chuàng)客教育開始做起吧!

猜你喜歡
舵機導電方塊
導電的風箏
謎題方塊
紙板俄羅斯方塊拼圖
海太克HS—1100WP數(shù)字舵機
超音速舵機保護器
超輕薄紙燈
帶螺旋形芯的高效加熱線
有序數(shù)方塊
菜鳥看模型
舵機的應用
无为县| 子洲县| 霍林郭勒市| 吴旗县| 清苑县| 荔波县| 和平县| 砀山县| 都匀市| 汪清县| 息烽县| 辛集市| 拜泉县| 周宁县| 常德市| 乐至县| 比如县| 汽车| 阿拉善左旗| 武汉市| 辰溪县| 江油市| 临泉县| 澎湖县| 南江县| 镇平县| 明星| 青岛市| 循化| 富阳市| 长阳| 获嘉县| 连南| 宝应县| 龙州县| 马关县| 澎湖县| 南乐县| 尤溪县| 石首市| 宁南县|