基于Unity 3D的手势感应自动开关门衣柜设计及功能模拟
2020-09-29唐梦菲陈瑶高建民
唐梦菲,陈瑶,高建民
(北京林业大学材料科学与技术学院,北京 100083)
人们生活水平的提高与现代科技的发展对家具产品提出了更高的要求,传统的家具难以满足当下年轻人追求个性及更加有趣的生活方式的需求,现代化、自动化的智能家具是未来发展的趋势。智能家具的设计常采用类比推理法,即将其他领域的一些原理和方法应用到智能家具中,如蓝牙、WiFi是手机的常见功能,将这些功能安装到家具身上可以赋予家具新的功能[1]。衣柜的基本属性是存储衣物,而借助嵌入式系统、各种传感器、机械装置、摄像头可以实现衣物杀菌、消毒、识别等[2-3],为衣柜附加额外功能,让衣柜智能起来,为人们提供更便捷的生活。智能家具在设计方法上大多数为理论系统设计,少部分为关键部件实物验证,极少数为整体生产。实物生产的优点是可以使人直观地体验智能家具的效果,但缺点是由于家具本身体积较为庞大,整体实物生产对空间、时间、成本都有一定要求且出现错误修改不方便。而通过Unity 3D对家具功能进行效果模拟,设计人员可以暂不生产家具主体,通过模型绘制在软件的模拟环境中对家具的效果、功能进行分析,从而减少费用并节约时间。本研究利用单片机、传感器、CAD和3d Max软件,结合蒙德里安的代表作《红黄蓝的构成》设计一款符合年轻消费者需求的手势感应自动开关门衣柜,并基于Unity 3D平台将开关门效果进行模拟。
1 Unity 3D的应用
Unity 3D产品最初于2005年发布,当时为一款面向OS X的游戏引擎,目前是一个可轻松创建交互式内容、跨平台的专业引擎平台[4]。开发者可以使用Unity 3D创建产品或从外部导入产品,配置物理性能并进行虚拟产品测试。
目前Unity 3D在VR场景漫游方面应用较多。如熊巍等[5]利用Unity 3D作为开发环境,模拟化学实验的操作流程,达到辅助教学的目的。霍爱清等[6]通过3d Max建模,Unity 3D模拟钻井工程的八大作业系统,为后期培训教学带来了便利。
在家具方面主要用于家具系统的开发。比如室内VR仿真[7]、家装漫游系统的开发[8]、虚拟家装设计等[9]。马利波[10]利用Unity 3D模拟明式家具的结构和制作工艺,让家具展示拥有了交互性、动态性;张飞[11]利用Unity 3D制作了一个具有交互功能的新中式家具选择场景,让消费者更直观地了解家具在室内的状态。
2 Unity 3D用于智能家具设计的原理
Unity 3D作为一个游戏引擎能够应用于智能家具的设计主要基于以下几点:
1)强大的多平台协作能力[12],可以接收大部分主流3D制作软件的文件,包括家具设计常用的CAD和3d Max;
2)丰富的组件功能和插件功能。Unity 3D编辑器中包含2D与3D场景设计工具、NVIDIA PhysX物理引擎、光照、音频系统、Sprite管理工具、GUI插件、粒子效果和关键帧清单动画系统[13],可以满足智能家具常见功能的模拟;
3)可以通过串口与外部机械元件通信,接收单片机指令,实现家具功能外部控制,内部模拟。
3 设计案例
衣柜作为家庭中必不可少的一种家具,主要功能是存放衣物、装饰室内空间。目前对于智能衣柜的设计还处于起步阶段,其设计开发还有很多可研究的空间。
3.1 设计背景
产品定位为当下80、90后年轻人,因为年轻人对新鲜事物兴趣度较高,其思想和观念相对比较前卫,更追求个性化、与众不同,对于产品美观性的重视往往超过对产品价值的考虑[14]。
外观设计是受蒙德里安《红黄蓝的构成》作品的启发(图1)。蒙德里安的主要理念是:自然界中的各种元素都可以用简单的水平、垂直线来表示[15]。而《红黄蓝的构成》这幅作品将水平垂直线与三原色置于大小看似毫无规矩的网格结构中,使每种元素的位置和面积最终达到一种和谐与平衡。
图1 红黄蓝的构成Fig. 1 Composition with red, blue, and yellow
3.2 系统总体结构
本研究以家具智能化理论为基础,设计一款可以手势自动开关门的智能衣柜,应用CAD、3d Max软件设计衣柜的造型,在外部依靠传感器和单片机控制,通过软件与硬件两部分,结合Unity 3D技术在电脑中模拟衣柜开关门的效果。系统总体结构框图如图2所示。
图2 系统结构框图Fig. 2 System structure diagram
3.3 设计方法
3.3.1 衣柜模型建立
在造型上,《红黄蓝的构成》画作中水平垂直线以及红黄蓝三色的元素都在本设计中有所体现,并在该画作的风格基础上将颜色加深为深红、深蓝和姜黄色,而黑色的部分可以用来安装元器件,使其在柜体中不是很显眼,到达“隐形”的效果。
材质部分,门板都采用亚克力板,打造轻盈、简洁的形象。
在结构上,衣柜的分区设计成中间为移门衣柜,用于悬挂易皱或熨烫平整的外套等衣物;左侧为转门,用于存放摆放叠好的衣物、换季衣被、储物盒等;右侧为抽拉门,上层可放置短款衣物,下层为裤挂。多变的开门方式为衣柜增加一些趣味性,更大化利用了柜内空间,更方便了衣服的拿取。通过CAD和3d Max建立衣柜的模型,效果图如图3。
图3 设计案例效果Fig. 3 Designs of case rendering
3.3.2 程序编写及硬件连接
光电感应开关门部分本研究选用STC89C52型单片机、E18-D80NK型光电开关作为外部元器件。STC89C52型单片机是较为经典的具有MCS-51内核、8位CPU的单片机。
E18-D80NK型光电开关是基于红外线反射原理的光电开关,采用三线制导线连接,检测距离可以根据要求进行调节,距离可调节范围为3~80 cm,工作电压为5~36 V,工作环境温度为-25 ℃~+55 ℃。电路图见图4。
图4 电路图Fig. 4 Circuit diagram
图5 系统程序框图Fig. 5 System program block flow diagram
开发环境为keil uvision3,系统逻辑程序如图5所示。系统控制原理如下:首先需要将程序以及红外模块依次初始化,接下来判断红外传感器A或红外传感器B是否有信号。若红外传感器A检测到了信号,且把检测变量对2取余数后,判断结果是否为奇数,若为奇数,则A电机正转3 s,否则A电机反转3 s,3 s后A电机停转,红外模块恢复初始化;若红外传感器B检测到信号,且把检测变量对2取余数,判断是否为奇数,若为奇数,则B电机正转3 s,否则B电机反转3 s,3 s后B电机停转,红外模块恢复初始化;若红外传感器A、B均未检测到信号,则A、B电机不转,红外模块保持初始化。后续重复以上操作,同时发送字符串“open”和“close”到Unity 3D中。将编写好的程序通过STC-ISP软件冷启动上电烧录进单片机。
3.3.3 创建Unity 3D工程及模型导入
Unity 3D平台中支持许多常见的3D模型制作软件,最常用的为.FBX文件格式。首先将在3d Max中做好的衣柜立体模型文件备份后,保存为.FBX 格式文件导出,图6为文件导出图,导出后置于工程文件夹中的Assets文件夹下,并在场景视图中打开。由于模型、材质都已在3d Max中创建好,因此在Unity 3D中不需要重复添加。将模型拖到Project面板下,对模型进行简单烘焙,调整摄像机位置,使模型出现在画面中。
图6 FBX文件导出Fig. 6 Import FBX file
图7 开关门动画脚本Fig. 7 Switch door animation script
3.3.4 组件功能建立
物体是组件的容器。在Unity 3D中,物体的大部分功能的实现都是由组件来完成的,脚本也是一种组件。脚本开发环境为Microsoft Visual Studio。依次点击Create-C#Script创建C#脚本。为了多角度观察衣柜,通过bool函数判定当前无法切换视角,当相机速度大于0,改变bool值来切换视角;通过Vector3.SmoothDamp函数设置当前摄像机的位置和要接近的位置,脚本图如图7所示。本研究用到的另一种组件为变换Transform组件,变换组件表示了对象的位置、朝向和缩放的信息,且是每个对象必须有且无法删除的。打开动画设置界面,选择右门这个组件,添加动画。打开录制模式,选择关键帧,更改Transform面板下门的position中x的数值为单扇门宽度,使之能移动到合适的位置。
3.3.5 串口通信
由于单片机和计算机的电平不同,需要一个电平转换芯片MAX232。MAX232芯片可以将计算机输出的电平转换为单片机可以识别的0V/5V电平,从而实现了计算机和单片机之间的通信。
进行串口通信时首先需要将单片机的COM端口打开,并在Unity 3D中识别该端口,在keil uVision3中编写开关门字符串分别为“open1”和“close1”单片机发送串口数据部分程序如下:
void SendrStr(const uint8 *ptr)
{
do
{
SendOneByte(*ptr);
}while(*ptr++!=′ ′);
if(check1 == 0 && check2 == 1)
{
SerialOpen("open1");
}
else
{
SerialOpen("Close1"); }
3.3.6 模拟效果
通过串口程序调试,在触摸光电传感器时发送“open1”或“close1”进入Unity 3D,然后Unity 3D根据输入的字符串做出开关门动作。当在外部触摸光电传感器时,通过串口程序传入的不同字符串,Unity 3D中的柜门分别开和关,实现了功能的模拟,功能模拟图如图8所示。
图8 Unity 3D效果图Fig. 8 Product display in Unity 3D
4 结 论
围绕家具智能化,以家庭中必备的衣柜为例,提出一种基于Unity 3D的手势感应开关门衣柜的设计方法,结果表明,通过软件和硬件模拟可以实现对Unity 3D中衣柜门的控制,证明了该方法的可行性。该方法节约了实物模型制作和场地展示的成本,可作为智能家具的设计方法。在之前的研究中,多将Unity 3D与VR联用,而本研究将Unity 3D与机械设计结合,拓展了Unity 3D的使用范围。目前智能家具的设计开发还处于探索阶段,其与Unity 3D、机械元件结合的技术还有待于进一步完善,元器件的精度、程序的逻辑都会影响模拟的效果。随着科技力量的发展,家具设计和生产势必会走上智能化的道路。