体感游戏是视觉与本体感觉和动作操控的调集,伴随着虚拟现实技能的迅猛开展,正逐渐走入商场。为了抵达视觉、运动相结合的意图,选用加速度传感器与VGA显现器相结合的办法,经过戴有速度手套的手的运动来完结对游戏界面中的滑块操控,接住随机下落的方块而取得分数。最终进行了板级测验,完结了开机界面、方式切换、难度调理、计分、游戏暂停与重新开端等功用。经过验证,游戏取得了较好的互动性、参与感与沉溺感。
计算机游戏范畴现已到了一个同质化相当严重的年代。机械性的重复相同的动作致使玩家的爱好越来越低。而现在游戏工业迎来了一个转折点,开端向交互性、置入感等方向开展。而杰出的沉溺感要求游戏必须在互动性上有立异。曩昔,游戏大部分是经过键盘与鼠标来完结操控的,但随着传感器技能、微机视觉的前进,使得运用自己的举动来对机器宣布指令的希望得以完结。这种人机互动方式以更为天然性、直观性的运动、语音等摸式替代电脑的键盘和鼠标等外设。
现在现已有了许多立异作用,如三维摄像机、传感器球拍、数据手套等。一些公司也推出了各种渠道,如日本任天堂公司的Wii、微软的Kinect、华硕的Xtion等。这些设备一般较为贵重,本文规划意图是低成本来完结人机交互,运用FPGA作为主操控器,凭借现代家庭较为遍及的电脑的显现器,完结体感游戏的规划,进步游戏的沉溺感与趣味性,一起坚持了关于键盘操作的兼容性。
1 体系规划方案
该体系首要由两个部分组成,分别是数据收集单元、显现操控单元。数据收集单元首要完结对运动操控信息的收集、数据的修正与处理、上传到显现操控单元等功用。显现操控单元首要完结游戏的开端、难度设定、方式切换、显现等功用。全体框图如图1所示。

图1 体系全体框图
1.1 数据收集单元
数据收集单元首要包括从操控器、加速度传感器、LED显现、按键、串口四个硬件部分。各部分的挑选和功用如下:
从操控器选用STC89C51单片机,此系列单片机是宏晶科技推出的新一代超强抗搅扰、低功耗、高性价比的单片机,指令代码彻底兼容传统8051单片机,并且有LQFP封装,使得速度手套能够做到小型化。
加速度传感器选用的是ADXL345。它是一款完好的3 轴加速度丈量体系。既能丈量运动或冲击导致的动态加速度,也能丈量停止加速度,例如重力加速度,使得器材可作为歪斜传感器运用。本规划中运用了其测停止加速度的功用,得到歪斜视点,然后发生操控指令。
收集单元中用了两个LED灯,用于显现当时速度手套的输出状况:当左边灯亮阐明宣布的操控信号为向左运动。两个按键输入用于游戏的操控信号暂停和分数清零的信号的发生。
收集单元运用串口将操控信号上传到显现操控单元。RS232是由电子工业协会(Electronic Industries Association,EIA)所拟定的异步传输标准接口。在低通讯速率下,直接衔接的最大物理距离为15 m,能够使得人能远离屏幕来操作游戏,避免眼睛疲惫。后期会考虑选用315模块来完结无线的操作。
1.2 显现操控单元
此单元是整个体系的中心,完结了游戏的大部分功用规划,首要包括主操控器、VGA接口、PS/2接口、独立按键、数码管、串口等硬件部分。
主操控器选用Altera于2004年推出的CycloneⅡ的FPGA,型号为EPC2C8208。其功耗较低,核电压只要1.2 V,片上RAM 有162 Kb,能够用于装备为RAM,ROM,FIFO等,时钟运用50 MHz的有源晶体发生。总操控单元担任接纳数据收集单元的信号、两种游戏方式的切换和操控指令的发生、VGA显现操控、游戏初始化界面存储等。
2 体系软件完结
游戏首要完结的功用有:欢迎界面与游戏界面的切换以及VGA显现;速度手套方式与键盘方式的切换;计分体系,包括分数的显现、清零等;游戏的难度等级设置、游戏的开端界面规划、暂停、完毕、重新开端等功用。软件规划包括单片机、FPGA的程序规划以及两者通讯指令编码原则设定三个方面。
2.1 单片机程序规划
单片机部分首要功用为经过收集加速度传感器和按键的信号,依据两个单元间的编码原则发生相应的操控指令,经过串口上传到显现操控中心。程序规划流程图如图2所示。

图2 单片机程序流程图
2.2 FPGA程序规划
FPGA是游戏的主操控器,完结了游戏的大部分功用,顶层规划文件中首要包括输入显现类模块、VGA中心模块、存储模块三类模块。其间输入显现类模块首要有分频模块、PS/2接纳模块、串口接纳模块、指令处理模块、数码管显现模块;存储模块包括依据FPGA 片上RAM的RAM和ROM模块。顶层规划框图如图3所示。

图3 FPGA顶层规划框图
2.2.1 输入显现类模块
独立按键用于方式的挑选、游戏难度的调理、由欢迎界面到游戏界面的切换;串口部分用于接纳来自数据收集单元的操控指令,经过译码模块后送入方式挑选模块;PS/2模块用于接纳键盘信号输入并发生指令送入方式挑选模块;数码管用于显现当时的游戏方式、难度等级和取得分数。
显现器选用的分辨率为640×480 的,改写频率为60 Hz,依据VGA常见改写频率时序表可知,需求时钟为25 MHz左右,板子输入时钟为50 MHz,经过分频模块后能够供给25 MHz的时钟。
2.2.2 存储模块
规划中,由于选用的是FPGA的片上RAM作为存储介质,遭到其162 Kb的束缚,只能规划巨细为256×256的单色界面。存储的数据位宽为32位,共2 048个,地址线为11位。
游戏界面由于要不断修正,故存放在依据FPGA片上RAM的RAM模块中。其可一起有读写使能,因而能够一起读写,即便一起读写同一个地址也不会犯错,并且还能够设置成读写地址线各自独立,不必考虑时分复用运用地址线的问题。这样在实践代码中就能够将RAM的读和写彻底独立考虑,分别由扫描输出模块和数据处理模块完结,两者互不搅扰。图4是RAM的读写时序图。

图4 装备RAM中读写数据时序图
开端界面由所以固定的,放入ROM 中,初始化ROM文件中的数据可经过Matlab处理得到。现在有一些字模软件尽管能够读取要显现的图片,但给出的数据格式并不能初始化ROM的,因而,运用Matlab编写了一段图片处理程序,能够读取图片,然后经过处理,生成一个能够直接复制到ROM初始化文件中的数组方式。这样,使得图片显现操作简略,图片替换更简单。
2.2.3 VGA操控模块
在游戏界面规划中,存在首要的难点:小方块随机距离下落、难度等级设置等。
在游戏中,为了添加游戏的难度,在规划中,小方块的下降为两个,并且是有必定的距离、在随机方位下落。小方块的动态显现是经过不断修正RAM中要显现图画的数据来完结的。游戏中方块的长为32 个像素(对应RAM中存储的数据位宽,便利修正),则界面中有8条下落道路,小方块的下落是从界面顶端开端的,也就意味着RAM中的数据修正是早年8位的某一位开端的,因而完结随机下落只需求发生一个1~8规模的随机数。在规划中,经过规划了一个伪随机数发生器,生成一个9以内的随机数作为RAM修正数据的开端位。
第二个小方块的下落是经过设定一个标志位Num2,当第一个方块下落到游戏界面的中心方位时,置位Num2,然后触发了第二个小方块的下落进程,第二个方块开端下落。其间,两个小方块下落修正数据的操作都是在VGA扫描的消隐阶段完结的,因而每进行一次帧扫描,小方块下落1个像素。VGA改写频率为60 Hz,因而小方块每秒会下落60个像素。
当游戏操作者漏接的方块数据抵达必定数目m,游戏完毕。难度等级是经过设置被操控方块左右移动灵敏度和漏接方块数目m 来完结的。灵敏度越高,m 越小,游戏等级越高。
2.3 通讯编码原则
单片机从加速度传感器取得的数据中提取出y 轴的加速度值,由此能够判别出速度手套的此刻的状况。它送往串口的数据不是加速度值,而是编码后的指令。详细的编码译码原则设定如表1所示。
表1 串口通讯编码原则

表1 中FPGA 译码是FPGA 的串口接纳模块取得后,解码之后送给VGA显现模块的指令。游戏中坚持了传统键盘的兼容性,详细完结是经过PS/2模块依据键盘输入信号发生与表格1中FPGA译码相同的指令,送给VGA显现模块,完结对游戏的操控。
3 结语
本文规划了一款依据FGPA的体感游戏,经过运用人体的动作完结对游戏的操作,运用VGA显现技能来抵达更好的相似虚拟现实的作用,一起体系也坚持了对传统游戏键盘操作的兼容性。
游戏经过参加人体的互动,使得游戏者能够对游戏有一种感同身受的感觉,添加游戏趣味性、交互性、设想性,一起也使得参与者身体得到运动与训练。
游戏最终完结了惯例游戏的基本功用,首要有欢迎界面与游戏界面的切换以及VGA显现;速度手套方式与键盘方式的切换;计分体系,包括分数的显现、清零等;游戏的难度等级设置、显现以及游戏的完毕;游戏的暂停、重新开端等功用等。最终在硬件渠道完结,标明游戏具有可玩性、趣味性,并能使游戏者取得较好的游戏体会。