999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于FPGA的體感游戲

2014-03-22 18:09:35艾兵張敏趙元清
現(xiàn)代電子技術(shù) 2014年6期

艾兵 張敏 趙元清

摘 要: 體感游戲是視覺與本體感覺和動(dòng)作控制的集合,伴隨著虛擬現(xiàn)實(shí)技術(shù)的迅猛發(fā)展,正逐步走入市場(chǎng)。為了達(dá)到視覺、運(yùn)動(dòng)相結(jié)合的目的,采用加速度傳感器與VGA顯示器相結(jié)合的方法,通過戴有速度手套的手的運(yùn)動(dòng)來(lái)完成對(duì)游戲界面中的滑塊控制,接住隨機(jī)下落的方塊而獲得分?jǐn)?shù)。最后進(jìn)行了板級(jí)測(cè)試,實(shí)現(xiàn)了開機(jī)界面、模式切換、難度調(diào)節(jié)、計(jì)分、游戲暫停與重新開始等功能。通過驗(yàn)證,游戲獲得了較好的互動(dòng)性、參與感與沉浸感。

關(guān)鍵詞: 加速度傳感器; FPGA; VGA; 體感游戲

中圖分類號(hào): TN710?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2014)06?0047?04

0 引 言

計(jì)算機(jī)游戲領(lǐng)域已經(jīng)到了一個(gè)同質(zhì)化相當(dāng)嚴(yán)重的時(shí)代。機(jī)械性的重復(fù)相同的動(dòng)作致使玩家的興趣越來(lái)越低。而現(xiàn)在游戲產(chǎn)業(yè)迎來(lái)了一個(gè)轉(zhuǎn)折點(diǎn),開始向交互性、置入感等方向發(fā)展。而良好的沉浸感要求游戲必須在互動(dòng)性上有創(chuàng)新[1]。過去,游戲大部分是通過鍵盤與鼠標(biāo)來(lái)完成控制的,但隨著傳感器技術(shù)、微機(jī)視覺的進(jìn)步,使得利用自己的行動(dòng)來(lái)對(duì)機(jī)器發(fā)出指令的愿望得以實(shí)現(xiàn)。這種人機(jī)互動(dòng)模式以更為自然性、直觀性的運(yùn)動(dòng)、語(yǔ)音等摸式代替電腦的鍵盤和鼠標(biāo)等外設(shè)。

現(xiàn)在已經(jīng)有了很多創(chuàng)新成果,如三維攝像機(jī)、傳感器球拍、數(shù)據(jù)手套等。一些公司也推出了各種平臺(tái),如日本任天堂公司的Wii、微軟的Kinect、華碩的Xtion等。這些設(shè)備一般較為昂貴,本文設(shè)計(jì)目的是低成本來(lái)完成人機(jī)交互,利用FPGA作為主控制器,借助現(xiàn)代家庭較為普及的電腦的顯示器,實(shí)現(xiàn)體感游戲的設(shè)計(jì),提高游戲的沉浸感與趣味性[2],同時(shí)保持了對(duì)于鍵盤操作的兼容性。

1 系統(tǒng)設(shè)計(jì)方案

該系統(tǒng)主要由兩個(gè)部分組成,分別是數(shù)據(jù)采集單元、顯示控制單元。數(shù)據(jù)采集單元主要實(shí)現(xiàn)對(duì)運(yùn)動(dòng)控制信息的采集、數(shù)據(jù)的修正與處理、上傳到顯示控制單元等功能。顯示控制單元主要實(shí)現(xiàn)游戲的開始、難度設(shè)定、模式切換、顯示等功能。整體框圖如圖1所示。

1.1 數(shù)據(jù)采集單元

數(shù)據(jù)采集單元主要包括從控制器、加速度傳感器、LED顯示、按鍵、串口四個(gè)硬件部分。各部分的選擇和功能如下:

從控制器選用STC89C51單片機(jī),此系列單片機(jī)是宏晶科技推出的新一代超強(qiáng)抗干擾、低功耗、高性價(jià)比的單片機(jī),指令代碼完全兼容傳統(tǒng)8051單片機(jī),并且有LQFP封裝,使得速度手套可以做到小型化。

加速度傳感器選用的是ADXL345。它是一款完整的3 軸加速度測(cè)量系統(tǒng)。既能測(cè)量運(yùn)動(dòng)或沖擊導(dǎo)致的動(dòng)態(tài)加速度,也能測(cè)量靜止加速度,例如重力加速度,使得器件可作為傾斜傳感器使用。本設(shè)計(jì)中利用了其測(cè)靜止加速度的功能,得到傾斜角度,從而產(chǎn)生控制指令。

采集單元中用了兩個(gè)LED燈,用于顯示當(dāng)前速度手套的輸出狀態(tài):當(dāng)左側(cè)燈亮說(shuō)明發(fā)出的控制信號(hào)為向左運(yùn)動(dòng)。兩個(gè)按鍵輸入用于游戲的控制信號(hào)暫停和分?jǐn)?shù)清零的信號(hào)的產(chǎn)生。

采集單元利用串口將控制信號(hào)上傳到顯示控制單元。RS232是由電子工業(yè)協(xié)會(huì)(Electronic Industries Association,EIA) 所制定的異步傳輸標(biāo)準(zhǔn)接口[3]。在低通信速率下,直接連接的最大物理距離為15 m,可以使得人能遠(yuǎn)離屏幕來(lái)操作游戲,防止眼睛疲勞[4]。后期會(huì)考慮采用315模塊來(lái)實(shí)現(xiàn)無(wú)線的操作。

1.2 顯示控制單元

此單元是整個(gè)系統(tǒng)的核心,完成了游戲的大部分功能設(shè)計(jì),主要包括主控制器、VGA接口、PS/2接口、獨(dú)立按鍵、數(shù)碼管、串口等硬件部分。

主控制器采用Altera于2004年推出的CycloneⅡ的FPGA, 型號(hào)為EPC2C8208。其功耗較低,核電壓只有1.2 V,片上RAM有162 Kb,可以用于配置為RAM,ROM,F(xiàn)IFO等,時(shí)鐘利用50 MHz的有源晶體產(chǎn)生。

總控制單元負(fù)責(zé)接收數(shù)據(jù)采集單元的信號(hào)、兩種游戲模式的切換和控制指令的產(chǎn)生、VGA顯示控制、游戲初始化界面存儲(chǔ)等。

2 系統(tǒng)軟件實(shí)現(xiàn)

游戲主要實(shí)現(xiàn)的功能有:歡迎界面與游戲界面的切換以及VGA顯示;速度手套模式與鍵盤模式的切換;計(jì)分系統(tǒng),包含分?jǐn)?shù)的顯示、清零等;游戲的難度等級(jí)設(shè)置、游戲的開始界面設(shè)計(jì)、暫停、結(jié)束、重新開始等功能。軟件設(shè)計(jì)包括單片機(jī)、FPGA的程序設(shè)計(jì)以及兩者通信指令編碼準(zhǔn)則設(shè)定三個(gè)方面。

2.1 單片機(jī)程序設(shè)計(jì)

單片機(jī)部分主要功能為通過采集加速度傳感器和按鍵的信號(hào),根據(jù)兩個(gè)單元間的編碼準(zhǔn)則產(chǎn)生相應(yīng)的控制指令,通過串口上傳到顯示控制中心。程序設(shè)計(jì)流程圖如圖2所示。

2.2 FPGA程序設(shè)計(jì)

FPGA是游戲的主控制器,完成了游戲的大部分功能,頂層設(shè)計(jì)文件中主要包括輸入顯示類模塊、VGA核心模塊、存儲(chǔ)模塊三類模塊。其中輸入顯示類模塊主要有分頻模塊、PS/2接收模塊、串口接收模塊、指令處理模塊、數(shù)碼管顯示模塊;存儲(chǔ)模塊包括基于FPGA片上RAM的RAM和ROM模塊。頂層設(shè)計(jì)框圖如圖3所示。

2.2.1 輸入顯示類模塊

獨(dú)立按鍵用于模式的選擇、游戲難度的調(diào)節(jié)、由歡迎界面到游戲界面的切換;串口部分用于接收來(lái)自數(shù)據(jù)采集單元的控制指令,經(jīng)過譯碼模塊后送入模式選擇模塊;PS/2模塊用于接收鍵盤信號(hào)輸入并產(chǎn)生指令送入模式選擇模塊[5];數(shù)碼管用于顯示當(dāng)前的游戲模式、難度等級(jí)和獲得分?jǐn)?shù)。

顯示器采用的分辨率為640×480的,刷新頻率為60 Hz,根據(jù)VGA常見刷新頻率時(shí)序表可知,需要時(shí)鐘為25 MHz左右[6],板子輸入時(shí)鐘為50 MHz,經(jīng)過分頻模塊后可以提供25 MHz的時(shí)鐘。

2.2.2 存儲(chǔ)模塊

設(shè)計(jì)中,由于采用的是FPGA的片上RAM作為存儲(chǔ)介質(zhì),受到其162 Kb的約束,只能設(shè)計(jì)大小為256×256的單色界面。存儲(chǔ)的數(shù)據(jù)位寬為32位,共2 048個(gè),地址線為11位。

游戲界面因?yàn)橐粩嘈薷模蚀娣旁诨贔PGA片上RAM的RAM模塊中。其可同時(shí)有讀寫使能,因此可以同時(shí)讀寫,即使同時(shí)讀寫同一個(gè)地址也不會(huì)出錯(cuò),而且還可以設(shè)置成讀寫地址線各自獨(dú)立,不用考慮時(shí)分復(fù)用使用地址線的問題。這樣在實(shí)際代碼中就可以將RAM的讀和寫完全獨(dú)立考慮,分別由掃描輸出模塊和數(shù)據(jù)處理模塊完成,兩者互不干擾[7?8]。圖4是RAM的讀寫時(shí)序圖。

開始界面由于是固定的,放入ROM中,初始化ROM文件中的數(shù)據(jù)可通過Matlab處理得到。現(xiàn)在有一些字模軟件雖然可以讀取要顯示的圖片,但給出的數(shù)據(jù)格式并不能初始化ROM的,因此,利用Matlab編寫了一段圖片處理程序,可以讀取圖片,然后經(jīng)過處理,生成一個(gè)可以直接復(fù)制到ROM初始化文件中的數(shù)組形式。這樣,使得圖片顯示操作簡(jiǎn)單,圖片替換更容易。

2.2.3 VGA控制模塊

在游戲界面設(shè)計(jì)中,存在主要的難點(diǎn):小方塊隨機(jī)間隔下落、難度等級(jí)設(shè)置等。

在游戲中,為了增加游戲的難度,在設(shè)計(jì)中,小方塊的降落為兩個(gè),而且是有一定的間隔、在隨機(jī)位置下落。小方塊的動(dòng)態(tài)顯示是通過不斷修改RAM中要顯示圖像的數(shù)據(jù)來(lái)實(shí)現(xiàn)的。游戲中方塊的長(zhǎng)為32個(gè)像素(對(duì)應(yīng)RAM中存儲(chǔ)的數(shù)據(jù)位寬,方便修改)[9],則界面中有8條下落路線,小方塊的下落是從界面頂端開始的,也就意味著RAM中的數(shù)據(jù)修改是從前8位的某一位開始的,因此實(shí)現(xiàn)隨機(jī)下落只需要產(chǎn)生一個(gè)1~8范圍的隨機(jī)數(shù)。在設(shè)計(jì)中,通過設(shè)計(jì)了一個(gè)偽隨機(jī)數(shù)產(chǎn)生器,生成一個(gè)9以內(nèi)的隨機(jī)數(shù)作為RAM修改數(shù)據(jù)的起始位[10]。

第二個(gè)小方塊的下落是通過設(shè)定一個(gè)標(biāo)志位Num2,當(dāng)?shù)谝粋€(gè)方塊下落到游戲界面的中間位置時(shí),置位Num2,從而觸發(fā)了第二個(gè)小方塊的下落進(jìn)程,第二個(gè)方塊開始下落。其中,兩個(gè)小方塊下落修改數(shù)據(jù)的操作都是在VGA掃描的消隱階段完成的,因此每進(jìn)行一次幀掃描,小方塊下落1個(gè)像素。VGA刷新頻率為60 Hz,因此小方塊每秒會(huì)下落60個(gè)像素。

當(dāng)游戲操作者漏接的方塊數(shù)據(jù)到達(dá)一定數(shù)目m,游戲結(jié)束。難度等級(jí)是通過設(shè)置被控制方塊左右移動(dòng)靈敏度和漏接方塊數(shù)目m來(lái)實(shí)現(xiàn)的。靈敏度越高,m越小,游戲等級(jí)越高。圖5,圖6分別是實(shí)物中,初始化界面和游戲界面。

2.3 通信編碼準(zhǔn)則

單片機(jī)從加速度傳感器獲得的數(shù)據(jù)中提取出y軸的加速度值,由此可以判斷出速度手套的此時(shí)的狀態(tài)。它送往串口的數(shù)據(jù)不是加速度值,而是編碼后的指令。具體的編碼譯碼原則設(shè)定如表1所示。

表1 串口通信編碼準(zhǔn)則

表1中FPGA譯碼是FPGA的串口接收模塊獲得后,解碼之后送給VGA顯示模塊的指令。游戲中保持了傳統(tǒng)鍵盤的兼容性,具體實(shí)現(xiàn)是通過PS/2模塊根據(jù)鍵盤輸入信號(hào)產(chǎn)生與表格1中FPGA譯碼相同的指令,送給VGA顯示模塊,完成對(duì)游戲的控制。

3 結(jié) 語(yǔ)

本文設(shè)計(jì)了一款基于FGPA的體感游戲,通過利用人體的動(dòng)作完成對(duì)游戲的操作,利用VGA顯示技術(shù)來(lái)到達(dá)更好的類似虛擬現(xiàn)實(shí)的效果,同時(shí)系統(tǒng)也保持了對(duì)傳統(tǒng)游戲鍵盤操作的兼容性。

游戲通過加入人體的互動(dòng),使得游戲者可以對(duì)游戲有一種身臨其境的感覺,增加游戲趣味性、交互性、構(gòu)想性,同時(shí)也使得參與者身體得到運(yùn)動(dòng)與鍛煉。

游戲最后實(shí)現(xiàn)了常規(guī)游戲的基本功能,主要有歡迎界面與游戲界面的切換以及VGA顯示;速度手套模式與鍵盤模式的切換;計(jì)分系統(tǒng),包含分?jǐn)?shù)的顯示、清零等;游戲的難度等級(jí)設(shè)置、顯示以及游戲的結(jié)束;游戲的暫停、重新開始等功能等。最后在硬件平臺(tái)實(shí)現(xiàn),表明游戲具有可玩性、趣味性,并能使游戲者獲得較好的游戲體驗(yàn)。

參考文獻(xiàn)

[1] 薛凱.新型人機(jī)互動(dòng)技術(shù)在游戲中的應(yīng)用探索[J].寧夏師范學(xué)院學(xué)報(bào),2011,32(6):55?58.

[2] 董士海.人機(jī)交互的進(jìn)展及面臨的挑戰(zhàn)[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2004(1):1?12.

[3] 魏軍輝.基于FPGA的PS/2鍵盤接口的設(shè)計(jì)[J].微計(jì)算機(jī)信息,2008,24(9):139?140.

[4] 劉韜,樓興華.FPGA數(shù)字電子系統(tǒng)設(shè)計(jì)與開發(fā)實(shí)例導(dǎo)航[M].北京:人民郵電出版社,2005.

[5] 姚遠(yuǎn),李辰.FPGA 應(yīng)用開發(fā)入門與典型實(shí)例[M].北京:人民郵電出版社,2010.

[6] 張亞平,賀占莊.基于FPGA的VGA顯示模塊設(shè)計(jì)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2007,17(6):242?245.

[7] 段磊.基于FPGA的VGA顯示系統(tǒng)[J].世界電子元器件,2007, (9):38?42.

[8] 陳姚節(jié),盧建華.基于FPGA的VGA顯示接口的研究與設(shè)計(jì)[J].交通與計(jì)算機(jī),2005,23(2):47?49.

[9] 陳彬.基于FPGA的視頻圖像處理系統(tǒng)設(shè)計(jì)[D].重慶:重慶大學(xué),2006.

[10] 潘松.EDA技術(shù)與VHDL[M].3版.北京:清華大學(xué)出版社,2009.

[11] 陳志生,陳景賢.基于FPGA的多分辨率VGA圖像控制器設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2008,31(13):187?189.

[12] 吳子賢,孫昊,龐少龍.基于ADSP-BF533的VGA顯示控制器設(shè)計(jì)[J].電子科技,2013(9):189?191.

游戲界面因?yàn)橐粩嘈薷模蚀娣旁诨贔PGA片上RAM的RAM模塊中。其可同時(shí)有讀寫使能,因此可以同時(shí)讀寫,即使同時(shí)讀寫同一個(gè)地址也不會(huì)出錯(cuò),而且還可以設(shè)置成讀寫地址線各自獨(dú)立,不用考慮時(shí)分復(fù)用使用地址線的問題。這樣在實(shí)際代碼中就可以將RAM的讀和寫完全獨(dú)立考慮,分別由掃描輸出模塊和數(shù)據(jù)處理模塊完成,兩者互不干擾[7?8]。圖4是RAM的讀寫時(shí)序圖。

開始界面由于是固定的,放入ROM中,初始化ROM文件中的數(shù)據(jù)可通過Matlab處理得到。現(xiàn)在有一些字模軟件雖然可以讀取要顯示的圖片,但給出的數(shù)據(jù)格式并不能初始化ROM的,因此,利用Matlab編寫了一段圖片處理程序,可以讀取圖片,然后經(jīng)過處理,生成一個(gè)可以直接復(fù)制到ROM初始化文件中的數(shù)組形式。這樣,使得圖片顯示操作簡(jiǎn)單,圖片替換更容易。

2.2.3 VGA控制模塊

在游戲界面設(shè)計(jì)中,存在主要的難點(diǎn):小方塊隨機(jī)間隔下落、難度等級(jí)設(shè)置等。

在游戲中,為了增加游戲的難度,在設(shè)計(jì)中,小方塊的降落為兩個(gè),而且是有一定的間隔、在隨機(jī)位置下落。小方塊的動(dòng)態(tài)顯示是通過不斷修改RAM中要顯示圖像的數(shù)據(jù)來(lái)實(shí)現(xiàn)的。游戲中方塊的長(zhǎng)為32個(gè)像素(對(duì)應(yīng)RAM中存儲(chǔ)的數(shù)據(jù)位寬,方便修改)[9],則界面中有8條下落路線,小方塊的下落是從界面頂端開始的,也就意味著RAM中的數(shù)據(jù)修改是從前8位的某一位開始的,因此實(shí)現(xiàn)隨機(jī)下落只需要產(chǎn)生一個(gè)1~8范圍的隨機(jī)數(shù)。在設(shè)計(jì)中,通過設(shè)計(jì)了一個(gè)偽隨機(jī)數(shù)產(chǎn)生器,生成一個(gè)9以內(nèi)的隨機(jī)數(shù)作為RAM修改數(shù)據(jù)的起始位[10]。

第二個(gè)小方塊的下落是通過設(shè)定一個(gè)標(biāo)志位Num2,當(dāng)?shù)谝粋€(gè)方塊下落到游戲界面的中間位置時(shí),置位Num2,從而觸發(fā)了第二個(gè)小方塊的下落進(jìn)程,第二個(gè)方塊開始下落。其中,兩個(gè)小方塊下落修改數(shù)據(jù)的操作都是在VGA掃描的消隱階段完成的,因此每進(jìn)行一次幀掃描,小方塊下落1個(gè)像素。VGA刷新頻率為60 Hz,因此小方塊每秒會(huì)下落60個(gè)像素。

當(dāng)游戲操作者漏接的方塊數(shù)據(jù)到達(dá)一定數(shù)目m,游戲結(jié)束。難度等級(jí)是通過設(shè)置被控制方塊左右移動(dòng)靈敏度和漏接方塊數(shù)目m來(lái)實(shí)現(xiàn)的。靈敏度越高,m越小,游戲等級(jí)越高。圖5,圖6分別是實(shí)物中,初始化界面和游戲界面。

2.3 通信編碼準(zhǔn)則

單片機(jī)從加速度傳感器獲得的數(shù)據(jù)中提取出y軸的加速度值,由此可以判斷出速度手套的此時(shí)的狀態(tài)。它送往串口的數(shù)據(jù)不是加速度值,而是編碼后的指令。具體的編碼譯碼原則設(shè)定如表1所示。

表1 串口通信編碼準(zhǔn)則

表1中FPGA譯碼是FPGA的串口接收模塊獲得后,解碼之后送給VGA顯示模塊的指令。游戲中保持了傳統(tǒng)鍵盤的兼容性,具體實(shí)現(xiàn)是通過PS/2模塊根據(jù)鍵盤輸入信號(hào)產(chǎn)生與表格1中FPGA譯碼相同的指令,送給VGA顯示模塊,完成對(duì)游戲的控制。

3 結(jié) 語(yǔ)

本文設(shè)計(jì)了一款基于FGPA的體感游戲,通過利用人體的動(dòng)作完成對(duì)游戲的操作,利用VGA顯示技術(shù)來(lái)到達(dá)更好的類似虛擬現(xiàn)實(shí)的效果,同時(shí)系統(tǒng)也保持了對(duì)傳統(tǒng)游戲鍵盤操作的兼容性。

游戲通過加入人體的互動(dòng),使得游戲者可以對(duì)游戲有一種身臨其境的感覺,增加游戲趣味性、交互性、構(gòu)想性,同時(shí)也使得參與者身體得到運(yùn)動(dòng)與鍛煉。

游戲最后實(shí)現(xiàn)了常規(guī)游戲的基本功能,主要有歡迎界面與游戲界面的切換以及VGA顯示;速度手套模式與鍵盤模式的切換;計(jì)分系統(tǒng),包含分?jǐn)?shù)的顯示、清零等;游戲的難度等級(jí)設(shè)置、顯示以及游戲的結(jié)束;游戲的暫停、重新開始等功能等。最后在硬件平臺(tái)實(shí)現(xiàn),表明游戲具有可玩性、趣味性,并能使游戲者獲得較好的游戲體驗(yàn)。

參考文獻(xiàn)

[1] 薛凱.新型人機(jī)互動(dòng)技術(shù)在游戲中的應(yīng)用探索[J].寧夏師范學(xué)院學(xué)報(bào),2011,32(6):55?58.

[2] 董士海.人機(jī)交互的進(jìn)展及面臨的挑戰(zhàn)[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2004(1):1?12.

[3] 魏軍輝.基于FPGA的PS/2鍵盤接口的設(shè)計(jì)[J].微計(jì)算機(jī)信息,2008,24(9):139?140.

[4] 劉韜,樓興華.FPGA數(shù)字電子系統(tǒng)設(shè)計(jì)與開發(fā)實(shí)例導(dǎo)航[M].北京:人民郵電出版社,2005.

[5] 姚遠(yuǎn),李辰.FPGA 應(yīng)用開發(fā)入門與典型實(shí)例[M].北京:人民郵電出版社,2010.

[6] 張亞平,賀占莊.基于FPGA的VGA顯示模塊設(shè)計(jì)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2007,17(6):242?245.

[7] 段磊.基于FPGA的VGA顯示系統(tǒng)[J].世界電子元器件,2007, (9):38?42.

[8] 陳姚節(jié),盧建華.基于FPGA的VGA顯示接口的研究與設(shè)計(jì)[J].交通與計(jì)算機(jī),2005,23(2):47?49.

[9] 陳彬.基于FPGA的視頻圖像處理系統(tǒng)設(shè)計(jì)[D].重慶:重慶大學(xué),2006.

[10] 潘松.EDA技術(shù)與VHDL[M].3版.北京:清華大學(xué)出版社,2009.

[11] 陳志生,陳景賢.基于FPGA的多分辨率VGA圖像控制器設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2008,31(13):187?189.

[12] 吳子賢,孫昊,龐少龍.基于ADSP-BF533的VGA顯示控制器設(shè)計(jì)[J].電子科技,2013(9):189?191.

游戲界面因?yàn)橐粩嘈薷模蚀娣旁诨贔PGA片上RAM的RAM模塊中。其可同時(shí)有讀寫使能,因此可以同時(shí)讀寫,即使同時(shí)讀寫同一個(gè)地址也不會(huì)出錯(cuò),而且還可以設(shè)置成讀寫地址線各自獨(dú)立,不用考慮時(shí)分復(fù)用使用地址線的問題。這樣在實(shí)際代碼中就可以將RAM的讀和寫完全獨(dú)立考慮,分別由掃描輸出模塊和數(shù)據(jù)處理模塊完成,兩者互不干擾[7?8]。圖4是RAM的讀寫時(shí)序圖。

開始界面由于是固定的,放入ROM中,初始化ROM文件中的數(shù)據(jù)可通過Matlab處理得到。現(xiàn)在有一些字模軟件雖然可以讀取要顯示的圖片,但給出的數(shù)據(jù)格式并不能初始化ROM的,因此,利用Matlab編寫了一段圖片處理程序,可以讀取圖片,然后經(jīng)過處理,生成一個(gè)可以直接復(fù)制到ROM初始化文件中的數(shù)組形式。這樣,使得圖片顯示操作簡(jiǎn)單,圖片替換更容易。

2.2.3 VGA控制模塊

在游戲界面設(shè)計(jì)中,存在主要的難點(diǎn):小方塊隨機(jī)間隔下落、難度等級(jí)設(shè)置等。

在游戲中,為了增加游戲的難度,在設(shè)計(jì)中,小方塊的降落為兩個(gè),而且是有一定的間隔、在隨機(jī)位置下落。小方塊的動(dòng)態(tài)顯示是通過不斷修改RAM中要顯示圖像的數(shù)據(jù)來(lái)實(shí)現(xiàn)的。游戲中方塊的長(zhǎng)為32個(gè)像素(對(duì)應(yīng)RAM中存儲(chǔ)的數(shù)據(jù)位寬,方便修改)[9],則界面中有8條下落路線,小方塊的下落是從界面頂端開始的,也就意味著RAM中的數(shù)據(jù)修改是從前8位的某一位開始的,因此實(shí)現(xiàn)隨機(jī)下落只需要產(chǎn)生一個(gè)1~8范圍的隨機(jī)數(shù)。在設(shè)計(jì)中,通過設(shè)計(jì)了一個(gè)偽隨機(jī)數(shù)產(chǎn)生器,生成一個(gè)9以內(nèi)的隨機(jī)數(shù)作為RAM修改數(shù)據(jù)的起始位[10]。

第二個(gè)小方塊的下落是通過設(shè)定一個(gè)標(biāo)志位Num2,當(dāng)?shù)谝粋€(gè)方塊下落到游戲界面的中間位置時(shí),置位Num2,從而觸發(fā)了第二個(gè)小方塊的下落進(jìn)程,第二個(gè)方塊開始下落。其中,兩個(gè)小方塊下落修改數(shù)據(jù)的操作都是在VGA掃描的消隱階段完成的,因此每進(jìn)行一次幀掃描,小方塊下落1個(gè)像素。VGA刷新頻率為60 Hz,因此小方塊每秒會(huì)下落60個(gè)像素。

當(dāng)游戲操作者漏接的方塊數(shù)據(jù)到達(dá)一定數(shù)目m,游戲結(jié)束。難度等級(jí)是通過設(shè)置被控制方塊左右移動(dòng)靈敏度和漏接方塊數(shù)目m來(lái)實(shí)現(xiàn)的。靈敏度越高,m越小,游戲等級(jí)越高。圖5,圖6分別是實(shí)物中,初始化界面和游戲界面。

2.3 通信編碼準(zhǔn)則

單片機(jī)從加速度傳感器獲得的數(shù)據(jù)中提取出y軸的加速度值,由此可以判斷出速度手套的此時(shí)的狀態(tài)。它送往串口的數(shù)據(jù)不是加速度值,而是編碼后的指令。具體的編碼譯碼原則設(shè)定如表1所示。

表1 串口通信編碼準(zhǔn)則

表1中FPGA譯碼是FPGA的串口接收模塊獲得后,解碼之后送給VGA顯示模塊的指令。游戲中保持了傳統(tǒng)鍵盤的兼容性,具體實(shí)現(xiàn)是通過PS/2模塊根據(jù)鍵盤輸入信號(hào)產(chǎn)生與表格1中FPGA譯碼相同的指令,送給VGA顯示模塊,完成對(duì)游戲的控制。

3 結(jié) 語(yǔ)

本文設(shè)計(jì)了一款基于FGPA的體感游戲,通過利用人體的動(dòng)作完成對(duì)游戲的操作,利用VGA顯示技術(shù)來(lái)到達(dá)更好的類似虛擬現(xiàn)實(shí)的效果,同時(shí)系統(tǒng)也保持了對(duì)傳統(tǒng)游戲鍵盤操作的兼容性。

游戲通過加入人體的互動(dòng),使得游戲者可以對(duì)游戲有一種身臨其境的感覺,增加游戲趣味性、交互性、構(gòu)想性,同時(shí)也使得參與者身體得到運(yùn)動(dòng)與鍛煉。

游戲最后實(shí)現(xiàn)了常規(guī)游戲的基本功能,主要有歡迎界面與游戲界面的切換以及VGA顯示;速度手套模式與鍵盤模式的切換;計(jì)分系統(tǒng),包含分?jǐn)?shù)的顯示、清零等;游戲的難度等級(jí)設(shè)置、顯示以及游戲的結(jié)束;游戲的暫停、重新開始等功能等。最后在硬件平臺(tái)實(shí)現(xiàn),表明游戲具有可玩性、趣味性,并能使游戲者獲得較好的游戲體驗(yàn)。

參考文獻(xiàn)

[1] 薛凱.新型人機(jī)互動(dòng)技術(shù)在游戲中的應(yīng)用探索[J].寧夏師范學(xué)院學(xué)報(bào),2011,32(6):55?58.

[2] 董士海.人機(jī)交互的進(jìn)展及面臨的挑戰(zhàn)[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2004(1):1?12.

[3] 魏軍輝.基于FPGA的PS/2鍵盤接口的設(shè)計(jì)[J].微計(jì)算機(jī)信息,2008,24(9):139?140.

[4] 劉韜,樓興華.FPGA數(shù)字電子系統(tǒng)設(shè)計(jì)與開發(fā)實(shí)例導(dǎo)航[M].北京:人民郵電出版社,2005.

[5] 姚遠(yuǎn),李辰.FPGA 應(yīng)用開發(fā)入門與典型實(shí)例[M].北京:人民郵電出版社,2010.

[6] 張亞平,賀占莊.基于FPGA的VGA顯示模塊設(shè)計(jì)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2007,17(6):242?245.

[7] 段磊.基于FPGA的VGA顯示系統(tǒng)[J].世界電子元器件,2007, (9):38?42.

[8] 陳姚節(jié),盧建華.基于FPGA的VGA顯示接口的研究與設(shè)計(jì)[J].交通與計(jì)算機(jī),2005,23(2):47?49.

[9] 陳彬.基于FPGA的視頻圖像處理系統(tǒng)設(shè)計(jì)[D].重慶:重慶大學(xué),2006.

[10] 潘松.EDA技術(shù)與VHDL[M].3版.北京:清華大學(xué)出版社,2009.

[11] 陳志生,陳景賢.基于FPGA的多分辨率VGA圖像控制器設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2008,31(13):187?189.

[12] 吳子賢,孫昊,龐少龍.基于ADSP-BF533的VGA顯示控制器設(shè)計(jì)[J].電子科技,2013(9):189?191.

404 Not Found

404 Not Found


nginx
主站蜘蛛池模板: 好久久免费视频高清| 国产精品女同一区三区五区| 国产在线精品人成导航| 免费人成在线观看视频色| 91久久偷偷做嫩草影院精品| 午夜精品福利影院| 午夜激情婷婷| 无码内射中文字幕岛国片| 色综合婷婷| 亚洲a免费| 国产麻豆福利av在线播放| 欧美人人干| 亚洲国产高清精品线久久| 操国产美女| 911亚洲精品| 国产99久久亚洲综合精品西瓜tv| 欧美精品一区二区三区中文字幕| 国产香蕉在线视频| 一本大道视频精品人妻| 97在线国产视频| 高清亚洲欧美在线看| 熟妇人妻无乱码中文字幕真矢织江| 91精品专区| 亚洲日韩国产精品无码专区| 欧美福利在线| 亚洲手机在线| 欧美一级专区免费大片| 五月婷婷精品| 中文字幕亚洲乱码熟女1区2区| 91精品视频网站| 国产精品毛片一区视频播| 四虎影视库国产精品一区| 九九热在线视频| 亚洲精品在线影院| 欧美一级一级做性视频| 亚洲最猛黑人xxxx黑人猛交| 国产高潮视频在线观看| 亚洲热线99精品视频| 亚洲综合欧美在线一区在线播放| 亚洲乱码在线视频| 91无码人妻精品一区| 日本尹人综合香蕉在线观看| 日韩国产一区二区三区无码| 欧美日韩国产精品综合| 日本免费a视频| 丁香婷婷综合激情| 亚洲精品777| 在线播放国产一区| 欧美a在线视频| 亚洲国产AV无码综合原创| 五月激情婷婷综合| 天天躁夜夜躁狠狠躁图片| 亚洲不卡网| 国产欧美精品专区一区二区| 大陆精大陆国产国语精品1024| 久99久热只有精品国产15| 日本91视频| 成人在线综合| 青青青视频免费一区二区| JIZZ亚洲国产| 日本五区在线不卡精品| 国产99精品久久| 中文字幕丝袜一区二区| 国产无吗一区二区三区在线欢| 在线国产你懂的| 曰AV在线无码| 亚洲色婷婷一区二区| 亚洲色大成网站www国产| 久久精品国产电影| 久久久黄色片| 国产簧片免费在线播放| 一级全黄毛片| 无码高潮喷水专区久久| 人人91人人澡人人妻人人爽| 亚洲欧洲一区二区三区| 99热6这里只有精品| 亚洲无码91视频| 午夜小视频在线| 91美女视频在线| 国产精品尤物在线| 99精品伊人久久久大香线蕉 | 国产精品香蕉在线|