魯冬梅 陳睿

摘要 本文介紹了一種移動機器人遙控控制系統。該系統能夠實現用手持Android移動終端遙控機器人的功能。介紹了系統整體硬件設計方案。系統采用了兩套Arduino控制板分別控制機械臂和移動平臺,采用Android系統作為接收端系統。通訊方案采用藍牙轉串口方案。經測試表明,本方案能夠實現無遙控功能。
【關鍵詞】Arduino Android 藍牙 控制系統
信息技術的發展促使機器人更加智能化。我們生產、生活中機器人替代人工的應用也越來越多。因此對機器人的研究具有重要的應用價值。機器人對發展我國工業的發展起著至關重要作用,移動機器人將成為未來數字化信息化社會的關鍵角色隨著移動機器人的發展,其中大部分具有移動功能的機器人都要使用無線控制。
Arduino是開源的電子硬件開發平臺,提供了豐富的硬件模塊和軟件庫,本文中傳感器驅動程序就是直接調用函數庫來實現的。Android系統是Google公司開發的一個開源的移動終端操作系統。它同時也具有開放、豐富的軟件庫等特點,利用這些優點可以實現移動平臺端點快速開發,本文中的遙控端的程序就是在此平臺完成對。同時利用這兩個開放的軟件、硬件開發平臺,可以快速開發出所需的軟硬件系統,驗證設計思路的正確與否。在國內,同時利用這兩個系統開發的案例并不多。本文介紹了一種藍牙控制機器人的控制系統的設計與實現。
1 系統硬件設計
如圖1所示,控制系統采用Arduino UNO作為主控板,利用L298N作為電機驅動電路板,產生驅動電流帶動兩個電機正/反轉動,電機通過帶動齒輪減速器,減速器直接帶動驅動輪轉動。驅動輪帶動從動輪和履帶轉動。通過控制兩個履帶正轉、反轉,使機器人產生前進、后退、左轉、右轉四個動作。另外配有一個機械手臂,總共5自由度。這個機械臂由另外一塊Arduino UNO板和拓展版提供驅動。藍牙模塊由第一塊控制板控制,所有控制信號由藍牙模塊接收。
裝有Android系統具有藍牙功能的設備一套,編有相應軟件用于產生控制信號和收集傳感器信息。
1.1 Arduino主控板
控制板核心是AVR單片機。該單片機有豐富的功能,可以實現數字模擬信號的處理。Arduino是一個完整開源硬件開發環境,所以其自身就具有一套完整的程序開發環境軟件和配套資源。
考慮到ArduinoUNO的輸入輸出口有限,而所需控制的舵機、傳感器很多。因此本文中的機器人采用兩塊Arduino UNO主控板分別控制機械臂和底盤。其中A板主要用于機械臂的舵機控制及機械臂上傳感器信號處理。B板主要用于底盤控制、遠程通信及相應傳感器信號的處理,轉發A上的信息及收到的指令。這樣設計可以降低每個控制板供電負擔、及信號處理的負擔。
1.2 供電電路設計
機器人驅動使用了12V電源,主要考慮到帶動履帶所需要的扭矩比較大,相對5V而言,12V能提供充沛的動力。但是由于其他控制電路電路所使用的電源為5V,采用7805電源電路降壓提供了5V電源。機器人上面的傳感器使用5V電源。
1.3 控制板之間通信
因為本文設計方案采用了兩塊Arduino,那么控制板之間必須有信息交換。但是所采用的Arduino UNO控制板只提供有1個串口,但是要實現對信號的轉發則需要兩個串口。本文采用了軟件虛擬的方法,把普通的輸入輸出口模擬成串口,實現信號的轉發功能。這樣就實現了信號的交換。
1.4 藍牙串口模塊
本文采用的是HC-05嵌被入式藍牙串口通訊模塊來實現信號轉換。主控板的RX、TX接口與HC-05對應的口連接。串口信號經過藍牙模塊轉發后,到達手持設備。Android的系統編有藍牙轉串口程序,可以讀出接收到的以串口協議發送過來的傳感器數據,同時手機端的按鍵動作以特定符合編碼的形式發送給藍牙模塊。
2 軟件編程
分別為控制板A、B編寫控制程序,同時B板編寫串口轉發程序,轉發A板的信息。為Android系統編寫遙控程序,不同的按鍵對應特定的編碼,不同的編碼對應不同的動作,在Arduino控制板中再根據收到的編碼執行相應的程序。
3 系統測試
通過匹配藍牙模塊與移動終端,打開移動端接收信號的程序,通過按下控制界面相應功能,軟件向機器人發送相應指令。機械臂和底盤接收到命令后,根據不同的命令實現不同的動作。
經實物測試,該設計能實現遠程無線遙控機器人操作。
參考文獻
[1]曾健平,邵艷潔.Android系統架構及應用程序開發研究[J].微計算機信,2011,27 (09):1-3.