教育资源为主的文档平台

当前位置: 查字典文档网> 所有文档分类> 论文> 其他论文> 一种以体感技术实现人机交互的PC游戏控制系统

一种以体感技术实现人机交互的PC游戏控制系统

上传者:网友
|
翻新时间:2015-09-10

一种以体感技术实现人机交互的PC游戏控制系统

摘 要:引入最新的健身型体感游戏理念,开发一种感知人体手脚动作的人机交互体感游戏系统,使用压力传感器感应玩家的脚步动作、加速度传感器感应手部动作,并把感应的动作编码成运动指令,发送给计算机处理并显示。最后完成了软硬件调试,系统成功实现了体感交互方式,玩家从中收获了较好的健身性、趣味性和普适性。

关键词:人机交互;体感游戏;压力传感器;加速度传感器

中图分类号:TP391 文献标识码:A

1 引言(Introduction)

如今市场上成功的健身型体感游戏种类繁多,如基于摄像头Kinect平台的《Kinect大冒险》[3]等,这些设备大都价格昂贵,且需要专门的游戏主机。本文的设计目的是以低成本、适用广为特点,为基于键盘操作的电脑小游戏提供体感交互式的控制模式,系统采用压力传感器和加速度传感器,分别感应玩家腿部和手部动作,而不仅仅只有一个手部遥控装置[4],玩家能够获得全身性的运动。

2 系统方案设计(Project design)

本系统包含三个部分:传感器单元、数据采集处理单元和控制显示单元。数据采集处理单元使用三块51单片机,将加速度数据与压力数据分开处理,并实现了玩家手部加速度装置的无线化。整体框图如图1所示。

本系统基于传统的横版过关类游戏,按照常规键盘操作方式使用方向键或其他按键,人物可以前后移动或向上、向前、向后跳跃;人物的手部运动只有一种,其功能视具体游戏而定,在本装置中一律按挥拳攻击处理。

系统使用一个压力感应装置感应玩家的脚步命令动作,该装置有五个区域如图2所示,每个区域下面安装一个压力传感器-广测YZC-1B,其中C区代表“原地”方向,玩家在这个区域跳一下,上位机游戏的人物原地跳一下;A和B区分别是“前进”方向的左右脚摆放位置,玩家在这个区域原地跑或向上跳跃,游戏人物向前进或者向前跳;D和E区分别是“后退”方向的左右脚摆放位置。

数据采集处理单元以串口通信方式,向PC上位机中的游戏发送控制命令,上位机中的串口模拟键盘程序可以根据串口发来的命令,模拟按键响应,控制电脑游戏中游戏人物的动作,从而实现单片机对电脑游戏的控制。

3 动作判断方法分析(Analysis of motion)

动作判断方法是本系统研究阶段的主要研究内容,判断方法的好坏直接影响系统功能的实现。

3.1 脚步动作判断

在跑步和跳跃时,人的左右脚的动作有紧密联系,设置玩家右脚为主动脚,左脚为从动脚,判断每次的动作都从右脚开始。

以体重50kg玩家的实验数据为例,数据采样频率10Hz,仅采集得到若干特征值,方便对动作的判断,压感装置测量到的并不是真实的质量,玩家静立在压感装置上的测量值为3kg,当玩家在前进/后退区域跑动,左右脚下的称重传感器测量到的数据如图3所示。从静止到跑步再回到静止状态,右脚和左脚的重量交替变化,重量从小幅波动到大幅起落,最低值到0,峰值能够超过静立重量的两倍。笔者的判断方法是:右脚的重量严格超过静立重量的两倍、同时左脚重量为零、待1秒内左脚落下后重量达到静立重量的两倍,则完成一次跑步命令动作。

当玩家在前进/后退区域跳跃,左右脚下的称重传感器测量到的数据如图4所示。每个跳跃动作可分解为起跳、腾空、落地三个过程[7],左右脚重量变化几乎同步,在起跳和落地过程中,传感器分别会测量到一个峰值,达到静立重量的两倍。笔者仅以第一个峰值为准进行判断,判断方法是:右脚重量达到静立重量的两倍、同时左脚重量超过静立重量、待双脚同时腾空使重量为零,则完成一次跳跃,随后在程序中延时400毫秒,避免误判第二次峰值。

当玩家在原地区域跳跃,两只脚都在同一个传感器上,跳跃过程中质量变化的峰值更大,但其重量变化曲线的趋势与上文大致相同,判断方法也类似,测量到第一个峰值超过静立重量的两倍即视为一次有效的跳跃,随后延时400毫秒。

以上分析的判断方法,能够正确分辨玩家连续的动作,克服双脚质量变化的不平衡特点[8],并及时做出反应,尽量缩短判断动作所需的时间,减小人机交互中的时延感。

3.2 手部动作判断

上述加速度判断方法的合理性在于,取略小于挥出时峰值、而又远大于收回时峰值的数值作为阈值,最大限度地避免收回时被判为又一次挥拳,以及挥出时没有被判断为挥拳的误判状况出现。每次判断所需时间极短,可在短时间内进行多次判断,实时反映运动状况。 4 系统软件实现(Software design)

4.1 单片机程序设计

单片机c是主控器,处理压感的数据,判断脚步动作,并且负责传输向上位机的所有命令;单片机a处理加速度手环的数据;单片机b处理单片机a和单片机c的信息交互。单片机c的程序流程图如图6所示。

单片机初始化传感器和AD模块后,首先给存放静立质量的weight_still变量赋值。蜂鸣器发出提示音,玩家站上压力感应装置的“原地”区域,站稳后,单片机每隔50毫秒获取一个16位数据,共采集100个数值并进行排序,取中心数值计算出静立质量(单位:kg),最后赋给weight_still,蜂鸣器停止鸣叫,玩家开始游戏。单片机不断查询原地、向前右脚、向后右脚的质量,当质量超出阈值,则进入动作判断程序,若判断有动作,则向串口发送相应的命令,命令为一个字节的字符。单片机a的程序流程图如图7所示。

接收端收到RxData后对其解码,若解得内容与机内预设的KEY=0时的RxData内容相符,则输出一个低电平给单片机c的外部中断引脚,单片机c进入中断程序后向串口发送挥拳的命令,同时输出一个应答信号ACK反馈给单片机b,单片机b随后将低电平拉高。

4.2 上位机软件设计

上位机软件主要是利用MFC作为框架,进行串口通讯和键盘模拟。

MFC中的MSComm通信控件提供了一系列标准通信命令的接口,可以用它创建高效实用的通信程序。本系统建立基于对话框的MFC程序,设置相应的显示框,在添加MSComm控件的同时添加了CMSComm类,调用相关函数对串口各种参数进行设置,与单片机进行匹配,实现串口通讯。

在普通的键盘输入中,当按下一个键时,Windows操作系统把WM_KEYDOWN或者WM_SYSKEYDOWN消息放入消息队列;释放一个键时,Windows把WM_KEYUP或者WM_SYSKEYUP消息放入消息队列中。Windows提供了一个模拟键盘API函数Keybd_event(),该函数能触发一个按键事件,利用该函数可以模拟一个按键被按下或者松开,从而用软件代替键盘实现键盘消息的发送。

上位机软件接收到单片机发来的命令后,判断命令字符,调用Keybd_event()函数,改变其中虚拟码的键值,模拟不同按键被按下的情况,从而实现模拟键盘的功能,使单片机能够控制游戏中的人物。在软件界面上,玩家可根据不同的游戏,选择需要映射的按键,实现了本系统的普适性。

5 实验测试与结果(Result of experiment)

笔者完成了系统的硬件和软件,系统能够正确地采集到玩家的动作命令,并且及时地使游戏中的人物做出相应动作。测试的游戏包括《超级马里奥》等,本装置目前在体重48―55kg的人群中试验过。系统工作图如图8和图9所示。

6 结论(Conclusion)

本文实现了一种基于多单片机的人机交互体感游戏系统,可以为基于键盘操作的电脑小游戏提供体感交互式的控制模式。文章介绍了装置的硬件实现和软件设计,玩家可以使用身体动作控制游戏人物,从传统的按键操作中解放出来,手部控制器采用无线通讯,使玩家的控制更加自然,提高了原游戏的沉浸感、交互性和趣味性,是对传统按键游戏的升级。

下载文档

版权声明:此文档由查字典文档网用户提供,如用于商业用途请与作者联系,查字典文档网保持最终解释权!

网友最新关注

让我们一起保卫他们
孔明灯
一件觉得烦恼的事
星星归去
第一次包饺子
放风筝
眼泪
今天过生日
我长大了
自我介绍
都是电视惹的祸
又下雪了
神奇的胖大海
凡妮自传
吃蛋卡
浅谈微课程在初中信息技术教学中的作用
教学情境巧设计,师生合作现温馨
自主学习策略在高中语文写作教学中的应用探析
教是为了不教,学是为了会学
因“材”施课,实现新课程理念
初中化学互动式教学策略浅谈
尝试让翻转课堂的教学模式走进英语教学
拓展训练融入初中体育教学的可行性分析
浅谈建构主义理论下的思想品德课堂新模式
研究性学习在数学课堂教学设计中的渗透
初中班主任德育工作案例
初中英语探究式教学案例研究
初中语文复述教学的方式与方法分析
多彩的课堂 愉快的学习
变式教学在化学教学中的初体验
小学语文二年级第四册 小黄鸡的故事 教学设计
小学语文二年级第四册 小黄鸡的故事 教学设计
二年级 >> 画鸡蛋教案实录(转)
小学语文二年级第四册 骄傲的孔雀 教学设计
美丽的公鸡
〈丑小鸭〉教学片断实录与评析
《狐狸和乌鸦》教学片断实录与评析(转)
海底世界
小学语文二年级第四册 雷锋叔叔和我们在一起 教学设计
《索溪峪的“野”》教学实录
小学语文二年级第四册 春雨 教学设计
《坐井观天》教学片断与评析
我要的是葫芦
二年级 >> 《坐井观天》教学实录与评析
左忠毅公逸事