基于Android移动设备传感器的体感应用

基于Android移动设备传感器的体感应用,第1张

为了利用Android移动设备成熟的传感器技术来实现体感 *** 作,文中设计了基于Android移动设备传感器的体感应用系统.该系统的架构具有通用性特点,并非只局限于能控制PC中固定的程序.该系统包含了一个移动端(Android)程序与一个Windows平台下的中间件平台,它以Android平台的设备为输入设备,利用各种传感器采集数据,经WIFI发送到PC端的中间件平台,接收后可自定义转换为相应的 *** 作指令,以控制电脑中不同的应用软件或者游戏.

1、系统总体设计

本系统采用客户/服务器(C/S)架构,将PC或运行能力较强的计算设备作为服务器,负责与Android手机进行通信和发出指令 *** 作.Android手机作为客户端,通过友好的用户界面,引导用户选择相应的传感器种类(目前智能手机中同时包含多种传感器),如设定用户 *** 作的种类属于动感式(加速度应用)还是竞技式(支持力的应用)。

1.1、服务器和Android手机的通信

服务器和Android手机之间的通信需要解决的主要问题有:数据传输中稳定性和高效性的把握、用户 *** 作模式的识别方法及用户的动作量化方法.

1.1.1、数据传输

系统中服务器与客户端利用Socket通过用户数据报(UDP)协议进行通信,传输速度快,无延迟.虽然UDP协议有数据报容易丢失、不能保证每个数据报准确无误地传到等问题,但对于运动体感的 *** 作,用户的动作产生的数据是连续的,即使丢掉部分的数据报对用户体验也无大碍.例如控制赛车向左转弯,用户动作一定有一个幅度,在这个幅度当中,其实已经发送了很多个向左的数据报,丢失一两个数据报对用户体验的影响不大.

Java中有两个数据报类:DatagramSocket(进行端到端通信的类)和DatagramPacket(表示通信数据的数据报类),程序中的客户端A和B可通过调用DatagramSocket收发DatagramPacket,如图1所示.

基于Android移动设备传感器的体感应用,基于Android移动设备传感器的体感应用,第2张

图1  UDP通信模式

1.1.2、用户 *** 作模式识别

在确定移动通信传输协议的基础上,需要将移动设备的多点触摸功能和传感器功能融入到服务器强大的计算功能中,即实现信息空间和物理空间的融合,因此需要将移动设备发出的指令变成服务器能够识别的 *** 作.

识别的前提是需要引导用户选择 *** 作的模式,如使用触摸屏还是传感器,而Android传感器包含了光照、温度、加速度、压力、重力、地磁等多种传感器,所以Android移动体感选取的状态模式改变时,应该通知PC客户端进行识别,这样才能进行正确的 *** 作映射.

系统中通知状态改变发送的消息格式是:state+n.其中,state是固定的字符串,n是约定意义的数字.状态改变类StateChangedInformer继承基类Transmission,发送状态消息给PC端.

常用的用户 *** 作属于不同模式的应用,如手柄模式属于多点触摸屏模式的应用,而幻灯片(PPT)、赛车等 *** 控属于传感器模式的应用.

1.1.3、动作数据量化

用户需要实现对屏幕的双击、长按及画弧(如图2左边所示的圆圈样式) *** 作,这些用户 *** 作必须量化为数字信号方能处理.手柄的按钮有按下和d起2种状态,定义好编号和键盘的对应按键,封装其发送方法,在已有的数据传输的基础上便能实现远程控制的功能.

 

图2 用户 *** 作界面

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2718104.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-17
下一篇 2022-08-17

发表评论

登录后才能评论

评论列表(0条)

保存