<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

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

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

3.6 服務(wù)器搭建

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

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

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

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

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

戶(hù)端發(fā)送命令,獲得命令之后對命令進(jìn)行解析,并調用驅動(dòng)程序來(lái)執行相應的命令,從而實(shí)現對機器人的控制。

4 客戶(hù)端程序設計

4.1 Android客戶(hù)端設計

Android客戶(hù)端軟件流程圖如圖4所示。

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

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

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

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

4.2 WEB客戶(hù)端設計

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

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

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

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

結語(yǔ)

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


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>