您的位置 首页 编程

低成本人机交互规划:根据FPGA的体感游戏

体感游戏是视觉与本体感觉和动作控制的集合,伴随着虚拟现实技术的迅猛发展,正逐步走入市场。为了达到视觉、运动相结合的目的,采用加速度传感器与VGA显示器相结合的方法,通过戴有速度手套的手的运动来完成对游

体感游戏是视觉与本体感觉和动作操控的调集,伴随着虚拟现实技能的迅猛开展,正逐渐走入商场。为了抵达视觉、运动相结合的意图,选用加速度传感器与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显现;速度手套方式与键盘方式的切换;计分体系,包括分数的显现、清零等;游戏的难度等级设置、显现以及游戏的完毕;游戏的暂停、重新开端等功用等。最终在硬件渠道完结,标明游戏具有可玩性、趣味性,并能使游戏者取得较好的游戏体会。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/biancheng/280555.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部