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