针对当前流量计教学中存在的理论讲解过于抽象化、视频展示过于简洁,缺少互动环节,而实物演示教学设 备成本太高的问题,设计了流量计三维教学仿真系统。在此系统设计中,以n型管段式超声波流量计为研究对象,首 先是利用3DMAX建模工具对其进行三维建模,再将经过渲染处理后的模型导入上位机软件Unity3D中,然后制作能 够控制教学展示的下位机系统,最后让下位机系统与上位机系统进行通信,从而实现了超声波流量计的三维动态展示 和交互式教学仿真的功能。该系统充分利用虚拟现实技术中的三维建模技术和三维交互技术的优势,给教学带入了 真实感,增强了学员学习的积极性,提升了学习效率,缩短了学习周期,降低了教学成本。
1.引 言
随着现代工业的发展,流量的测量在各种工业过程中 占据了不可取代的地位,通过流量计将所检测的各种信号 转化为电信号,然后将生成的电信号上传给上位机,通过上 位机来实现信号的处理以及控制命令的下达,这已成为现 代工控的主流方式。
现今流量计的教学主要采取理论讲解与实物展示相结 合的方式。理论讲解以灌溉式为主,老师是知识的主要载 体,学员被动的接受,在这种情况下,课堂教学耗时较长,学 习的效率低,枯燥的知识会让学员产生厌烦心理;而实物展示成本高,缺少课堂互动环节,效果有限。
在超声波流量计的研究中,王雪峰等人通过对超声 波气体流量计的管道模型仿真和误差分析,验证了气体超 声波流量计流场误差产生的原因、范围;阮芬等人通过对 超声波流量计反射声道对比仿真研究,为超声波流量计优 化测量提供方法;邓凯通过对超声波流量计的设计与研 究,提出超声波流量计整体设计方案。上述学者用各自的 方式实现了超声波流量计的仿真与研究,效果各有不同,但 均未涉及对超声波流量计的三维教学仿真,缺乏真实的可 视化显示及交互功能。
针对以上情况,笔者设计了基于Unity3D的超声波流量计仿真教学系统,在该系统中引入三维建模技术、三维显 示技术以及三维交互技术,先对n型管段式超声波流量计 的热量表、连接电缆、压电元件、接受换能器、发射换能器等 元器件进行三维建模,然后将处理好的模型导入Umty3D 中,在Umty3D中编写与单片机数据传输的通信程序,并设 计下位机硬件电路,通过按键控制超声波流量计的三维展 示,成功地实现了交互式的超声波流量计仿真的三维教学 展示,激发了学员的学习热情,提升了学习效率,降低了教 学成本,有利于推广使用。
2.系统设计总体结构
超声波流量计仿真教学系统结构框图如图1所示。
由图1可知,超声波流量计仿真教学系统的设计主要 由两部分组成:上位机模块和下位机模块。在上位机模块 中,主要包括计算机、超声波流量计三维仿真软件和显示终 端。在上位机的工作过程中,首先是通过计算机上的三维 建模软件对超声波流量计进行三维建模,然后将所建立的 三维模型导入交互软件Urnty3D中,计算机接收下位机所 传来的控制信号,在Unity3D中实现实时动态交互和显示。
下位机模块是以单片机STC89C52为主控制器所构成 的控制模块,主要包括控制量输入模块、电源模块、主控单 元和通信模块。在下位机中,控制按键输入的键值传送至 单片机的主控单元(MCU),控制信号经MCU处理后,通 过单片机的通信模块上传给上位机。在整个系统设计过程 中,下位机模块主要起控制信号处理与传输的作用。下位 机模块与上位机模块间的通信主要由串口通信协议 (RS232协议)实现,在通信过程中,单片机编程实现键值数 据的上传,计算机通过Unity3D接收COM3C计算机的通信 端口)口的数据,并在Unity3D中实现交互仿真。
3.系统的实现
在基于Unity3D的超声波流量计仿真教学系统中,为 实现系统的交互式控制和流量计模型的多功能展示,整个 系统设计分为4个部分:上位机三维建模、上位机三维交互 编程开发、下位机硬件电路设计和下位机软件编程的实现。
3.1上位机三维建模
3. 1. 1超声波流量计建模条件
在超声波流量计三维教学仿真系统开发过程中,以n 型管段式超声波流量计为研究对象。n型管段式超声波流 量计是一种非接触式仪表,既可以测量大管径的介质流量 也可以用于不易接触和观察的介质的测量,测量准确度高, 几乎不受被测介质的各种参数的干扰。
n型管段式超声波流量相比于其他超声波流量计来 说,具有灵活多变的全中文显示主机(壁挂标准型、壁挂防 爆型、盘装型、壁挂网络型)满足各种不同的工业现场;管段 式传感器解决了外夹式传感器和插入式传感器安装过程 中,由于管道不标准人为安装误差而造成的测量精度下降 的问题,在工控测量过程中运用的越来越广泛。
3.1.2建模关键技术
超声波流量计三维模型建立的流程如图2所示.
三维模型的建立是整个仿真教学系统的基础,所以高 效的建模对后续交互、下位机控制和展示致关重要。在三 维建模前,应多收集流量计的照片素材,其中包括超声波流 量计的热量表、连接电缆、压电元件、接受换能器、发射换能 器等元器的照片,模型的建立不能凭空捏造,模型的尺寸要 根据流量计的技术资料来获得,在建模过程中要让模型成 为实物的一种映射,通过观察模型能真实地再现实物。在 建模过程中主要采用多边形建模法,通过将基本几何体转 化为可编辑多变形来构建各种三维图形,再通过旋转、平 移、对齐、缩放、镜像等命令来实现模型部件的正确摆放,进 而将局部模型组装成一个整体。
在建模过程中,还要注意对模型进行优化。优化模型 可以节约计算机资源,提高建模效率,也降低了三维交互编 程时出错的可能性。在3DMAX建模过程中,模型优化的 主要方式有删除看不见的和不必要的面;尽量使模型上的 每条线都构成一条闭合的回路;模型中线与线相交图形为 四边形,不能出现除四边形和三角形以外的其他图形;尽量 不要使用布尔命令。
在模型整体构造建立完成后,为使模型逼近实物,达到 以假乱真的效果,要为模型赋予材质和贴图,模型的材质要 根据实物的材料来调节,通过对Vray材质的反射、满反射、 折射、高光、模糊度、各项极性等参数的调节来使模型接近 实物,贴图的选取要注意贴图的大小必须是2的幂次,具体 情况应根据实物在场景中大小来选择。在材质、贴图达到 满意效果后,是对模型的渲染及输出,通过模型的渲染让最 后输出模型的色泽、凹凸感、阴影等效果更贴近实际情况。
3.2上位机三维交互编程开发
在上位机交互软件Uriy3D中,编程开发主要是:数据 通信编程和三维交互控制编程。
上位机数据通信编程是针对上位机和下位机间数据传 输进行的程序开发。上位机中Unity3D软件为接收下位机 上传的数据,在程序中首先应对接收数据端口进行相应的 设置。在此次设计中通信端口为COM3 口,通过new SerialPortO命令来进行COM3 口的初始化,在串口初始化 完成后,要通过sp. Opem()打开串口,并通过new Thread (ReceiveData)和 new Thread ( DealData)命令打开数据接 收和数据处理两个线程,再等待接收缓存区接收数据,然后 通过sp. Read()命令读取buf[i]中的数据,并在其他脚本中 调用buf[i]中的数据,为三维交互编程提供条件判断量,最 后清空buf[i]中数据,等待下一次数据接收[1。一11]。上位机 数据通信流程如图3所示。
三维交互控制编程是对导入的三维模型进行功能实现 的编程方式。由3DMAX所建立的三维模型导入到 Umity3D中后,由Umity3D软件所认同的编程语言进行功 能开发。在本次设计中采用C#编程语言,来实现超声波 流量计的全面展示、模型的旋转展示、展示过程中镜头的拉 伸、部件的分块展示以及流量计视频的调用,由此让学员全 方位的认知超声波流量计的总体结构、工作原理以及使用 过程中的注意事项。
在Untiy3D交互软件中编写流量计功能展示程序的过 程中,最主要是获取模型物体的控制权(GameObject),一 般通过GameObject. Find()函数实现,也可以直接将脚本 赋予模型对象,通过调用gameObject类型直接对模型进行 功能编程。在获取下位机上传的数据后,对不同的数据赋 予不同的展示功能,并通过if()条件判断语句来编写不同 功能实现的程序[12—13]。例如,可以通过调用gameObject transform. Rotate (0,15 * Time. deltaTime,0,Space. Self) 来实现模型绕Y轴正方向每秒旋转15°,在此函数语句加 上if(buf[1] == 0x11){}的条件判断语句,就可通过下位 机来控制三维场景中模型的旋转展示。
3.3下位机硬件电路设计
下位机主要是为了让学员在学习过程中,能实时地与 三维模型进行交互而设计的。本次设计过程中,下位机的 控制器采用单片机STC89C52,通过该单片机系统上的矩 阵键盘产生输入控制信号,并将此信号上传给上位机,控制 三维模型的功能展示。下位机的硬件结构如图4所示。
按键控制电路
图4下位机硬件结构
由图4可知,下位机硬件电路主要由单片机 STC89C52、电源电路、复位电路、时钟电路、报警电路和串 口通信电路组成。在上述硬件构造中,单片机STC89C52 为系统的主控单元,并结合其他硬件电路单元,共同构成了 单片机的最小控制系统。按键控制电路采用矩阵键盘的方 式进行控制量的输入,通过对键盘的循环扫描,只需分时复 用I/O 口即可将不同的键值输送到单片机STC89C52中, 有效地减少了单片机I/O 口的使用个数,节约系统资源。 键值信号到达单片机后,通过单片机对数据信号进行处理, 然后将处理后的信号通过串口通信电路上传给上位机进行 三维交互式控制。
下位机的数据通过串口发送给上位机的过程中,采用 RS232的串口通信协议。单片机丁丁L电路输出电平一般 为一5〜+ 5 V,一般的PC接口的兼容电平为一15〜 + 15 V,故而在上位机和下位机进行数据传输过程中要进 行电平的转化。在本次设计过程中采用USB转串口芯片 CH340T来实现上位机和下位机间的数据传输。CH340丁 芯片中集成了供电、下载、串口通信功能,在CH340丁芯片 中实现串口通信,主要用到了 UD+、UD—、丁XD、RXD端 口,单片机的数据通过RXD进入SBUF存储区,再通过UD+、UD —发送给PC机;PC机的数据通过USB线发送 到UD+、UD—,再通过芯片丁XD端口发送至单片机的 M CU,这样整个流程下来就可以实现上位机和下位机以串 口通信的方式进行数据传输。
3.4下位机软件编程的实现
下位机主要是为上位机传递控制信号,通过不同的控 制信号来完成系统不同功能的展示。控制信号由4X4的 矩阵键盘产生,在编程过程中通过对不同按键赋予不同的 键值,就可以在上位机中区分各个按键所展示的功能。除 了对矩阵键盘扫描程序的编写外,还需编写串口通信程序, 下位机软件编程流程如图5所示。
由图5可知,在程序开始执行时,首先应对系统进行初 始化,对系统初始化主要包括定时器1的初始化、串口初始 化。为实现数据以一定的时间间隔不断地向缓冲区发送, 设定定时器1为定时模式,工作方式为2,定时器初值由系 统时钟电路晶振大小决定,并以此产生串口通信所需波特 率;串口初始化主要是设定串口工作模式为1。在系统初 始化完成后,要实时地检测是否有按键按下,将矩阵键盘循 环扫描的键值通过P0〜P3 口输送到单片机进行处理,然 后将处理后的数据通过串口上传给上位机,在上传数据过 程中如果检测到数据传输没有完成,则等待数据传输完成, 防止数据覆盖造成数据丢失。
4.系统调试
在系统上位机、下位机、通信模块设计完成后,通过 Unity3D软件对三维模型进行交互编程,并将编程调试的 结果通过Build&Run发布成“ exe”文件,在系统调试过程 中,点击发布的“ e xe ”文件就可以进行流量计的仿真教学 展示。如图超声波流量计仿真教学系统如图6所示。
在该界面中可以根据教学仿真的需要选择超声波流量 计展示的方式,点击进入整体结构展示、部件细节展示、视 频展示、工作原理展示界面后,可通过下位机硬件仿真平 台,对上位机展示界面进行控制,按下单片机键盘上的不同按键可选择不同的交互功能,进而实现超声波流量计的三 维互动仿真功能。
5.结 论
在Untiy3D的平台上编译出了超声波流量计仿真教学 系统,该系统成功的实现了超声波流量计仿真教学的功能, 既解决了传统教学过程中,学员与知识缺少互动、积极性不 够的问题,又通过虚拟展示的方式解决了购买昂贵器材的 难题。通过仿真教学,学员能够更有效的掌握流量计的整 体结构、各个部件结构、工作原理、使用方式等,激发了学员 学习积极性,使现场培训的时间明显缩短,减少了教学培训 成本.