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