摘 要:文章采用ARM Cortex-M4的TM4C1294系列微處理器,在CCSv6.0開發(fā)環(huán)境下,介紹基于改進貪吃蛇的游戲開發(fā)和系統(tǒng)各個模塊的功能實現(xiàn),包括矩陣鍵盤模塊、TFT液晶顯示模塊、TFT LCD觸摸屏模塊、ADC模塊以及米字管模塊。實驗結(jié)果表明,該系統(tǒng)的人機交互性能強,功能擴展性優(yōu)異,對今后的游戲開發(fā)有一定的指導(dǎo)意義。
關(guān)鍵詞:Cortext-M4;貪吃蛇游戲;游戲設(shè)計;模塊實現(xiàn);CCSv6.0
引言
基于ARM Cortex-M4處理器的TM4C1294系列微處理器具有高效的信號處理及浮點運算功能[1],外設(shè)滿足開發(fā)要求,包括120MHz的ARM CortexM4F微處理器外核、系統(tǒng)控制及外設(shè)、高速ADC、多種串行通信功能和TFT液晶等等[2]。經(jīng)典傳統(tǒng)的貪吃蛇游戲[3,4]缺乏創(chuàng)新,人機交互能力差,缺少即時反饋信息。針對傳統(tǒng)貪吃蛇游戲設(shè)計的不足,以及能具體闡述基于Cortex-M4的游戲開發(fā)思路、流程和方法,本文提出一種改進的貪吃蛇游戲設(shè)計及開發(fā)。
1 系統(tǒng)整體設(shè)計方案
1.1 系統(tǒng)整體結(jié)構(gòu)
本文系統(tǒng)以ARM Cortex-M4為主控制器,負(fù)責(zé)控制系統(tǒng)的各個模塊,包括TFT液晶模塊,矩陣鍵盤模塊,米字管模塊,ADC模塊,TFT LCD觸摸屏模塊,蜂鳴器警報和GPIO流水燈模塊等等。
1.2 系統(tǒng)整體設(shè)計思路
1.2.1 基本貪吃蛇功能設(shè)計。蛇體從默認(rèn)方向開始移動,通過矩陣鍵盤[5]按鍵改變蛇的運動方向,按鍵7、5、2、10,分別對應(yīng)上、下、左、右四個方向。矩陣按鍵采用軟件循環(huán)掃描的方式識別按鍵,同時具備軟件消抖功能。食物在隨機的位置產(chǎn)生,有效范圍根據(jù)游戲難度可以自由設(shè)定,蛇頭進入該范圍則身體加長。游戲結(jié)束的判斷條件,蛇頭碰到區(qū)域邊界、障礙物或自身。蛇體和食物的顯示依靠LCD顯示屏模塊實現(xiàn),由OTM4001A控制芯片驅(qū)動。
1.2.2 改進貪吃蛇模塊設(shè)計思路?;诰仃囨I盤的按鍵識別,設(shè)計中間按鍵6,負(fù)責(zé)游戲的開始和暫停。利用I2C總線對PCA9557芯片進行操作,控制四個米字管模塊顯示當(dāng)前獲得分?jǐn)?shù)。ADC采樣通道PD7的模擬量,可以通過波動滾輪得到不同的輸入電壓,計算出蛇體的速度。TSC2046芯片控制TFT LCD觸摸屏[6],工作于12位差分模式,讀取x軸測量值和y軸測量值,再通過SSI分別讀取x、y軸方向的轉(zhuǎn)換數(shù)據(jù),實時調(diào)整目標(biāo)食物數(shù)量。利用高速并行EPI總線控制OTM4001A芯片,在TFT液晶上顯示貪吃蛇的游戲界面,具有豐富的色彩和形狀,替代傳統(tǒng)的黑白界面。LED流水燈和蜂鳴器提醒功能。當(dāng)游戲結(jié)束時,觸發(fā)定時器中斷,在3s后蜂鳴器自動結(jié)束響聲。
綜上所述,本文改進貪吃蛇的開發(fā)功能豐富,實現(xiàn)功能如下:暫停與繼續(xù)、觸摸屏改變游戲目標(biāo)食物值、通過滾輪實時改變速度、錯誤按鍵響應(yīng)處理、米字管實時顯示分?jǐn)?shù)、障礙物躲避功能、LED流水燈和蜂鳴器等等。
2 系統(tǒng)模塊功能軟件設(shè)計
本文采用CCSv6.0開發(fā)環(huán)境,能完成系統(tǒng)的軟件開發(fā),提供一整套的程序編制、維護、編譯和調(diào)試環(huán)境。因為具備簡潔的用戶界面,高級代碼編輯器和GUI框架,是一款非常好用且受歡迎的開發(fā)工具。
2.1 傳統(tǒng)貪吃蛇的功能軟件設(shè)計
(1)蛇體移動。定義存儲蛇身的結(jié)構(gòu)數(shù)組snake[100],包括節(jié)點x、y坐標(biāo)。移動過程中刪除尾節(jié)點,依次把snake[100]中的每個節(jié)點向前一節(jié)點移動,然后在當(dāng)前方向的蛇頭位置前添加節(jié)點,即實現(xiàn)移動。(2)檢測蛇體吃到食物。蛇頭與食物未碰撞,則只需要執(zhí)行移動操作;碰撞,則表示吃到食物,在蛇頭的前方添加一個節(jié)點,使蛇體長度增長。(3)在隨機位置產(chǎn)生新的食物。利用偽隨機數(shù)種子產(chǎn)生新的食物位置,每次在蛇體吃到食物后刷新食物位置。(4)障礙物或邊界與蛇頭發(fā)生碰撞,結(jié)束游戲。
2.2 改進貪吃蛇的功能軟件設(shè)計
游戲暫停功能。當(dāng)按下“6”鍵時,若游戲已經(jīng)開始且蛇體在移動,則使當(dāng)前按鍵為無效按鍵,使游戲暫停;若要使蛇體繼續(xù)移動,使當(dāng)前按鍵為當(dāng)前方向。
米字管顯示當(dāng)前獲得食物數(shù)量。先設(shè)置米字管管選信號,依次對四個米字管選擇相應(yīng)碼段,即低八位、高八位的數(shù)字信號。
波動滾輪實時控制蛇體的速度。利用ADC模塊可以實時控制貪吃蛇的速度,先采樣通道PD7的模擬量,轉(zhuǎn)換后的數(shù)字量是0-4096,則蛇體速度V=timeDelay-■,調(diào)整延遲函數(shù)則改變蛇體速度。
3 系統(tǒng)測試及結(jié)果
經(jīng)過CCSv6.0環(huán)境編譯、鏈接和下載,實驗結(jié)果如圖1所示:
實驗表明,本文算法在TM4C1294開發(fā)板上測試正確,人機交互能力強,對游戲開發(fā)有指導(dǎo)意義。
4 結(jié)束語
本文針對傳統(tǒng)的貪吃蛇實驗,基于ARM Cortext-M4的TM4C1294系列微處理器,在CCSv6.0編譯環(huán)境下提出一種改進貪吃蛇游戲。在傳統(tǒng)的貪吃蛇移動、食物刷新和碰障礙物失敗的設(shè)計思路下,開發(fā)ADC采樣實時控制蛇體速度,米字管顯示分?jǐn)?shù),TFT LCD觸摸調(diào)整目標(biāo)分?jǐn)?shù),游戲暫停和繼續(xù),TFT液晶顯示功能。經(jīng)實驗,該系統(tǒng)的人機交互性能強,游戲功能擴展優(yōu)異,對今后的游戲開發(fā)具有指導(dǎo)意義。
參考文獻
[1]蔡伯峰,王宜懷.基于ARM Cortex-M4的構(gòu)件化匯編框架的研究[J].計算機測量與控制,2016(10):138-141.
[2]王超藝.基于Cortex-M4內(nèi)核的Kinetis微控制器的應(yīng)用研究[D].蘇州:蘇州大學(xué),2011.
[3]賀敬凱.基于FPGA平臺的貪吃蛇游戲開發(fā)研究[J].深圳信息職業(yè)技術(shù)學(xué)院學(xué)報,2015(03):17-21.
[4]何志敏,謝杰.基于FPGA的貪食蛇游戲設(shè)計[J].現(xiàn)代電子技術(shù),2014,(18):105-106+109.
[5]梁顯思,劉煒.基于ARM的矩陣鍵盤設(shè)計及其linux驅(qū)動實現(xiàn)[J].電子世界,2013(21):84-85.
[6]孫林軍,賀鋒濤.基于ARM的TFT-LCD液晶顯示圖像控制系統(tǒng)研究[J].黃岡師范學(xué)院學(xué)報,2012(03):41-45.
作者簡介:章途潮(1996,09-),男,籍貫:浙江省溫州市,學(xué)歷:大學(xué)本科,研究方向:控制工程與科學(xué)。