基于虚拟现实的3D无线鼠标设计

2020-02-07 13:03夏金晶方浩
物联网技术 2020年1期
关键词:虚拟环境

夏金晶 方浩

摘 要:鼠标作为电脑的一个基本部件,扮演着重要角色。现今的鼠标即使可以脱离桌面载体的使用,其对于二维桌面环境(Windows系统)本质上二维平面属性未能改变,若针对三维桌面环境,即增加可视化窗口的维度,现今的鼠标在空间进行前后运动未能有真实效果。文中基于三轴加速度计ADXL345和Cortex-M0处理器,对三维鼠标的设计进行了探索。通过加速度计ADXL345完成x,y,z方向的数据采集,使用I2C将数据传输给Cortex-M0处理器;处理器对数据加工处理后,使用UART将动作的偏移量传输给PC机;根据三维方向的偏移量实现鼠标的三维控制。

关键词:二维桌面;三维鼠标;虚拟环境;纵深方向;ADXL345;Cortex-M0

中图分类号:TP212文献标识码:A文章编号:2095-1302(2020)01-0-03

0 引 言

自从美国科学家在1968年制造出世界上第一只鼠标(以其外形类似老鼠而命名)以来,鼠标已经有近60年的历史。最初,鼠标普遍都是滚轮式,而随着现代科技的不断发展,当前人们开始越来越多地使用更为先进的光电子鼠标。然而,随着计算机应用的进一步发展,当在许多场合没有台式机时(例如在长途车和矿井中),传统鼠标在操作中存在较大的缺陷,便捷性较低;即使应用到目前最为先进的触摸屏技术,往往也达不到较高的使用效果。而随着微电子机械系统的研究不断成熟,基于这一系统的传感器也开始得到越来越广泛的应用,尤其是在三维空间的定位中发挥了至关重要的作用[1]。

1 整体结构

系统设计划分为软件和硬件这两个部分。其中,对于硬件而言,选取使用到了三轴加速度计,完成了对三维数据采集电路的前期设计工作,在此基础上进一步得出了x,y,z这三个不同方向上的加速度信号强弱;接着,完成了对存储电路的设计工作,借助于数据分析处理,及时得出了在x,y,z这三个方向的数据偏移[2]。对于软件而言:第一步是对整个数据处理的流程做出设计,将加速度计进一步移动至原始数据中,并完成对该数据的及时存储,最终将其转换为数据格式进行处理;除此之外,还针对I2C接口驱动程序进行了设计[3]。图1为系统整体结构。

2 硬件设计

2.1 MEMS加速度传感器

本文设计选择三轴加速度计ADXL345是因为它有三个轴,并且获得的信号是三维的,不需要像单轴和双轴加速度计那样使用几个芯片同时工作,只需要执行复杂的操作来集成它们,以获得想要的三维信号。选择ADXL345是出于简单的设计、简化的电路和时间限制的考虑[4]。

2.1.1 工作原理

图2为MEMS加速度传感器工作原理。根据图2可知,该传感器工作原理即在实际运行的过程中应用到的工作原理。此时进一步引入Hook定理,可以得出:

式中:F表示外力;m表示质量;a代表加速度;x代表距离;k表示弹簧弹性系数[5]。正是因为这样,就可以借助于距离、质量和弹簧系数这三种量,精确地测量出加速度a的实际大小。文中,阐述了处于垂直位置关系的两个加速度传感器,获得了单轴加速度。类似地,对于三轴加速度而言,其在本质上就是基于三个相互垂直单轴加速度传感器而得出的。

2.1.2 倾斜角测量原理

根据图2可以进一步得出,二维加速度传感器在倾斜角测量中应用到的原理。此时,可以将倾斜角表示为:

式中ax和ay分别代表了在x轴和y轴这两个不同方向上的加速度大小。

当单轴加速度传感器放置在物体上方,也能够进行倾斜角的测定工作。但是需要注意的是,针对微机电系统传感器而言,其在实际运用的过程中具有一定的局限性,如果工作環境中存在噪声,则会大大影响最终的应用效果。基于这样的考虑,选取了二维加速度传感器,从而达到减少噪声干扰的目的,保障最终测定结果的精确性。

二维加速度倾角测量如图3所示。基于三轴加速度和重力,能够得出θ,ψ和φ这三类倾斜角。其中,θ,ψ分别是

X'轴,Y'轴与地面投影的夹角,而φ则代表Z'轴与垂直轴Z的夹角。因此可以进一步得出以下的数学表达式:

可以得出这样的结论:姿态角的确定是基于三轴加速度计的输出。所以,借助于这一特点,可以有效地减少工作环境中噪声的干扰。但是需要注意的是,针对微机电系统而言,其在实际运行中必然会受到环境噪声的影响,所以最终测定的结果往往不可避免存在细微的误差。物体在三维空间中的姿态主要由三轴加速度的静态或准静态特性决定。若物体在三维空间处于高速移动的状态,基于上述的表达式也难以精确地测定出物体的瞬时姿态[6]。三维加速度倾角测量如图4所示。

2.2 微控制器设计

在该电路中,应用到的是Cortex-M0处理器。这一处理器在实际运用中具备较大的性能优势,整体能耗较低,同时也能够达到较强的节能效果。此外,该处理器能够及时高效地完成对三轴加速度的数据处理,从三个方向获得加速度计的偏移量,并通过串行端口将其发送到PC。

3 软件设计

整体设计思想是通过ADXL345收集三轴加速值,通过Cortex-M0计算加速值并获得偏移量,并通过串行端口将产生的偏移量传递给计算机,以控制鼠标光标的移动和其他必要的功能[7]。

该系统的鼠标驱动程序在微软Win7平台上实现。电脑接收从通用串行总线接口发送的数据,在此基础上,借助于式(3)~式(5),把它进一步转变成方位角[3-8]。此外,必须要利用鼠标动作,基于屏幕来调控方位角和鼠标控制的联系。在此过程中,运用驱动程序来开启虚拟鼠标设备文件。紧接着,利用挂钩鼠标类驱动程序,借助于相关回调函数,把鼠标操作及时传送到类驱动程序,具体的步骤如图5所示[9]。

系統在完成了对USB数据的接收之后,基于按钮值来判定此时的鼠标操作。在这一操作中,若测定的是倾斜角,就把其转变为屏幕像素值,同时调整鼠标位置。此外,进一步明确按钮的具体动作。 在此基础上,判定电子稳定控制键是否存在,若已存在,那么指示退出。

4 系统测试

利用微机控制光标左右移动,光标上下移动,鼠标通过鼠标驱动程序使用x方向偏移量放大和缩小。基于x,y,z这三个方向的多维度定义,实现了三维运动的功能[6]。

根据图5所示的流程可以发现,基于传感器的处理,最终测定出鼠标的加速度。在一般的运行状态下,如果鼠标处在x方向,此时加速度的大小处在-12g~12g,同时,其在y轴和z轴的加速度都处在-1g~1g;当沿y方向移动时,x轴的加速度范围为-1g~1g,y轴的加速度范围为-12g~12g,z轴加速度值范围为-1g~1g;当在z方向上移动时,x轴加速度值范围为-1g~1g,y轴加速度值范围为-1g~1g,z轴的加速度值范围为-12g~12g。

图6为在加速度值被处理之后传输到个人计算机的三维方向数据的偏移。

针对微机而言,其应用的是视窗操作系统。PC运用USB模拟串行信道,并及时接收三个不同方向发生的偏移。 而借助于可视化VC 6.0++,编写出的驱动程序,继而使得该设计可在三个方向达到基于偏移控制的目的。

5 结 语

文中利用ADXL345来获取三轴加速度值,同时借助Cortex-M0获得偏移量。基于串行口,把偏移量传送至计算机,从而实现了鼠标光标移动控制的功能。该设计已在计算机鼠标的应用中全面运行,具有良好的可操作性。另外,基于微机电系统技术的计算机输入设备的研究,接收端数据处理方法的改进设计具有更好的三维使用和扩展空间,可以开发一系列专用虚拟现实设备,具有良好的三维体验。

参 考 文 献

[1]孙在尚,刘凡齐.无线空中鼠标[J].电子测试,2017(19):12-13.

[2]张鹏飞,李亚,蒋亚飞,等.一种可适用于虚拟现实的3D无线鼠标的探讨与设计[J].电子世界,2016(7):148-149.

[3]陶志成,张海.MPU6050和STM32L152的微功耗三维无线鼠标设计[J].单片机与嵌入式系统应用,2015,15(12):1-4.

[4]李佰财,宁伟勋.基于三轴加速计的三维鼠标设计探索[J].计算机光盘软件与应用,2013,16(9):122-123.

[5]周获.基于MEMS技术的无线空中鼠标的研究[D].厦门:华侨大学,2013.

[6]江朝强,石睿,王云飞.基于MEMS指环式低功耗无线三维鼠标的设计[J].自动化与仪表,2013,28(9):12-14.

[7]陈建新,臧晶,杨璐璐.基于MEMS传感器的三维鼠标设计与实现[J].计算机工程,2012,38(24):274-278.

[8]朱文杰.高速数控加工中心虚拟现实教学系统的开发[D].西安:陕西科技大学,2015.

[9]朱晓林,黄敏纯.基于三维鼠标的X3D虚拟场景人机交互技术研究[J].机电技术,2014(6):25-28.

[10]张晓亮,王炳恺.基于移动终端的VR技术在汽车检测与维修专业中的应用[J].时代农机,2018(11):210.

猜你喜欢
虚拟环境
虚拟环境中空间压缩问题的影响与改善
前庭刺激对虚拟环境三维空间定向的影响及与空间能力的相关关系
如何通过虚拟环境有效管理Python第三方库
VR技术如何影响教育行业的发展
虚拟环境下大数据智能并行聚类方法研究
虚拟环境下网络安全实验系统的构建问题探析
医学细胞生物学实验课教学现状与改革策略
论高校思想政治教育网络虚拟环境的特征