空间三维输入装置的系统开发研究
2013-10-28康与云
王 雷,康与云
空间三维输入装置的系统开发研究
*王 雷1,2,3,康与云4
(1.省部共建现代显示技术国家重点实验室(培育基地),安徽,芜湖 241002;2.特种显示技术国家工程实验室,安徽,芜湖 241002;3.安徽工程大学机械与汽车工程学院,安徽,芜湖 241000;4.临沂大学机械工程学院,山东,临沂 276005)
本文提出了一种新型空间三维输入装置,给出了三维输入设备控制系统整体架构,在分析其工作原理的基础上,基于VC++OpenGL技术对实现三维输入设备的软件系统开发,进行三维输入的动态演示。实验结果表明所开发的三维输入装置具有极高的稳定性和模拟效果的真实性,这对于立体显示技术的发展及其在仿真中的应用具有较大的意义。
空间三维输入装置;软件设计;STM32处理器;OpenGL
0 引言
立体显示技术是显示技术发展的一个重要发展方向,随着各种立体显示技术的逐渐成熟,立体显示的方式正日益得到更多人的理解和认同。显示信息的三维化,带来输入设备亦要提供三维数据信息,三维人机交互技术正在创造自己的时代。只能输入二维参数的鼠标作为重要的输入手段,已经难以适应三维显示的需求,因此研究具有三维参数输入的新型输入设备和输入手段成为支撑立体显示技术发展的一个重要部分。所以国内外学者对空间三维输入也展开了研究,文献[1]对三维环境下的不同输入装置进行了对比研究;文献[2]对在虚拟环境下的6自由度的三维输入摇杆装置进行研究;文献[3]对手持式的二维输入和三维输入装置进行了一定深度的研究;彭刚等人[4]对遥操作机器人系统中自由度输入设备的设计进行研究;朱景伟等人[5]介绍了空间三维坐标动态输入装置的测量原理及系统结构图,详细讨论了超声波发射、接收、比较整形电路和单片机接口电路的原理和特点;徐彤等人[6]对用于虚拟现实的直流式六自由度电磁跟踪系统进行了研究和开发;董光波等人[7]在VC++-Vega-Creator一体化建模仿真开发环境中,基于3D 输入设备实现了虚拟场景中三维模型对象和视点的 6自由度精确控制,提供了应用三维输入设备控制虚拟场景的一种方法;文献[8]研究了应用二维鼠标和三维输入设备拾取三维对象模型、移动对象模型和在虚拟场景中漫游的方法,提出了一种用二维鼠标拾取三维模型的方法;赵升等人[9]对基于光电传感器ADNS-2030无线鼠标的设计与实现进行了研究。总的来说,对空间三维输入的研究还不够深入,国外相对起步较早,仍需进一步的研究。基于此,本文研究空间三维参数的输入方式,不仅能够实现平面信息输入,而且能在深度方面输入第三维度的信息,也就是说能够控制鼠标指针不仅能够在上下左右方向移动,而且能够进行前后移动,为计算机能够呈现三维提供技术支撑。
1 三维输入设备原理
本文所设计的三维输入的控制系统整体方案如图1所示。3D_Controller控制板电路主要完成的功能如下:首先采集三路A/D转换电压值V_X、V_Y、V_Z,它们分别代表X、Y、Z三个方向的位移量,这三个模拟量经STM32微控制器进行D/A转换后,结果通过蓝牙或者RS232串口将数据传输到PC机,PC机上的软件采用VC++ OpenGL编写的三维输入演示界面,进行设备相关参数的直接显示。
图1 三维输入设备控制系统整体架构
2 三维输入设备实现装置的设计
2.1 硬件设计
硬件设计包括STM32最小系统晶振电路外接8MHZ、蓝牙数据传输电路、电源电路等,具体的电路图见图2~图4。
图2 晶振电路
图3 系统电源电路
图4 蓝牙模块接口
2.2 软件设计
软件设计主要包括以下两个模块:基于STM32的控制器数据采集及通讯程序设计和基于VC++平台的OpenGL三维图形演示系统程序设计。以上两个程序模块,一个运行于STM32控制器(即底层三维输入硬件设备)上,一个运行于PC机VC++环境下;两者之间的数据传递采用无线蓝牙模块,并加入了一些自定义的通信协议以便保证数据通讯的正确性。
图5 基于STM32的控制器数据采集及通讯程序设计
F.g.5 Data acquisition based on STM32 controller and design of communication procedure
3.2.1 基于STM32的控制器数据采集及通讯程序设计
该模块程序嵌入了COSII实时操作系统以及CGUI图形界面系统,程序主要分成三个任务模块,一个任务模块控制LCD液晶显示操作界面实现人机对话;第二个任务用于四线电阻式触摸屏的触摸输入扫描;第三个任务用于实时监测(每隔50ms)三个坐标轴方向的平移(V_X、V_Y 、V_Z)和旋转(R_X、R_Y)数据采集,并按照既定的通信协议通过无线蓝牙模块传输到PC机,以供程序的三维动态演示。其主要流程如图5所示。
3.2.2 基于VC++平台的OpenGL三维图形演示系统程序设计
三维图形演示系统基于Visual C++平台,采用串行通信控件,完成底层设备的数据接收;采用OpenGL完成上层程序的三维鼠标动态追踪。程序首先初始化OpenGL运行环境,然后通过串口控件实时中断接收底层设备传回来的数据,在界面中实时动态演示三维对象的三维平移、旋转操作。基于VC++平台的OpenGL三维图形演示系统程序设计流程以及上位机演示界面分别如图6和图7所示。在图7中,通过两维摇杆来控制X及Y方向的位移;通过直滑电位器来控制Z方向的位移。在上位机上可实时显示X、Y及Z方向的坐标值。通过手指在触摸屏上任何方向的滑动方可实现三维方向旋转运动,从而实现空间三维的输入。经过多次实验结果表明:本文所开发的空间三维输入系统具有装置简单、运行直观、稳定性强等特点。
图6 基于VC++平台的OpenGL三维图形演示系统程序设计
图7 上位机演示界面及实验
4 结束语
本文首先给出了三维输入设备控制系统整体架构,对实现三维输入功能的硬件电路部分进行了设计,重点研究了基于VC++的OpenGL编程技术对空间三位输入装置的系统开发,进行三维设备相关参数的直接和动态显示,以验证三维输入的效果。实验结果表明本文所开发的三维输入装置具有极高的稳定性和模拟效果的真实性,这对于立体显示技术的发展及其在仿真中的应用具有较大的意义。
[1] Dang N T, Tavanti M, Rankin I, et al. A comparison of different input devices for a 3D environment [J]. International Journal of Industrial Ergonomics, 2009, 39(3):554-563.
[2] Bowman D A, North C, Chen J, et al. Information-rich virtual environments: theory, tools and research agenda [C]. Proceedings of the ACM Symposium on Virtual Reality Software and Technology, 2003:81-90.
[3] Baumgartner S, Ebert A, Deller M, et al. Dimensional congruence for interactive visual data mining and knowledge discovery [C]. Proceedings of Eurographics Symposium on Visualization, 2007: 99-106.
[4] 彭刚,黄心汉, 熊春山,等.遥操作机器人系统中六自由度输入设备的设计[J].电子技术应用,2000(10):11-14.
[5] 朱景伟,樊印海.间三维坐标动态输入装置的研究[J].仪器仪表学报,2001,22(4):404-405.
[6] 徐彤,王涌天,阎达远.用于虚拟现实的六自由度电磁跟踪系统[J].北京理工大学学报,2000(1):544-549.
[7] 董光波,张锡恩,徐亚卿,等.基于三维输入设备的虚拟场景控制方法[J].计算机工程,2004,30(9):189-191.
[8] 马立元,杨孝平.一种虚拟场景控制方法的研究与实现[J].计算机应用研究,2004(6):237-239.
[9] 赵升,陈庆来,解瑞杰.基于光电传感器ADNS-2030无线鼠标的设计与实现[J].国外电子测量技术,2006, 25(9):59-62.
RESEARCH ON SYSTEM DEVELOPMENT OF INPUT EQUIPMENT FOR 3D SPACE
*WANG Lei1,2,3, KANG Yu-yun4
(1. Province of State Key Laboratory for Modern Display Technology Construction (Cultivation Base), Wuhu, Anhui 241002, China;2. State Engineering Laboratory of Special Display Technology, Wuhu, Anhui 241002, China;3. School of Mechanical and Automotive Engineering, Anhui Polytechnic University, Wuhu, Anhui 241000, China;4. College of mechanical engineering, Linyi University, Linyi, Shandong 276005 , China)
A new input device for three-dimensional space is proposed and the overall architecture of the control system of three-dimensional input device is given. On the basis of analyzing its working principle, the software system of three-dimensional graphics presentation system is developed based on VC++ and OpenGL to demonstrate the dynamic effect of the three-dimensional input. The experimental results show that our 3D input device has higher stability and truth of simulation result and it has greater significance for the three-dimensional display technology and its application in simulation.
3D space input equipment; software design; STM32 processor; OpenGL
TP39
A
10.3969/j.issn.1674-8085.2013.04.015
1674-8085(2013)04-0070-04
2012-05-27;
2012-12-18
*王 雷(1982-),男,安徽亳州人,讲师,博士,主要从事先进制造系统研究(E-mail:wangdalei2000@126.com);
康与云(1978-),男,山东莱芜人,讲师,博士,主要从事数字化设计与制造技术研究(E-mail:kyygood@163.com).