基于Proteus和Unity3D的激光雕刻机联合仿真

2022-03-15 09:45吴世林
计算机仿真 2022年2期
关键词:元件激光模块

郑 阵,吴世林

(武汉纺织大学,湖北 武汉 430200)

1 引言

随着计算机软件技术的发展,能够帮助人们验证设计的仿真软件应运而生,改进仿真软件、提高仿真质量、追求仿真效果已成为目前研究热点。目前许多学者采用Proteus软件仿真电路,如文献[1]中使用Proteus软件仿真音频电路,来辅助音乐点阵频谱设计;对于三维机械仿真系统,部分学者采用Unity3D引擎开发,如文献[2]中作者利用Unity3D软件设计数控车床切削过程动态仿真系统,以虚拟仿真的方式模拟了数控机床实际运行效果。

传统仿真技术常常基于单个软件独立运行,该方式只针对设备单一方面进行仿真,具有单一实时仿真、实用性强以及操作简便等特点。但其缺陷在于单一的仿真无法模拟设备整体运行效果,缺乏全面性以及完整性,无法达到人们获取设备全局仿真数据的要求。

针对这一现状,本文以非金属激光雕刻机,即一种小型的二氧化碳激光雕刻机为例,提出数字联合仿真的研究思路,将Proteus和Unity3D引擎优势互补,实现电路、机械的联合仿真。之所以选择该种激光雕刻机为例,是因为其具有操作便捷、成本低、可塑性强等优势。实验结果表明,该联合仿真系统可以较快的验证电路设计、程序设计及机械设计的可行性,大大的缩短了项目开发周期,为解决机电一体化设备生产设计时的技术难点提供支撑平台。

2 基于Proteus和Unity3D的联合仿真总体架构

2.1 方法介绍

文中的联合仿真是一种新型的仿真方式,针对于机电一体化设备,主要利用Proteus电路仿真软件和Unity3D软件。Proteus是一种专门仿真电路的仿真软件,可用于处理器和外围电路的仿真,也可以根据需要设计出特定的仿真元件。Unity3D是一款三维可视化开发3D应用工具,采用C#编程,可用于设计三维机械仿真系统。如图1所示,文中实现联合仿真的步骤为:

图1 联合仿真方法图

第一步:在Proteus软件中设计出激光雕刻机元件,然后在Visual Studio中使用C++语言编写元件模型代码,生成元件模型文件。

第二步:在Proteus设计出激光雕刻机元件的外围控制电路,再结合激光雕刻机元件,完成设备的电路原理仿真。

第三步:在SolidWorks中设计激光雕刻机三维模型,将设计好的模型在3DMax中进行贴图后倒入到Unity3D软件中,使用C#语言给模型编写控制脚本和通讯脚本等,在 Unity3D软件中完成机械仿真。

第四步:Proteus软件中的电路仿真系统和Unity3D软件中的三维机械仿真系统是通过本地网络通讯实现数据交互,实现两者内部模块数据统一,完成联合仿真。

2.2 激光雕刻机结构

文中所研究的实例是二氧化碳激光雕刻机,一种小型的非金属激光雕刻机,可在木板、皮革、塑料等非金属材料上进行雕刻。如图2,二氧化碳激光雕刻机主要由控制柜、激光器电源、二氧化碳激光管、水箱、反光镜、X轴电机、Y轴电机、激光头等组成。当雕刻机工作时,激光器电源通过给二氧化碳激光管的放电管供电,使激光管产生激光,激光经过反射镜反射到激光头,再经过激光头中凸透镜聚焦后射至被雕刻物上,在物体表面留下碳化黑印;激光雕刻机中的控制器根据加工图案的数据控制XY两个方向的步进电机,步进电机的运动驱动激光头,从而雕刻出图案。

图2 激光雕刻机结构图

2.3 系统整体设计

本文所设计的联合仿真系统主要由两部分组成,一部分是在Proteus中设计的激光雕刻机电路仿真,另一部分是在Unity3D中设计的激光雕刻机三维机械仿真。

如图3所示,在Proteus软件中设计的激光雕刻机元件由虚拟激光模块、虚拟步进电机驱动器模块、虚拟步进电机模块、通讯模块等组成。在仿真过程中,单片机给激光雕刻机元件的虚拟步进电机驱动器模块发送脉冲信号、方向信号,信号经过接口逻辑处理后到达虚拟的步进电机驱动模块、虚拟步进电机模块,步进电机的位置转换成激光头在绘图面板中的位置,激光模块再根据激光控制接口电平的高低,判断是否在绘图面板上留下碳化黑印。通讯模块则是将接口信号转换成电机和激光的控制信息,并将该控制信息发送给Unity3D中的激光雕刻机仿真系统。

图3 系统整体结构图

在Unity3D中设计的激光雕刻机三维机械仿真系统由通讯模块、激光控制模块、碰撞限位检测模块等组成。在联合仿真时,该仿真系统的控制信息都来源于第一部分Proteus 中的激光雕刻机元件,二者之间通过Socket TCP传输控制信息,传输的控制信息的数据经过信号解析,直接控制激光头运动,当激光打开时,会在激光头运动的路径上留下烧制的印记。该系统中还设置有碰撞检测单元,用来监测激光头是否运动到限位位置,用来模拟现实中激光雕刻机的限位开关。

2.4 Proteus和Unity3D数据交互

Proteus软件和Unity3D软件作为两款不同的软件,软件本身不提供数据交互接口,若想实现两者之间的通讯,必须在两个软件中设计数据交互接口。

本文使用的通讯方式是本地网络通讯,Proteus软件中的雕刻机元件为客户端,Unity3D中的激光雕刻机系统为服务端。Proteus中的数据接口是在雕刻机的元件模型中实现的,在设计雕刻机元件模型时,使用C++语言编程元件模型代码并调用winsock相关函数,即可完成客户端的通讯接口,作为服务端的Unity3D软件是通过使用C#语言调用winsock相关函数编写脚本实现通讯接口。客户端与服务端之间通过Socket TCP进行数据交互,实现联合仿真。

3 Proteus 中激光雕刻机电路仿真设计

3.1 激光雕刻机元件设计

Proteus作为一种能够仿真电路的软件,其内部提供许多常用的元件库供电路仿真使用,也可以自己设计元件进行电路仿真。对于本文涉及到的激光雕刻机的仿真,较难找到合适元件。本文采取自主设计元件的方法,在Proteus中设计元件的接口、界面等,再使用C++语言编写元件模型代码,生成元件模型文件进行仿真。

如图4所示是在Proteus中设计的雕刻机元件,该元件的左上侧是激光雕刻机的接口,中间部分为画布,用来模拟激光在被雕刻物上烧制的碳化黑印,下侧用来显示虚拟激光模块的激光头在画布中的实时位置。

图4 激光雕刻机元件图

3.2 元件属性及接口定义

图5为元件的属性编辑框,在属性编辑框中可以设置内嵌在元件中的虚拟步进电机驱动器模块、虚拟激光模块、通讯模块等模块的参数。

图5 元件属性图

图6为激光雕刻机元件的接口定义部分,XPUL、XDIR、YPUL、YDIR为两个虚拟步进电机模块的控制接口;LASER为虚拟激光模块的控制接口;XZero+、XZero-、XZero+、XZero-为激光雕刻机的限位信号接口;NetState为激光雕刻机元件通讯模块的网络状况显示接口;Reset为激光雕刻机复位接口。

图6 元件接口图

3.3 VC++设计元件模型

在Proteus中设计好元件后不能直接使用,需要使用C++编写元件模型代码,生成模型文件后才能在Proteus中进行仿真。本文使用VC++调用Proteus VSM SDK 编写元件模型程序,Proteus VSM SDK提供电气模型抽象类和绘图模型抽象类等许多抽象类,电气模型抽象类实现元件接口信号处理,绘图模型抽象类实现元件模型绘制。将模型程序编译成动态链接库,放在Proteus工程目录下,在仿真该工程时,Proteus软件会加载动态链接库中的函数,实现程序中编写的功能。

3.4 Proteus中构建电路仿真系统

图6为测试激光雕刻机元件的仿真电路图,控制器采用STC89C52单片机,单片机的所有控制信号都使用了光耦进行隔离,从光耦输出的信号线直接连接到雕刻机元件接口,构成雕刻机外围控制电路。

电路设计完成后需要编写单片机程序,在Keil软件中使用C语言编写单片机程序并生成.hex执行文件。Proteus软件中装载此执行文件,可以观察到程序运行效果。

单片机程序中包含有直线插补功能和圆弧插补功能,调用相关功能函数可以控制激光头做直线运动或圆弧运动,将雕刻的图案数据在程序中以数组的方式存储,逐一获取数据并调用插补函数可以完成整个图案的雕刻。例如,将“仿真”字样转换成图案数据,并写入到单片机程序中,运行程序,程序运行的效果如图7所示。

图7 Proteus仿真电路图

4 Unity3D激光雕刻机三维仿真系统设计

4.1 激光雕刻机三维模型设计流程

本系统三维机械仿真部分在Unity3D环境下开发,建模软件为SolidWorks,渲染优化软件为3DMax。如图8所示,三维机械模型使用SolidWorks软件设计,将设计好了的三维模型导入到3DMax软件中进行模型渲染和贴图处理,再将渲染了的模型转换成fbx格式文件导入Unity3D中,通过C#语言编写相关控制脚本,实现激光雕刻机运行的动作。

图8 雕刻机三维模型设计流程图

4.2 激光效果实现

为了使仿真能够更加逼真的还原现实中激光雕刻机的实际运行状况,需要在Unity3D中给雕刻机添加激光效果,激光效果分为激光束效果、激光火花效果、碳化黑印效果。当激光打开时,激光器会发出激光束,在Unity3D中使用类似激光的图片对激光束模型进行贴图处理后,可产生逼真的激光束效果;当激光束接触到被雕刻物时,会产生激光花火,在Unity3D中的使用粒子系统制作可以制作激光火花效果;当激光束接触被雕刻物后,会产生碳化黑印,在Unity3D中使用Trail Renderer组件实现碳化黑印效果,该组件是一种用于制作运动物体拖尾的组件,激光的强度可以通过设置拖尾的宽度来模拟。从图9可以看出,当激光雕刻机工作时,激光效果真实。

图9 激光效果图

4.3 Unity 3D三维机械仿真系统功能

图10为三维激光雕刻机系统功能图,系统分为手动模式和自动模式。手动模式不与Proteus中的激光雕刻机元件通讯,该模式下可以通过界面按钮调节激光强度,控制激光头运动、激光打开关闭;当系统在自动模式下运行时,三维机械仿真系统与Proteus元件进行通讯,Proteus元件中的通讯模块的会将雕刻机接口电平的实时状态以数据帧的形式发送到三维机械仿真系统的通讯模块中,三维机械仿真模型系统解析该数据帧后,将数据同步到内部的虚拟步进电机模块、虚拟激光模块等,C#脚本再根据模块中的数据控制激光雕刻机进行雕刻。

图10 系统功能图

5 系统联合仿真及实验

当两个系统进行联合仿真时,Proteus软件中的激光雕刻机元件会在仿真开始时连接到Unity3D三维机械仿真系统,在仿真过程中,两系统通过通讯模块进行数据交互,使两系统的内部虚拟模块数据保持一致。

对联合仿真系统进行实验,将“laser”单词转换成图案数据,写入单片机程序,开始仿真,如图11和图12所示,分别是Proteus电路仿真系统和Unity3D软件中的三维机械仿真系统仿真结束的效果图,两图结果表示,在对两系统进行联合仿真时,两系统可以通过通讯模块进行数据交互,达到雕刻轨迹完全一致的效果,说明联合仿真系统的数据接口稳定性高、无数据丢失现象,因此这种电路仿真联合机械仿真的方式可以做到全面仿真机电一体化设备,为设备设计提供依据。

图11 Proteus仿真效果图

图12 三维机械仿真效果图

6 结语

本文设计了基于Proteus和Unity3D的激光雕刻机联合仿真系统,前者主要实现电路仿真,后者则实现机械三维仿真,二者通过实时数据交互达到状态统一的效果。该设计将单片机、电路仿真、三维模型设计、计算机软件设计、三维机械仿真结合在一起,打破了传统电路仿真或机械仿真的局限性,该系统在完全脱离实物的情况下就验证电路、程序、机械设计的可行性,开创了一种新型仿真模式。

猜你喜欢
元件激光模块
准分子激光治疗仪联合CO2点阵激光治疗仪对白癜风治疗效果及不良反应
Module 2 Highlights of My Senior Year
Module 4 Music Born in America
如何读懂色环电阻
非线性元件的处理
激光3D长绳
必修模块相关知识过关训练
神奇的激光
上海风云“东邪”谁属
Protel 99se网络表装载中纠错探索