馬瓊雄 邱育波 文宗明
1.華南理工大學廣州學院工程研究院機器人應用研究所,廣東省廣州市 510800
2.華南理工大學廣州學院機械工程學院,廣東省廣州市 510800
Android系統(tǒng)是目前移動設(shè)備市場占有率最高的操作系統(tǒng),由于其為開源系統(tǒng),所以各大移動設(shè)備廠商都對它情有獨鐘。
文中所述移動機器人開發(fā)方案,采用WIFI通訊方式,使用現(xiàn)有的Android設(shè)備作為主控處理器,運用Socket協(xié)議、HTTP協(xié)議對信號進行處理,不需計算機即可現(xiàn)實通訊,降低移動機器人的復雜度和成本,操作簡單,實用性高。
文章第二部分介紹系統(tǒng)整體結(jié)構(gòu);第三部分是對系統(tǒng)各部分進行詳細介紹;第四部分展示利用系統(tǒng)進行實驗的效果;最后是總結(jié)。
本系統(tǒng)由Android客戶端及機器人兩大部分組成,兩者間以WIFI信號的形式進行通信。整體結(jié)構(gòu)如圖1整體結(jié)構(gòu)圖所示,硬件部分主要由機器人本體、WIFI模塊、單片機系統(tǒng)、電源模塊組成。軟件部分包含程序的編寫通訊模塊及界面設(shè)計,本系統(tǒng)文所提出的方案適用于任何一款使用Android系統(tǒng)且?guī)IFI收發(fā)功能的移動設(shè)備。
圖1 整體結(jié)構(gòu)圖
Android客戶端主要使用Java語言作為編程語言,通過Socket協(xié)議和Http協(xié)議實現(xiàn)與機器人的通訊,其中分為兩大部分,一是視頻采集部分,二是機器人控制部分,其中視頻部分采用的是Http協(xié)議,而控制部分采用的則是Socket協(xié)議,將兩部分開實現(xiàn),避免了數(shù)據(jù)交換時產(chǎn)生互相干涉的情況,有利于數(shù)據(jù)的處理和功能的實現(xiàn)。
圖2為客戶端使用界面,左邊是控制區(qū)域,右邊是視頻區(qū)域。
圖2 客戶端使用界面
2.1.1 視頻區(qū)域
視頻區(qū)域主要使用的是HTTP協(xié)議,連接作為服務器端的WIFI模塊,獲取所掛載攝像頭的數(shù)據(jù)流并轉(zhuǎn)換成圖片,然后建立一個線程在SurfaceView中頻繁刷新,形成視頻流。
圖3 視頻區(qū)域程序流程圖
2.1.2 控制區(qū)域
圖4為控制區(qū)域所實現(xiàn)的程序流程圖,控制部分主要使用是的Socket協(xié)議通信,通過與WIFI模塊進行連接,連接之后根據(jù)相應的按鈕發(fā)送不同的控制指令。
本系統(tǒng)采用80C51單片機作為下位機,其主要作用是負責控制機器人的移動,即控制驅(qū)動橋。
圖4 控制區(qū)域程序流程圖
因為單字符數(shù)據(jù)位太少,很容易受到外圍信號的干擾,因此我們自定義了通訊協(xié)議,格式如下:
包頭標志位+字節(jié)控制指令+包尾標志位
采用以上自定義的數(shù)據(jù)包形式,可以很好地解決數(shù)據(jù)的干擾問題。
圖6 實驗平臺結(jié)構(gòu)圖
本項目的移動機器人主要組成結(jié)構(gòu)為:WIFI模塊:703N 無線路由;下位機:STC89C52單片機最小系統(tǒng);驅(qū)動模塊:L298N電機驅(qū)動板1塊,可以同時驅(qū)動兩個電機;通信方式:無線WIFI通信、TTL電平通信;底盤:履帶式移動,自帶2個電機(7.2V,傳動比86.8:1,1km/hr);電源:1個5V蓄電池,1個12V 3s 鋰電池。
圖6為實驗平臺結(jié)構(gòu)圖。
WIFI模塊系統(tǒng)采用改造后的路由作為WIFI模塊。它可將從客戶端接受到的控制指令完整地轉(zhuǎn)發(fā)給下位機,進而通過下位機控制機器人的移動。
圖7為改造后的WIFI模塊。
圖7 WIFI模塊
機器人實際運行效果如圖8。
圖中可見圖像反饋清晰;實際操作中,機器人響應速度快,圖像傳輸流暢。
圖8 運行效果圖
綜上所述,本機器人使用現(xiàn)有的Android設(shè)備作為主控處理器,降低移動機器人的復雜度和成本。通過Socket協(xié)議和Http協(xié)議實現(xiàn)Android設(shè)與機器人之間的通信;下位機控制和視頻流傳輸兩部分開實現(xiàn),避免了數(shù)據(jù)交換時產(chǎn)生相互干擾的情況,有利于數(shù)據(jù)的處理和功能的實現(xiàn)。使用數(shù)據(jù)包傳輸?shù)姆绞酱蟠蠼档土送鈬盘柕母蓴_,使機器人運行更加穩(wěn)定。
[1](美)塞若,Head First Java[M].中國電力出版社,2007
[2]Mark L Murphy. Beginning Android 2[M].人民郵電出版社,2008
[3]David Gourley. HTTP The Definitive Guide[M] O'Reilly Media出版社,2002
[4](美)卡爾弗特,(美)多納霍. Java TCP/IP Socket編程[M].機械工業(yè)出版社,2009