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