[XMOVE自主设计的体感方案] 历代版本系统介绍(五)X-MOVE4.0 Android子系统

简介:
编者注: X-MOVE是作者在业余时间于2010年6月份启动的以运动传感开发,算法和应用的平台,目前已经发展了三个版本,第四版的开发接近尾声。发布在博客园仅为交流技术,不存在商业目的,作者保留一切权利。

一 . 简介

  在开发XMOVE的过程中,不止一人给我提出使用手机作为传感器终端的建议。在4.0中,这一愿望成为了现实。

  由于未曾在手机上开发过应用,因此本次开发目标非常明确:实现一套手机软件,可以无缝的融入XMOVE框架之内,通过蓝牙或WIFI与电脑通信,从而实现多种功能。  

  它的名称是AssistX for PC. 这是我从著名的代码编辑辅助工具Visual AssistX的名字上的灵感。这个系统是我在安卓上的第一部作品,功能较为单一。在设计风格上遵循了3.0版本的基本思路。

  

 AssistX For PC      

中文名: Xmove -PC助手

作者:北京邮电大学 热情的沙漠

软件类型:免费

所属分类:便捷生活

本软件系统包含PC端和安卓手机端两部分。

l   安卓手机端特性:

  1. 系统要求:Android 1.5版本以上
  2. 分辨率要求:800*480(其他分辨率未作真机测试)
  3.  软件大小:1.1M
  4. 所需权限:蓝牙和Internet局域网访问权限
  5. 需要加速度计和磁场计支持,部分应用需陀螺仪。

l   PC端特性:

  1. 支持windows xp ,Windows vista和Windows 7
  2. 需安装.NET Framework 4.0版本(安装包里已提供)
  3. 若需运行如“鹰击长空”的第三方PC应用时,需事先安装完毕,并将安装路径索引至软件数据库。
  4. 软件大小:4.5MB
  5. 要求PC蓝牙或WIFI功能支持。

  

 

二. 软件简介

  AssistX for PC,是XMOVE系统架构中的安卓版本,用以通过手机更方便的解决人机交互问题,以手机作为控制器,在不增加成本的情况下方便人在客厅及演讲等场合进行展示,娱乐和工作。通过手势识别,动作传感器运算,以及蓝牙和WIFI的支持,用户可方便的实现手机和PC的互联,你可将手机变身为无线多点触摸板,体感控制器,甚至整个家居生活中的控制核心。该软件包含PC端和手机客户端两个部分,易用快捷,插件系统设计支持功能的无限升级。目前已支持的PC应用有:

l   无线多点触摸板

l   鹰击长空 体感控制游戏

l   使命召唤  体感控制游戏(需陀螺仪支持)

l  极品飞车   体感控制游戏(正在调试中)

  系统旨在提供完善的平台,以联系PC和手机,以获得更多的可能性。由于大部分手机不支持陀螺仪,因此应用受限,但可参照作者自制的传感器节点的演示视频效果。

软件安装需求

手机端:

  1. 系统要求:Android 1.5版本以上
  2. 分辨率要求:800*480(其他分辨率未作真机测试)
  3. 软件大小:1.1M
  4. 所需权限:蓝牙和Internet局域网访问权限
  5. 需要加速度计和磁场计支持,部分应用需陀螺仪。

PC端:

   

  1. 支持windows xp ,Windows vista和Windows 7
  2. 需安装.NET Framework 4.0版本(安装包里已提供)
  3. 若需运行如“鹰击长空”的第三方PC应用时,需事先安装完毕,并将安装路径索引至软件数据库。
  4. 软件大小:4.5MB
  5. 要求PC蓝牙或WIFI功能支持。

三. 系统部署方法

手机端

将XMove安卓手机端.apk文件下载入手机,运行即可安装完毕。

 


PC端

  1. 将安装包解压完毕后,可看到以下文件。
  2. 运行BthDriverSetup.exe, 安装蓝牙驱动。
  3. 运行setup.exe,安装主系统程序。
  4. 插入蓝牙硬件适配器(若PC本身自带,则不需要),windows会自动安装其驱动。
  5. DotNetFX40是.NET Framework 4.0的包,若用户未安装,系统会自动将其安装到客户端本地,该库是windows和本软件新功能的基石,请保证安装。
  6. 错误分析:虽然本软件经过了作者的精心开发,但由于开发时间极为仓促,安装系统仅在三台PC上做过测试,因此不一定能保证能完美的运行于所有平台之上。常出现的问题如,未安装.net 4.0,解决方法可参考第五条;以及无法正常启动(双击之后无响应),这通常是由于蓝牙驱动未安装成功或不包含蓝牙硬件造成的。如出现这种情况,请再尝试第四步,或联系本作者。
  7. 若正常安装,则在用户桌面上出现如下图标:


双击即可启动。

四. 界面介绍和简要功能说明

 

手机端

 

  1. 开启界面

  当用户打开程序时,软件每次都会显示欢迎界面,如左图所示,持续两秒钟后,将自动进入主菜单。

  2. 主界面

  主界面以尽可能简洁为主,包含两大部分:通信控制和所需程序,在通信方法选择中,你可以选择蓝牙(请赋予本程序蓝牙权限)和WIFI(需打开WIFI开关并连入局域网) 点击“连接“按钮后,系统将会自动尝试与PC建立连接,当连接完毕后,你即可选择你想要的应用。

  3.配置界面

 

 


   当用户使用WIFI进行连接时,需要知道PC机的IP地址和端口,IP地址可通过PC服务器端获得,具体可参考后续章节,端口用户可自行设置,但不能过于简单(否则可能与系统或其他软件端口发生冲突。点击保存后,即可保存设置。

  4. 应用界面

  下面展示了主要的应用界面,当用户成功建立连接后,即可通过主界面的应用选择器选择所需功能。详细可参考后续章节,此处不进行详述。

 


PC端界面


    上图是PC端的操作界面,可以非常清晰的看到,整个界面包含三个主要部分,从左到右依次为:节点管理器,通信管理器,和应用程序管理器。

     通信管理器中,用户可通过下拉菜单选择不同的通信方法,选择后点击“切换模式”按钮,系统会自动搜索可用的地址或端口配置,对于串口而言,它会返回系统可用串口列表,对于蓝牙而言,可自动搜索当前环境中可用的蓝牙设备;对于WIFI通信而言,它会自动返回当前可用IP地址。点击开启即可建立通信。

    应用程序管理器可方便用户实现不同的功能,下拉列表中选择所需的功能后,单击确定即可切换到想要的工作模式,需注意,PC端的模式需与手机端的模式相同,才可正常的建立应用(除调试类程序:如节点查看器)。

  用户可以像搭积木一样,很容易的配置三个管理器,建立不同节点(该应用默认为手机);不同通信方法,如蓝牙,WIFI,USB,串口等(该应用仅使用了蓝牙和WIFI), 和不同的应用程序(本应用暂时包含了安卓触摸板,鹰击长空和模式识别管理器)等。

   整个界面使用简单,当用户配置完成后,可单击屏幕右下角的“开始”按钮,即可连接起三个部分,程序正常工作。

五.详细操作流程

首战:建立连接

  1. 开启手机应用程序,选择不同的通信方法,若是蓝牙,需要配置给程序以蓝牙使用权限,若是WIFI,则需要可用的无线局域网。此处更推荐蓝牙,因为蓝牙的传输平稳,而WIFI是基于碰撞检测的,发送数据包不平稳,会导致包延迟和突发数据,对实时性应用不佳。
  2. 开启PC端用户程序,在通信管理器中,选择与手机端匹配的通信方法。

  (1)   使用蓝牙时: 点击通信管理器的“模式切换”按钮,系统会在20s之内搜索可用蓝牙设备,您的手机应该会被检索到。

  (2)   使用WIFI时,同样点击“模式切换”,可返回系统当前IP,您通常可选择第一项,并输入五位数的端口号。

  1. 手机端点击“连接”
  2. PC端在通信管理器中,单击“开启”
  3. 配置PC端“应用程序管理器”。
  4. 系统应正常建立了连接。在手机端会以toast方式显示“连接成功”,在PC端会显示“连接已建立”。
  5. 选择手机应用,并与PC端应用匹配,如手机端选择Touchpad, PC端应对应选择“安卓触摸板”。点击PC端右下角的开始按钮,打通全部逻辑信道,开始您的兴奋旅程!
  6. 当希望关闭系统时,分别点击手机端和PC端的断开连接,即可关闭应用。

 

Enjoy 应用

   下面介绍比较成熟的典型应用:

l   多点触摸板

  如下图,多点触摸板可用于在客厅和演讲场合中,不方便操作PC键盘和鼠标时使用。使用方法非常简单,单手指可实现鼠标移动,双指上下滑动可实现滚轮操作,三指可实现右键操作。

  同时,系统还支持空中手势识别,用户可通过在PC端的配置后,实现快捷功能:用户可用手指按下触摸板正前方的touch to move 按钮,在空中做动作,做完后松开,即可识别出用户动作,例如,用户在空中手写字母p, PC端的画图功能就可展开。这种功能可方便的应对快速执行某些功能的场合。

l   鹰击长空 体感游戏

如下图,鹰击长空是一款高拟真,高性能的3D空战游戏,具有世界级的画面和游戏效果,本系统实现将手机作为体感控制器来操作飞机进行战斗,用户体验极佳。

用户进入游戏后,先在PC端配置游戏选单,进入游戏关卡,即可进行游戏。通过倾斜手机,可控制飞机的俯仰和侧翻,通过绕着Z轴旋转,可实现手机的偏航。

有四个主要功能键:导弹,锁定目标,红外干扰弹发射,武器切换

一个手控油门系统:可实现飞机加速和减速。这在空中格斗时特别有用。

l   节点性能监视器

   节点性能监视器是一个可查看当前节点详细信息的应用,可通过实时数据反馈得到当前节点(此应用指手机)的准确的三轴加速度,三轴角速度和三轴磁场计,以及电量信息,同时实时显示当前通信效率,后期还会加入手机位置的地图显示。这对于了解手机状态和位置很有帮助。

l   模式识别管理器

  该应用可以管理用户建立的模式识别资料库,用户可在两个模式下进行,即训练模式和识别模式。训练模式用户可自主建立资料库,通过训练获得新的动作定义,在识别模式可检测系统识别准确度。这项应用的主要用途在于对“安卓触摸板”动作的学习和训练。

 

五. 已知的BUG

  由于开发时间非常紧张,同时要开发PC端和手机端系统,涉及多种核心技术,因此很多细节并未特别完善,以下列出测试中已知的BUG,供后续版本解决:

  1. 用户在使用WIFI模式时,传输不平稳,会导致较严重的包延迟和突发包,这在“安卓触摸板”应用中表现得尤为明显。可能是WIFI本身的设计所致,解决余地不大,因此请在实时性要求高的应用下,尽可能使用蓝牙。
  2. 当切换入蓝牙模式时,若用户未提供给程序蓝牙权限,点击连接时程序会崩溃,可以解决。
  3. 配置完毕的IP和端口不能保存,已找到解决方法。
  4. 当用户选择断开连接后,若再次连接可能会出现程序崩溃,建议的做法是正常退出手机程序,重新进入再建立连接。正在解决中。
  5. 触摸板应用中,鼠标指针可能会发生瞬移。正在解决中。
  6. 很多手机并不支持陀螺仪,因此在进入“使命召唤”应用时,程序会检测到无陀螺仪支持,而无法进入(很难解决)

六. 总结

   这是我在手机上的第一个应用,没有发布,赢得了校内安卓开发大赛特等奖(拜于XMOVE的大背景所赐)。

   开发安卓应用要比开发单片机简单太多了,有大量的类库,代码提示,可视化界面和调试工具,无所不能,让我有种无比幸福的感觉。

  目前移动互联网如此火爆,完全可以考虑把整个XMOVE移植到手机上,监测人体运动,并分析,存储和识别动作。这可以完虐kinect。如果顺利,我将在2012年暑假完成这项工作。

  上位机的开发是基于WinForm的,原本考虑WPF,但学习时间实在跟不少了。拜于MVC的思想所赐,逻辑的清晰分离让这个软件的核心成为XFrmWork的雏形。

  以下是完整的应用下载

  手机端程序

  PC端程序(蓝牙驱动等)

  

 

 

 


作者:热情的沙漠
出处:http://www.cnblogs.com/buptzym/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。


本文转自FerventDesert博客园博客,原文链接:http://www.cnblogs.com/buptzym/archive/2012/07/11/2586234.html,如需转载请自行联系原作者
目录
相关文章
|
2月前
|
缓存 Java Shell
Android 系统缓存扫描与清理方法分析
Android 系统缓存从原理探索到实现。
61 15
Android 系统缓存扫描与清理方法分析
|
25天前
|
算法 JavaScript Android开发
|
28天前
|
安全 搜索推荐 Android开发
揭秘安卓与iOS系统的差异:技术深度对比
【10月更文挑战第27天】 本文深入探讨了安卓(Android)与iOS两大移动操作系统的技术特点和用户体验差异。通过对比两者的系统架构、应用生态、用户界面、安全性等方面,揭示了为何这两种系统能够在市场中各占一席之地,并为用户提供不同的选择。文章旨在为读者提供一个全面的视角,理解两种系统的优势与局限,从而更好地根据自己的需求做出选择。
72 2
|
2月前
|
安全 搜索推荐 Android开发
深入探索安卓与iOS系统的差异及其对用户体验的影响
在当今的智能手机市场中,安卓和iOS是两大主流操作系统。它们各自拥有独特的特性和优势,为用户提供了不同的使用体验。本文将深入探讨安卓与iOS系统之间的主要差异,包括它们的设计理念、用户界面、应用生态以及安全性等方面,并分析这些差异如何影响用户的使用体验。
|
2月前
|
安全 搜索推荐 Android开发
揭秘iOS与Android系统的差异:一场技术与哲学的较量
在当今数字化时代,智能手机操作系统的选择成为了用户个性化表达和技术偏好的重要标志。iOS和Android,作为市场上两大主流操作系统,它们之间的竞争不仅仅是技术的比拼,更是设计理念、用户体验和生态系统构建的全面较量。本文将深入探讨iOS与Android在系统架构、应用生态、用户界面及安全性等方面的本质区别,揭示这两种系统背后的哲学思想和市场策略,帮助读者更全面地理解两者的优劣,从而做出更适合自己的选择。
|
27天前
|
安全 搜索推荐 程序员
深入探索Android系统的碎片化问题及其解决方案
在移动操作系统的世界中,Android以其开放性和灵活性赢得了广泛的市场份额。然而,这种开放性也带来了一个众所周知的问题——系统碎片化。本文旨在探讨Android系统碎片化的现状、成因以及可能的解决方案,为开发者和用户提供一种全新的视角来理解这一现象。通过分析不同版本的Android系统分布、硬件多样性以及更新机制的影响,我们提出了一系列针对性的策略,旨在减少碎片化带来的影响,提升用户体验。
|
27天前
|
安全 Android开发 iOS开发
深入探索iOS与Android系统的差异性及优化策略
在当今数字化时代,移动操作系统的竞争尤为激烈,其中iOS和Android作为市场上的两大巨头,各自拥有庞大的用户基础和独特的技术特点。本文旨在通过对比分析iOS与Android的核心差异,探讨各自的优势与局限,并提出针对性的优化策略,以期为用户提供更优质的使用体验和为开发者提供有价值的参考。
|
29天前
|
安全 Android开发 iOS开发
安卓系统与iOS系统的比较####
【10月更文挑战第26天】 本文将深入探讨安卓(Android)和iOS这两大主流移动操作系统的各自特点、优势与不足。通过对比分析,帮助读者更好地理解两者在用户体验、应用生态、系统安全等方面的差异,从而为消费者在选择智能手机时提供参考依据。无论你是技术爱好者还是普通用户,这篇文章都将为你揭示两大系统背后的故事和技术细节。 ####
42 0
|
2月前
|
IDE Android开发 iOS开发
探索安卓与iOS系统的技术差异:开发者的视角
本文深入分析了安卓(Android)与苹果iOS两大移动操作系统在技术架构、开发环境、用户体验和市场策略方面的主要差异。通过对比这两种系统的不同特点,旨在为移动应用开发者提供有价值的见解,帮助他们在不同平台上做出更明智的开发决策。
|
2月前
|
Ubuntu Shell API
Ubuntu 64系统编译android arm64-v8a 的openssl静态库libssl.a和libcrypto.a
Ubuntu 64系统编译android arm64-v8a 的openssl静态库libssl.a和libcrypto.a