张恩政,李锡睿,李子文
(浙江理工大学 机械与自动控制学院,杭州 310018)
智能家居作为家庭信息化的实现方式之一,并成为社会信息化发展的重要组成部分,物联网因其巨大应用前景,将是智能家居产业发展过程中一个比较现实的突破口,对智能家居产业的发展具有重大意义[1]。随着物联网技术的发展和深入,更高品质的智能生活越来越受到重视,为了满足智能家居中对座椅的交互式转动控制需求,设计成本低,易于构建,通用性好的座椅转动控制系统具有实际的研究价值和意义。
传统座椅的功能主要用于工作和休息,而座椅的另一个非常受欢迎的功能就是娱乐,在游戏厅,电影院交互式的运动座椅可给用户提供浸入式的娱乐享受,然而这些设备一般价格昂贵,体积庞大,将家中传统座椅升级改造成能够满足兼顾休息和娱乐的智能家居,并且人的参与和互动将融入智能家居系统,适应目前万物互联的物联网发展需求。而要实现这种具有交互式能力的座椅,设计实现对座椅有效运动控制的控制系统是关键,控制系统的主要功能包括人机交互控制,上位机软件控制和硬件控制电路等。
手柄作为实现人机交互的重要工具,各种不同外观,不同功能的手柄在实际的生产生活中得到了广泛的应用[2-3],游戏手柄应用已经从电脑上游戏控制的应用,扩展到其他系统如手机的应用,同时游戏手柄也可以借助一些桥梁工具扩展到其他的应用,如电脑鼠标或键盘的模拟等[4-7]。在目前热门的工业机器人运动控制中也得到应用[8],设计人性化、简单易用的上位机互联控制软件是控制系统设计的重要环节,目前VB.net,C#,Python,C++等语言是用于应用软件设计开发的常用语言[9-12],综合考虑这些编程语言的特点,使用VB.net语言进行可视化程序设计和软件设计是相对开发效率较快且简单的方式,同时使用Visual Studio平台上的控件可方便的设计出人性化实用的应用软件界面。可用于座椅运动控制的微处理器芯片很多,简单的控制系统一般可基于ARM技术[13-14]、基于STM系列微控制器[15-16]、基于单片机技术[17-21]或基于Arduino开发板[22-23]进行控制系统设计,考虑到座椅控制系统功能较简单以及成本因素,使用51系列单片机进行系统设计是性价比比较高的的方案。
为此,本文以AT89S52微处理控制芯片,设计并实现了一套基于AT89S52和VB.net座椅运动控制系统。通过鼠标和游戏手柄来实现对座椅的运动控制,并且可实现对电脑游戏或远程遥控车的同步运动控制,满足兼具休息和娱乐功能的座椅运动控制应用需求。
基于AT89S52微处理器设计的座椅运动控制系统方案如图1所示,系统核心组成主要包括座椅运动控制软件和AT89S52座椅控制器。座椅运动控制软件内部集成的手柄按键动作获取模块,可以实时获取使用的控制手柄的按键动作,可实现对常用的通用手柄、赛车手柄和飞行手柄的按键动作数据获取,在此基础上实现的手柄模式控制,可通过操控手柄的按键或摇杆来控制座椅的运动。手柄模式下可以使用鼠标点击控制软件上的功能按钮进行座椅的控制。AT89S52座椅控制器获取到座椅运动控制软件发送来的控制命令后,将命令数据转换为电机运动控制数据,经电机驱动器控制座椅电机的运动,可实现座椅的速度和转动控制。复位传感器用于检测座椅的位置,在座椅运动控制软件发出的复位命令作用下,可以控制座椅转动到初始的位置。电源模块的主要功能是为系统中各电路模块提供合适的工作电压。
图1 座椅运动控制系统方案框图
基于AT89S52座椅运动控制系统的硬件组成主要包括控制手柄、AT89S52座椅控制器、电机驱动器及电机、复位传感器和供电电源。其中,座椅控制器是整个控制系统核心部分,是系统硬件设计的关键。
考虑到研究设计的座椅控制系统控制功能相对简单,主要实现对座椅的速度和转动控制,对微处理器具有的资源要求不高,同时考虑到系统成本及通用性,系统设计选用常用的AT89S52单片机进行控制器电路设计,硬件电路设计结构组成如图2所示。
图2 基于AT89S52的控制器结构框图
如图2所示的控制器结构框图中,ISP下载电路配合相应下载器可实现编译程序的在线下载,便于程序的调试和后期系统升级维护。RS232串行通信是非常成熟和应用最多的通信方式,但由于RS232接口尺寸较大,目前生产的计算机都不再配备RS232接口电路,故通信电路采用RS232转USB实现设计,利用USB直接与计算机进行通信,同时USB接口的5 V电源可为控制电路板供电。结合图2所示的控制器电路方案框图,设计的座椅控制器电路板主要原理图如图3所示。为了便于控制电路板在系统中集成,使用的AT89S52芯片选用TQFP贴片式封装,USB转串口电路使用FT232RL芯片进行设计。控制电路板单片机的5 V供电由连接到电脑的USB线提供。
图3 基于AT89S52的控制器电路原理图
设计的座椅运动控制系统中软件设计主要包括运行在上位机的座椅运动控制软件和运行在AT89S52座椅控制器中的程序。座椅运动控制软件主要功能是将手柄按键动作或软件上按键动作转换为控制命令并发送给座椅控制器。座椅控制器中程序主要功能是接收上位机控制软件发送的命令,与座椅电机驱动器通讯,进而控制电机的运动。
设计的上位机座椅运动控制软件流程图如图4所示。使用座椅运动控制软件控制座椅运动前,首先需要将控制手柄连接好,同时设置好与座椅控制器匹配的串口号和波特率。为了满足设计的座椅运动控制系统对系统调试、测试和交互应用的需求,控制软件设计有“手柄模式”和“鼠标模式”双工作模式,可以根据需要选择工作模式。在“手柄模式”下,软件中集成的手柄按键读取功能模块可以实时地获取使用的手柄上的按键或摇杆数据,并将数据转换为座椅运动控制命令,经串口通讯发送至座椅运动控制器。在“鼠标模式”下,通过控制鼠标点击软件上的功能按钮,向座椅运动控制器发送运动控制命令。
图4 座椅运动控制软件流程图
座椅运动控制软件中“手柄模式”是研制的座椅运动控制系统进行人机交互的重要内容,其中软件中集成的手柄动作获取功能模块程序是关键,利用该模块程序可以实现对通用手柄、赛车手柄和飞行手柄3大类手柄的按键动作获取。基于VB.net设计的手柄动作获取功能程序是利用Windows多媒体应用程序接口winmm.dll来实现的,基于图4所示座椅运动控制软件流程图,使用VB.net设计实现的软件如图5所示。如表1中所示的是该软件对VINYSON U909通用电脑游戏手柄的主要按键动作获取数据。手柄实物如图5(b)所示,手柄上共有10个主要按键,两个人性化设计的多项控制摇杆和一个组合的四向键。其中两个摇杆和对应按键的选择和使用可通过手柄上Mode键进行切换。
图5 通用手柄座椅运动控制软件
表1 通用手柄主要按键解析数据
在图5所示的座椅运动控制软件中,图5(a)为“鼠标模式”下的界面,通过点击各功能按键,可实现对座椅的转动方向、转动速度等的控制,利用控制系统中位置传感器可以使用复位按钮完成对座椅位置复位。图5(b)为“手柄模式”下界面,当操作手柄的按键或摇杆时,文本框中会显示座椅动作状态。
基于AT89S52设计实现的座椅运动控制器程序流程图如图6所示。首先对串口中断和复位中断进行设置,然后设置与上位机一致的串口波特率。在串口中断中实时监测和接收上位机座椅控制软件发送来的控制命令,首先判断接收到的命令是否是复位命令:如果是复位命令,则启动连接到控制器的复位传感器并控制座椅进行持续的逆时针转动,当座椅上的金属片被复位传感器检测到时会产生复位信号,并触发复位中断,此时控制座椅停止转动,完成座椅位置的复位;当收到的控制命令不是复位命令时,程序会对命令进行解析并判断命令的类型,进而对应不同命令控制座椅进行转动方向、转动速度等的控制。
图6 座椅控制器程序流程图
为了验证研制的座椅运动控制系统对座椅进行运动控制的可行性和有效性,基于研制的座椅运动控制软件和座椅运动控制器构建了运动控制测试实验装置,并分别进行了游戏场景下座椅同步控制实验和VR影像下的遥控车与座椅同步控制实验。
本实验的目的是验证研制的上位机控制软件对座椅运动控制的可行性。构建的游戏场景下座椅同步控制测试装置如图7所示。构建的系统使用手柄是VINYSON U909双震动电脑游戏手柄。使用F-86BYG1885的86步进电机,并配上减速比为1:5的RV040蜗轮蜗杆减速箱实现座椅转动输出,并且在减速齿轮箱上放置了一个模拟座椅,来观察座椅的运动状态。座椅运动控制器使用金属外壳进行了封装,一端通过USB线连接至电脑,另外两根线分别连接至F-MD860H电机驱动器和LJ12A3-4-Z/BX接近开关复位传感器,控制器的电源由电脑USB端口来提供,电机及驱动器的电源使用的是24 V输出的明纬MS-500W供电电源。
图7 游戏场景下座椅同步控制实验装置
实验中首先需要将各硬件模块按照图1所示座椅控制系统方案进行有效互联,关键步骤是座椅控制软件可以正常读取游戏手柄数据并可与座椅控制器正常通信。在如图5所示控制软件界面中,在“鼠标模式”下,通过鼠标点击控制界面上的功能按钮来控制模拟座椅的转动方向和转动速度,点击复位按钮,并将复位传感器靠近金属,测试座椅复位可行性。在“手柄模式”下,打开赛车游戏,操作手柄上的按键和遥杆同步控制游戏中的赛车转向和座椅的转动。
通过实验测试表明:在“鼠标模式”下,通过点击各功能按钮可以有效控制电机的运动状态,包括顺时针转动、逆时针转动、停止、加速和减速等;在“手柄模式”下,使用游戏手柄可以同时控制电脑上运行的游戏和座椅电机的转动,并且座椅电机转动的速度可以通过加、减速按键进行调整,以使得座椅运动速度与游戏中的汽车的转动幅度相匹配。
为进一步验证研制的智能家居座椅控制系统在转椅转动控制中的有效性,同时扩展其在具体休娱座椅中功能应用,本实验在原来上位机控制软件中增加了对遥控车的遥控功能,游戏手柄除了可以控制座椅的转动,还可同时控制实际环境中遥控车的运动,并结合VR眼镜采集到的遥控车上实时传输的影像,实现浸入感更强的娱乐控制功能。构建的VR影像下的遥控车与座椅同步控制实验装置如图8所示。
图8 VR影像下的遥控车与座椅同步控制实验装置
如图8所示实验装置中,遥控车的发送端控制器采用STC系列单片机模块,使用NFR24L01无线模块与远程遥控车进行通讯,遥控车上边载有可以实时采集车前影像的双目摄像头,摄像头采集的数据通过WiFi传输模块,传输至手机上APP软件。由于双目摄像头采集到的数据在手机可形成双画面,在VR眼镜辅助下可实时看到远程遥控车前的3D画面。通过实验测试表明:在“手柄模式”下,上位机控制软件中增加的遥控车功能可以对遥控车的运动状态进行有效的控制,包括前后运动、左右转动、停止和加减速等;通过手柄可有效的控制模拟座椅的转动,并同时控制遥控车也相应的转动运动;遥控车上采集的双目摄像头数据可以实时的传输至手机端,并通过VR眼镜看到3D画面,具有很强的浸入感。
设计并实现了一套具有交互能力的智能家居座椅运动控制系统。使用AT89S52嵌入式芯片设计了座椅运动控制器,使用VB.net设计了具有“鼠标模式”和“手柄模式”的座椅运动控制软件。构建了座椅运动控制系统测试和应用实验装置,实验结果表明,该控制系统运行稳定可靠,在游戏场景下,能够实现对座椅和电脑上运行中游戏的同步控制,结合VR影像和对远程遥控车的控制,可实现浸入感较强的座椅同步控制应用。研究设计的运动控制系统具有较高性价比,具有较好可移植性和交互能力,满足企业对座椅转动交互运动控制需求,在智能家居及其他控制应用中具有实际参考和应用价值。