基于3D建模和传感器模块的数据手套设计

2019-04-21 07:06吴靖飞夏禹龙陈轲陆浩琪
科学与技术 2019年6期

吴靖飞 夏禹龙 陈轲 陆浩琪

摘要:人们用手来感知外部事物,完成各种操作。数据手套利用传感器测量手部动作,将信息发送至计算机。本文采用flex.2弯曲传感器,数据采集模块,单片机制成数据手套,选用unity3D作为虚拟现实软件,在unity中编写控制脚本,读取数据手套发送至PC机的信息,实现3D手部模型和人手同步运动,呈现沉浸感。

关键词:数据手套;传感器模块;弯曲传感器

1绪论

随着虚拟现实技术的发展,数据手套作为可穿戴的虚拟现实交换媒介,越来越重要,各国研究人员也相继研发出各种数据手套。数据手套可以应用于虚拟装配、医疗康复、工业控制、军事等领域。数据手套采集的信息,为了能够更直观、更真实反映出虚拟互换,选用Unity作为虚拟互换软件,将手部信息在计算机上更直观的呈现出来,体现出沉浸感。

2 数据手套原理

2.1 设计思路

本文设计的数据手套的功能:以帆布手套为载体用弯曲传感器绑在手指上,通过传感器采集手指弯曲角度信息,将采集的数据发送至PC机展示。在PC机应用软件中建立三维模型,通过人手同步控制模型,用信号采集模块采集传感器弯曲信号,将信号传输到单片机,给单片机编写数据处理程序,对数据进行处理、转化成角度,通过串口输送到PC机。最终实现的功能包括:通过数据手套可以完成手部信息转换,在虚拟互换软件上呈现出虚拟手同步变换,让用户能够体验沉浸感。

2.1.2 数据手套结构

数据手套硬件包括:传感器组,姿态板,单片机,帆布手套。

2.2 传感器

传感器绑在手套上,用户带上手套弯曲手指时,不影响手部关节正常活动,5个弯曲传感器关节上,用于检测关节弯曲度,姿态板实时采集弯曲信息。

2.3 手部建模

每个手指关节反应手指弯曲信息,在关节上绑上传感器。本次设计只在手指近指节绑上传感器,每个手指只能反应一个关节的信息。

选用3DMAX建立手部模型,和其他三维建模软件相比,3DMAX作为建模软件,入门简单,操作方便,易于学习,适合用来建立静态模型,在3DMAX建模软件中建立人体手部模型,给模型添加骨骼,然后蒙皮,是三维模型和人手具有相同的顾各关节,更能反映人机同步互换,建立好的三维模型如图所示,将建好的模型导出为FBX格式的文件。

3.硬件电路设计

3.1 总体构架

硬件电路构架如图所示包括控制器、传感器组、数据采集模块等。

选取单片机作为下位机读取数据采集模块采集到的数据,经过处理转化后,利用串口通行传输到PC上位机,上位机接收到数据后进行解读分析,模型动画。

3.2 传感器组

采用flex``2.2弯曲传感器。传感器的电阻会随着角度变化进行变化。具体表现为,传感器向外弯曲时,传感器电阻变大。非弯曲状态电阻:~9000欧姆,90度弯曲电阻:~14000欧姆,180度弯曲电阻:~22000欧姆,可基本完成手套的应用要求。

MPU-6050传感器模块为全球首例整合性6轴运动处理组件,可以通过相应程序获得经DMP处理后的数据,包括四元数,欧拉角,加速度。在其中,其内置的陀螺仪传感器主要负责角度测量,加速度传感器负责加速度测量。通过两个传感器大大减少了封装空间,缩小应用体积。

3.3数据采集模块

DK21DN八路采集模块是集信号采集、变送、DA输出等一体化的智能模块,可测量8路0-5V,0-10V或者是0-20mA范围内直流电流信号,可以与各类传感器可以轻松采集输入五根手指的角度数据。

串行通讯:使用USB与PC机连接,通过接口可以实现与上位机的串口通讯,同时也可以解决供电需求,不用外加电源

4 软件设计

4.1 总体架构

在对下位机STM32F103单片机设置五个ADC规则通道和DK21DN八路采集模块的测量信号范围,确定MPU-6050传感器模块的测量对象为欧拉角,最后在unity3d软件中控制虚拟模型。

弯曲度传感器数据是利用STM32F103单片机接收经过电阻——电压转换电路转换过的弯曲度传感器的电压信号,在单片机上设置五个ADC规则通道,用DK21DN八路采集模块的AD转换电路进行AD转换得到对应手指的弯曲程度,ADC通道0~4分别读取五个手指弯曲度的值。通过PC上串口调试助手读出其经过AD转换过后不同弯曲程度时的数值,并对其进行分别量化和判断处理,得到最后的手指弯曲数据。

虚拟手的开发平台为Unity3D,所用的開发语言为C#。将FBX文件导入Unity,用Visual Studio编写控制脚本,生成可执行文件。虚拟手接收到MPU-6050数据包后对数据包进行解析,然后对五跟手指即五个弯曲度传感器的值进行解析。再将采集到的数据在Unity3d的代码中设为变量,方便调用

利用串口通信,从控制板读取数据,实现实时控制。

4.2 串口通信

首先将单片机arduino端与MPU6050进行物理连接:A4---SDA A5---SCLVCC---3V3GND---GNDGND---ADD。在官网下载了MPU6050的库文件后将其放至Arduino IDE的安装目录下的libraries\文件夹下。通过MPU6050库自带的Example中的“MPU6050_DMP6”进行MPU6050传感器模块部分的数据收集。Unity3d中通过添加using System.IO.Ports;引用与PC相连的单片机串口传输的数据。

5 总结与展望

本文研制出简单的数据手套并结合3dmax、Unity3D开发出虚拟手,利用串口通信实现同步控制,体验沉浸感,在VR游戏领域前景良好,还可以运用在航天航空。虽然研制出的数据手套可以实现人机互换,但是弯曲度还不够精确,对空间位置无法测量。

参考文献

[1]张鹏程,刘森,钱靖,等 基于数据手套的遥操作多指灵巧手[J].科技创新导报,2016,13(7):1-2

[2]侯建华,高速并行数据采集系统[M].电子技术.2007(2):22~24

[3]付玉锦,原魁,朱海兵.CAS-Glove型数据手套运动建模玉软件开发[J].系统仿真学报。2004:,4:660~663

[4]张俊.基于USB2.0接口技术研究[D].华中科技大学硕士论文.2004:29

[5]冯勇.现代计算机控制系统[M].哈尔滨工业大学出版社.1998:196~217

基金项目:本文系**大学2018年度大学生实践创新训练计划项目,项目编号:201811117056Y

作者简介:吴靖飞,男,1998-,汉族,江苏无锡,扬州大学本科在读,机械电子方向。

(作者单位:扬州大学)