吳靖飛 夏禹龍 陳軻 陸浩琪



摘要:人們用手來感知外部事物,完成各種操作。數據手套利用傳感器測量手部動作,將信息發送至計算機。本文采用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-,漢族,江蘇無錫,揚州大學本科在讀,機械電子方向。
(作者單位:揚州大學)