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