APP下载

基于Open Inventor的座椅压力图形化显示

2018-02-25周浩杰高峰石金继

电子技术与软件工程 2018年11期
关键词:机软件图形化视图

周浩杰 高峰 石金继

摘要 通过压力传感器获取座椅上的压力值分布数据,基于vc++与Open Inventor编写上位机软件,将压力分布数据通过串口通信方式实时上传到上位机,将获得的数据实时显示在上位机上,并将数据绘制成三维图像,使设计人员不必面对一系列复杂、抽象、杂乱的数据,便于分析座椅压力分布是否合理,减少设计人员设计座椅的难度。

[关键词]座椅 Open Inventor图形化显示vc++

1 引言

座椅在人们的生活中十分普遍,办公室工作的人大部分工作时间是在座椅上度过的。长时间的坐姿容易使人产生疲劳。大量研究表明,一个设计良好的座椅,可以有效地缓解长时间工作带来的疲劳。以往在设计座椅的时候,设计师们往往采用传统的人机工程学理论和方法来评价座椅是否舒适,这种评价方式的客观性很容易受到测试者自身的影响,很少考虑到座椅和人体之间的压力分布情况。通过压力传感器获得人体与座椅之间的压力分布数据,并通过上位机直观的展现出来,设计人员就能够了解人体各部位所承受的压力,进而改善座椅的结构。如何有效地表达和显示人体对座椅压力的分布情况将是设计人员面临的一大问题。因此,对于基于Open Inventor的座椅压力图形化显示上位机软件的研究就很有必要了。通过该上位机软件设计人员可以直观地观察人体和座椅接触面之间的压力分布情况,从而设计出更加人性化、更加舒适的座椅,减轻座椅给人体带来的不舒适感。

2 0pen Inventor简介

Open Inventor是一个面向对象的、广泛应用于三维场景的图形软件开发包。它作为一组组件库,能够以最少的代码编写出强大的图形硬件功能的程序。Open Inventor构建复杂三维場景一般比OpenGL方便得多。这是因为Open Inventor构建三维场景的方式完全不同于OpenGL,这种构建方式类似于“搭积木”的方式。通过对象与对象之间的直接拼接、组合来构造复杂、优美的三维场景是十分方便、快捷、直观的。

3 软件的功能分析及流程设计

3.1 软件功能分析

上位机软件的主要任务是将一系列抽象而杂乱的数据通过一定的处理转化为可视的、直观的三维图像,从而实现对座椅压力分布情况的监测,通过对座椅压力分布情况的进一步分析,从而能够了解座椅的舒适性。因此,上位机软件需具备以下几项主要功能:

(1)样本数据的显示。设计人员可以清楚的观察到人体和座椅之间指定位置处的压力数据。

(2)实时数据三维图形化显示。设计人员可以实时且直观地观察人体与座椅之间的压力分布情况。

3.2 软件开发流程

根据实际功能的需要,对座椅压力图形化显示上位机软件的开发流程进行设计,从而实现采集数据在下位机与上位机之间的数据传输与处理。接收到的数据显示方式有两种:一种是样本数据在ListCtrl控件上直接显示,另一种是先在样本数据的基础上利用MATLAB三次贝塞尔插值函数获得新数据,再将这些新数据经过Open Inventor的处理,从而实现数据图形化显示。

开发流程如图1所示。

该流程分为三个步骤。第一步,STM32通过压力传感器获取人体对座椅的压力数据并传入到串口内存中。第二步,通过通信协议将上位机和下位机连接在一起,并将测得的数据实时地传送给上位机软件。第三步,上位机软件完成数据的接收、数据的显示和数据三维图形的绘制。

4 上位机程序设计

4.1 窗口视图静态分割程序设计

在MFC的SDI视图中,默认情况下一个文档只能对应于一个视图,这样不能很好的完成数据的显示功能。为了更好的显示样本数据和座椅压力图形化的分布视图,这就需要有两个视图类,可以利用CSplitterWnd::CreateStatic对视图进行静态分割,同时使用CreateView函数添加新视图。将原始视图分割为两个视图,CFormView视图类用来显示样本数据,CView视图类用来绘制数据压力分布的三维图形。

4.2 MATLAB插值程序设计

基于样本数据不足以绘制出平滑、精致的三维曲面,因此,需要利用某种插值函数对样本数据进行处理。Visual C++ 2008本身并没有直接用来进行插值的函数,而MATLAB是一个强大的数学和图像处理工具。为了使Visual C++ 2008能使用MATLAB中的功能函数,需要对其进行一定的处理。它的基本思想是:把MATLAB中的功能模块作为一个函数,再通过MATLAB的某些指令,将函数转化成动态链接库(dll)文件,Visual C++2008便可直接调用特定的接口函数,从而实现调用MATLAB中的功能函数的目的。

4.3 样本数据显示程序设计

在类向导中添加CSplitterWndView类,基类选择为CFormView,该视图显示样本数据。为了更直观、条理的显示样本数据,这里使用ListCtrl控件。

4.4 座椅图形化显示程序设计

在类向导中添加CPaintOIV类,基类选择为CView,该视图显示样本数据。文档视图框架将数据处理和视图显示联系在一起,当文档数据改变时,在视图类中调用文档UpdataAllViews成员函数即可以更新视图。

5 运行效果

上位机软件运行界面如图2所示。

该上位机软件可以实现如下功能:

(1)通信端口可选:可以从COM1、COM2. COM3. COM4. COM5、COM6.COM7中选择合适的通信端口。默认端口为COMl;

(2)实时、准确地将下位机上传的数据显示出来;

(3)将接收到的实时数据进行三维图形绘制,显示数据的大小和分布。

6 结论

通过获取人体对座椅的压力数据,并以直观的三维图像显示,座椅设计人员可以很好地了解座椅设计的是否合理,从而对座椅进一步改良,设计出更加舒适的座椅。本文对座椅压力分布的图形化显示展开了研究,取得如下成果:

(1)使用C++语言和Visual C++ 2008开发平台开发软件,并进一步完成和OpenInventor的混合编程。

(2)使用Visual C++ 2008的可视化界面,根据功能需求设计出座椅压力图形化显示上位机软件,实现了对座椅压力数据的直观、形象的三维图形实时显示等功能。

(3)对上位机软件进行实时测试,运行状态良好。

参考文献

[1]叶佳桐,谭研.汽车驾驶员座椅舒适性仿真方法…,中国农业大学学报,2016,8 (04):35-37.

[2]王琨,基于CAN总线老人服务机器人通信方法的实现[J].现在制造工程,2016,23 (02): 45-48.

[3]蔡磊,基于Open Inventor产品三维可视化系统研究[D].重庆:重庆大学,2012.

[4]张立科.Window API函数参考手册[M],北京:人民邮电出版社,2002.

猜你喜欢

机软件图形化视图
LKJ自动化测试系统图形化技术研究
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
道岔监测系统上位机软件设计
基于正交试验法的北斗用户机软件测试用例设计
运用图形化听写式复习,构建高效地理课堂
PCI-e高速数据采集卡的驱动与上位机软件设计
图形化地区电网无功优化软件开发与应用
图形化仪表控制系统上位机软件的设计与开发