<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于WiFi網(wǎng)絡(luò)的可視化遙控搬運機器人設(shè)計

          基于WiFi網(wǎng)絡(luò)的可視化遙控搬運機器人設(shè)計

          作者: 時間:2016-09-12 來源:網(wǎng)絡(luò) 收藏

          3.6 服務(wù)器搭建

          由于服務(wù)器只能傳輸視頻信息,而本設(shè)計需要接收客戶端的控制命令并且還需返回機器人的傳感器數(shù)據(jù),因此需要移植支持CGI應(yīng)用腳本的服務(wù)器。服務(wù)器是一個可運行在Unix或下的非常小巧的單任務(wù)WEB服務(wù)器,并且支持CGI腳本,廣泛應(yīng)用于嵌入式領(lǐng)域。本設(shè)計通過編寫CGI腳本來完成服務(wù)器與客戶端的數(shù)據(jù)交換。

          3.7 服務(wù)器端程序設(shè)計

          服務(wù)程序主要完成機器人的初始化、讀取電量值并將電量值通過LED進行提示,讀取命名管道獲得命令字并將其解析執(zhí)行。主要的流程圖如圖3所示。

          基于WiFi網(wǎng)絡(luò)的可視化遙控搬運機器人設(shè)計

          如圖3所示,本設(shè)計中的服務(wù)程序采用多進程程序設(shè)計方式,其子進程每60 s采集一次電源電量信息并更新電量指示燈顯示,主進程采用阻塞讀的方式讀取命名管道來等待客

          戶端發(fā)送命令,獲得命令之后對命令進行解析,并調(diào)用驅(qū)動程序來執(zhí)行相應(yīng)的命令,從而實現(xiàn)對機器人的控制。

          4 客戶端程序設(shè)計

          4.1 Android客戶端設(shè)計

          Android客戶端軟件流程圖如圖4所示。

          基于WiFi網(wǎng)絡(luò)的可視化遙控搬運機器人設(shè)計

          Android端的應(yīng)用程序采用多線程技術(shù),其中一個子線程每60 s向服務(wù)器發(fā)送一個獲取電量的命令并根據(jù)收到的數(shù)據(jù)進行顯示更新,另一個線程根據(jù)MJPEG協(xié)議來解析出圖像數(shù)據(jù)并更新顯示。主線程主要完成用戶操控事件的監(jiān)聽,并根據(jù)用戶的實際操控發(fā)送相應(yīng)的命令給服務(wù)器,并從服務(wù)器獲得機器人的最新數(shù)據(jù)來實時更新,其命令的發(fā)送方式采用HTTP協(xié)議中的GET方法。

          GET方法是HTTP協(xié)議中定義的多種與服務(wù)器進行交互的方法之一,它一般用于獲取/查詢資源信息。該方法請求的數(shù)據(jù)會附在URL之后,并且提交的數(shù)據(jù)最多只能是1024字節(jié),但是本設(shè)計中只需要傳送命令字即可,因此采用GET方法來傳送命令字與獲取機器人數(shù)據(jù)信息。使用該方法來發(fā)送命令,服務(wù)器端的CGI程序可以在QUERY—STRING環(huán)境變量中非常方便地獲取到客戶端傳送給服務(wù)器的數(shù)據(jù),并且客戶端應(yīng)用程序可以在HttpResponse中獲得服務(wù)器端返回的數(shù)據(jù)。

          MJPEG將服務(wù)器端發(fā)送來的一張張JPEG圖像數(shù)據(jù)發(fā)送給客戶端,客戶端不斷地接收圖像數(shù)據(jù)并顯示更新,即形成了動態(tài)的圖像。獲取視頻圖像數(shù)據(jù)時,客戶端首先發(fā)一個GET方法,如果服務(wù)器接收響應(yīng)則會設(shè)置contexttype的boundary子屬性來指明,然后服務(wù)器端開始發(fā)送圖片數(shù)據(jù),在數(shù)據(jù)頭部會有圖片類型以及大小信息,其中Content—Length字段指明圖像數(shù)據(jù)的長度,Content—Type字段指明圖像的類型值為image/jpeg。當一幀圖像數(shù)據(jù)發(fā)送完畢后,服務(wù)器端將會發(fā)送邊界字符串來表示一幀圖像發(fā)送結(jié)束。

          4.2 WEB客戶端設(shè)計

          WEB客戶端程序流程圖如圖5所示。WEB客戶端采用AJAX技術(shù),其功能模塊大體上分為3個部分:第一部分主要是監(jiān)測用戶的操作并采用HTTP GET方法來發(fā)送控制命令,然后將服務(wù)器返回的信息更新顯示;第二部分主要為120 s定時發(fā)送,獲取電源電量值的命令,并將獲得的數(shù)據(jù)更新顯示;第三部分獲取圖像數(shù)據(jù)并顯示。

          基于WiFi網(wǎng)絡(luò)的可視化遙控搬運機器人設(shè)計

          AJAX(Asynchronous Javascript+XML)即異步JavaScript和XML技術(shù)的簡稱,它可以實現(xiàn)網(wǎng)頁異步更新。采用該方法來設(shè)計WEB應(yīng)用,可以只對網(wǎng)頁的部分內(nèi)容進行更新,而不需要重新對整個頁面進行加載。其工作原理如圖6所示。

          基于WiFi網(wǎng)絡(luò)的可視化遙控搬運機器人設(shè)計

          結(jié)語

          本文從硬件選型、硬件電路設(shè)計、系統(tǒng)移植、驅(qū)動程序移植編寫、服務(wù)器搭建、服務(wù)器程序編寫,以及Android客戶端和WEB客戶端應(yīng)用程序編寫方面進行了較為詳細的介紹。最終,用戶能夠通過Android客戶端和WEB客戶端對機器人進行夾持、運輸、擺放動作的控制,并且可以實時地返回機器人采集到的圖像數(shù)據(jù)和傳感器數(shù)據(jù)。


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();