• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      感知網(wǎng)聯(lián)單車分布式虛擬環(huán)境設計與實現(xiàn)

      2020-08-20 07:53茌眾博
      中文信息 2020年7期
      關鍵詞:物聯(lián)網(wǎng)

      茌眾博

      摘要:意在設計感知網(wǎng)聯(lián)單車分布式虛擬環(huán)境系統(tǒng),讓用戶在虛擬環(huán)境中進行騎行健身,解決當下室內(nèi)健身單車枯燥無聊的問題。

      關鍵詞:分布式虛擬環(huán)境;物聯(lián)網(wǎng);健身單車

      中圖分類號:TP3 文獻標識碼:A ?文章編號:1003-9082(2020)07-000-01

      一、系統(tǒng)整體設計

      1. 項目整體技術架構

      下位機是由健身單車主體、兩塊Arduino開發(fā)板及多種傳感器構成,下位機系統(tǒng)控制部分由兩塊Arduino開發(fā)板構成,一塊用于將傳感器所獲取的數(shù)據(jù)通過串口通信傳輸至上位機,處理速度信息、角度信息等這些由用戶本身產(chǎn)生信息,另一塊用于讀取并解析上位機系統(tǒng)指令,虛擬環(huán)境中風速、單車上下坡所帶來不同阻力感等信息會通過此單片機反饋至用戶。下位機系統(tǒng)還包含了大量傳感器與控制模塊,傳感器采集用戶騎行數(shù)據(jù),例如騎行速度、車把方向、剎車信號等,控制模塊用于將虛擬環(huán)境中環(huán)境信息,例如風速、阻力、振動等作用于騎行用戶。

      上位機部分,利用Unity3D引擎搭建虛擬環(huán)境,虛擬環(huán)境中建立基本人物模型與環(huán)境交互內(nèi)容,與單片機通過串口通信傳遞用戶騎行信息、人機交互信息等,保證系統(tǒng)信息實時傳遞。為實現(xiàn)分布式虛擬環(huán)境,又架設了服務器及數(shù)據(jù)庫,設計了一套基于服務器—客戶端框架的網(wǎng)絡傳輸模式,并存儲用戶騎行信息,實現(xiàn)局域網(wǎng)下兩輛單車可以在同一虛擬環(huán)境下進行交互。

      2. 單車部分設計方案

      單車結構主要考慮傳感器、執(zhí)行器安裝以及用戶騎車體驗。在車把前部加裝鐵板平面,用來安裝風扇和用戶打卡系統(tǒng),且方便放置VR頭盔,風扇模擬風力,用戶打卡系統(tǒng)實現(xiàn)用戶刷卡上機操作。在車把下方安裝角度傳感器,在車把上配備電子剎把。在左側車把處增加搖桿,用戶可通過左手拇指對虛擬環(huán)境中界面進行操作。在右側車把處選用自復位按鍵,分別在虛擬環(huán)境中起到復位、加速和鳴笛效果,用戶右手拇指即可輕松操作。在車把內(nèi)部加入振動馬達模擬顛簸與碰撞,車把套中嵌入心率傳感器以獲取用戶心率。單車的下方用角鐵固定電動推桿,通過鐵絲牽引健身單車飛輪剎車片,采用磁控力,通過控制磁鐵與飛輪之間距離產(chǎn)生不同阻尼力,實現(xiàn)不同阻力效果。在單車飛輪上固定一磁鐵片,于單車的飛輪中心處安裝霍爾傳感器讀取騎行速度。

      3. 虛擬環(huán)境部分設計方案

      在賽道中增加上下坡、指示標、加速減時道具、傳送門、檢查點、蹦床、行人等內(nèi)容。當用戶觸碰減速道具時,虛擬環(huán)境中的計時器會對時間進行縮減;觸碰加速道具時,用戶通過點擊加速按鍵可加速;傳送門可以使賽道多樣化,通過在傳送門之間穿梭尋找捷徑;檢查點的設置讓用戶獲知自己行進路程;設置蹦床為增加用戶多樣性體驗;設置行人目的是為了增加賽道難度,撞到行人會增加比賽時間。

      此外增加用戶交互界面,提升用戶體驗。并且設計了一套基于服務器—客戶端框架網(wǎng)絡傳輸模式,使兩輛單車在局域網(wǎng)環(huán)境下實現(xiàn)分布式虛擬環(huán)境。

      二、系統(tǒng)整體實現(xiàn)

      1.軟硬件交互部分

      通過C# 中SerialPort 類實現(xiàn)與Arduino的數(shù)據(jù)交流,建立子線程執(zhí)行數(shù)據(jù)接收與處理。兩個子線程一個接收來自硬件的數(shù)據(jù),一個向硬件發(fā)送數(shù)據(jù)。Arduino采集信息數(shù)據(jù)以字符串(x,y)形式傳入串口緩沖區(qū),使用正則表達式讀取線程,匹配過濾非法數(shù)據(jù)。數(shù)據(jù)有不同標志位標記數(shù)據(jù)類型,例如方向、轉速等,其中x坐標代表具體數(shù)值,y坐標代表數(shù)據(jù)含義。

      2. 硬件部分

      包括速度信號、角度信號、剎車信號、按鍵信號、搖桿信號、打卡信號和心率信號等。

      3.軟件部分

      (1)虛擬環(huán)境內(nèi)容

      運用Unity3D引擎,從硬件采集數(shù)據(jù),設計單車模擬行駛系統(tǒng),建立單車的運動狀態(tài)及空間坐標邏輯關系,構建虛擬環(huán)境中的單車模型。單車模擬行駛系統(tǒng)計算單車在加速、拐彎、剎車等不同情況下的行駛情況,單車輪子與車體物理運算分開,輪子和車體都為單車物體的子物體。車體部分搭載了自動調(diào)整重心算法以保持平衡。輪子部分運用減震器的物理算法,能夠在車輪進行滾動的同時模擬輪子垂直抖動。輪子與地面的摩擦力是單車的動力來源。單車進行拐彎動作時,算法會回饋給單車車體一個角動量,減少車身抖動,平衡車體以及減少用戶VR眩暈感。將VR相機與單車車體綁定,實現(xiàn)用戶第一人稱視角體驗。同時運用復位點插件,用戶在虛擬環(huán)境中撞墻的話便可以使得用戶回到賽道中正確位置,配合實體單車的復位按鍵實現(xiàn)復位功能。

      利用Unity3D引擎內(nèi)置的UGUI系統(tǒng),可以“可視化地”開發(fā)交互界面。建立一個通用界面管理器,通過它來控制界面顯示和關閉。在界面管理器中,定義顯示界面與關閉界面兩個基本方法,同時界面管理器中還包含著一個列表,索引所有已經(jīng)打開的界面,從而避免界面重復打開。還編寫了一個界面基類,每一個界面都是繼承自面板基類。在基類中包含了初始化、開啟、關閉這三個固定方法,面板基類的初始化方法中,程序會根據(jù)所給路徑動態(tài)加載界面資源并控制面板的上下層關系。

      (2)網(wǎng)絡傳輸部分

      當客戶端發(fā)起連接時,基于套接字數(shù)據(jù)包將會通過指定端口,被發(fā)給搭建好的多線程異步服務器,部署于服務端的數(shù)據(jù)庫記錄了用戶登錄信息,可用于用戶信息比對及更新??蛻舳伺c服務器之間通過附帶時間戳的心跳協(xié)議,確保之間的相互連接。每隔一定時間,客戶端向服務器發(fā)送心跳協(xié)議以測試連通性,服務器收到后恢復心跳,并通過時間戳更新上次響應時間,長時間未響應的用戶會被斷開連接。

      用戶騎行信息會被實時傳輸給服務器,并由服務器分發(fā)給所有用戶。服務器通過六軸坐標及速率、角動量雙重傳輸及預測位置更新算法,可以在網(wǎng)絡不佳情況下減少可能出現(xiàn)的位置同步錯誤,并顯著降低延遲,同時對傳輸來信息進行防作弊檢測,增加競技公平性。在多人健身競技中,計算每位玩家所用時間、所獲積分,并將其傳輸給服務器,從而實現(xiàn)排行榜功能,在每次騎行結束后展示給用戶。服務端數(shù)據(jù)庫可保存用戶每次騎行數(shù)據(jù),以便于用戶之間相互挑戰(zhàn)及檢驗用戶健身效果。

      客戶端與服務器傳輸核心方法是將各類信息對象通過JSON序列化編碼傳輸,服務器會通過其協(xié)議名稱及所包含的參數(shù)自動進行下一步處理。服務端數(shù)據(jù)存儲使用MySQL數(shù)據(jù)庫,并將SQL語句定義并封裝在服務端C#程序單獨的類中。

      參考文獻

      [1]潘志庚,cad.zju.edu.cn,姜曉紅等.分布式虛擬環(huán)境綜述[J].軟件學報,2000

      (04):461-467.

      猜你喜歡
      物聯(lián)網(wǎng)
      基于無線組網(wǎng)的智慧公交站點信息系統(tǒng)研究與實踐
      基于LABVIEW的溫室管理系統(tǒng)的研究與設計
      論智能油田的發(fā)展趨勢及必要性
      中國或成“物聯(lián)網(wǎng)”領軍者
      天门市| 姜堰市| 邯郸市| 安陆市| 桐城市| 齐河县| 缙云县| 常山县| 东乌珠穆沁旗| 枝江市| 宜君县| 罗平县| 平远县| 长岭县| 宜宾市| 岱山县| 沈丘县| 林芝县| 大竹县| 峨眉山市| 普兰县| 双柏县| 白朗县| 米林县| 泸水县| 神木县| 峡江县| 临澧县| 青州市| 德清县| 华安县| 星座| 旺苍县| 宾阳县| 乌兰浩特市| 沁水县| 县级市| 汉川市| 隆子县| 石门县| 墨江|