謝杰騰 顏曉文
摘 要:隨著Android終端的發(fā)展,為了讓機器人的控制更加方便和人性化,提出以Android終端為研究重點,應(yīng)用藍牙通信技術(shù)來實現(xiàn)安卓手機無線控制機器人運動的方案。首先,利用Google開源的語音識別平臺來設(shè)計機器人控制軟件語音識別部分。其次,機器人的控制系統(tǒng)是用Ardunio控制板來驅(qū)動機器人的舵機,為了控制機器人的多個關(guān)節(jié),將Arduino控制板和32路舵機控制板結(jié)合起來,這樣能控制更多的舵機從而達到對機器人的雙臂和雙足的控制。最后,本系統(tǒng)實現(xiàn)安卓手機和Arduino控制板之間的藍牙配對連接。試驗表明,系統(tǒng)能夠較好地實現(xiàn)機器人地實時控制。
關(guān)鍵詞:機器人控制;Arduino ;Android ;語音識別 ;藍牙
中圖分類號:TP316 文獻標識碼:A 文章編號:2095-1302(2015)03-00-02
0 引 言
能夠用語音與機器進行交流,讓機器明白你說什么,這是人們長期以來夢寐以求的事情。隨著科學(xué)技術(shù)的不斷發(fā)展,出現(xiàn)了語音識別技術(shù),這使人類的這個理想逐漸得以實現(xiàn)。本文以Android智能機和Arduino開發(fā)板為實現(xiàn)工具,結(jié)合家用仿人機器人平臺,搭建好完整的語音識別控制系統(tǒng),用戶利用安卓手機提供的麥克風(fēng)語音命令,輸入語音信號經(jīng)處理、識別,得出結(jié)果作用于服務(wù)機器人的行動動作,從而提供一種高效的、穩(wěn)定的、實用性強的、高識別率的語音控制服務(wù)機器人系統(tǒng)。
1 系統(tǒng)總體方案設(shè)計
本文介紹的語音控制機器人服務(wù)系統(tǒng)包括安卓智能手機、Arduino主控制板、32路伺服舵機控制板以及機械系統(tǒng)四大部分組成。其中安卓手機不但充當采集語音信號的作用和將采集完的的語音信號發(fā)送到谷歌語音云平臺進行識別,并將識別的語音結(jié)果返回,而且還充當發(fā)送控制標志位的角色。對于機器人的控制界面是運行在安卓操作系統(tǒng)上的應(yīng)用程序,該程序是利用eclipse和安卓插件搭建的平臺而開發(fā)出來的,通過在安卓操作系統(tǒng)的手機運行調(diào)試應(yīng)用程序,直到達到滿意的效果。總體框架圖如圖1所示。
2 分析及設(shè)計
2.1 硬件總體設(shè)計
本系統(tǒng)的硬件控制部分由Arduino Mega2560和奧松公司的32路伺服電機組成,實現(xiàn)對機器臂的控制。通過Arduino控制板外接外部傳感器可以檢測外部的環(huán)境參數(shù),另外,為了實現(xiàn)藍牙的通信,利用Arduino控制板的串口外接RB Bluetooth Transceive藍牙轉(zhuǎn)串口模塊,利用該模塊可以將藍牙信號轉(zhuǎn)換成串口信號。軟件控終端用的是三星手機GTi8150,該手機的操作系統(tǒng)是Android 2.3版本。
圖1 系統(tǒng)框圖
本系統(tǒng)的通信部分涉及到三部分:第一處是安卓手機通過GPRS信號和谷歌云平臺的通信,該通信遵守GPRS通信的協(xié)議。第二處是安卓手機和控制板之間的通信,此處利用的是藍牙模塊來實現(xiàn)二者之間的無線通信,這里主要是從手機發(fā)送機器人的動作控制標志位給主控制板。第三處則是舵機控制板和主控板之間通過串口的通信,其通信遵守串口的通信協(xié)議,這里主要是主控板將機器人的動作指令根據(jù)觸發(fā)的控制標志位來發(fā)送給舵機控制板指令。
本系統(tǒng)的舵機控制板主要負責(zé)給各個舵機提供電源和解析發(fā)送過來的動作指令來控制舵機的目的。因為機器人的動作指令是根據(jù)舵機控制板的軟件生成的,生成指令是通過USB轉(zhuǎn)串口將PC和舵機控制板連接,而舵機則跟舵機控制板連接,當連接成功后,就可以通過軟件控制和調(diào)節(jié)各個舵機的轉(zhuǎn)動角度。同時要注意動作完成時間參數(shù)的調(diào)節(jié),這個影響到舵機轉(zhuǎn)動的速度。調(diào)節(jié)逐個舵機來對機器人的動作步調(diào)來進行規(guī)劃,規(guī)劃完成則保存相應(yīng)的指令,并編寫程序?qū)崿F(xiàn)對該arduino主控板的控制。所以這里舵機控制板能夠根據(jù)發(fā)送過來的動作指令來控制機器人的動作。
2.2 程序設(shè)計
系統(tǒng)軟件主要包括兩部分,一部分是安卓系統(tǒng)上的控制程序的設(shè)計,包括語音識別的控制和手動按鍵的控制,另外一部分是Arduino控制板中程序的設(shè)計。
安卓系統(tǒng)端軟件的設(shè)計主要是利用手機的麥克風(fēng)功能實現(xiàn)語音的輸入,并且通過谷歌的語音引擎來實現(xiàn)對輸入語音的識別,該系統(tǒng)軟件語音識別部分流程如圖2所示。
當換成手動輸入時,直接根據(jù)相應(yīng)的按鍵發(fā)送相應(yīng)的觸發(fā)標志到Arduino控制板。本系統(tǒng)的特色主要是實現(xiàn)語音的控制。
Arduino控制板端的程序主要是根據(jù)手機端發(fā)送過來的信號來發(fā)送相應(yīng)的指令給舵機控制板來控制機器臂,其Arduino控制端程序流程圖如圖3所示。
圖2 語音識別編程流程圖 圖3 Arduino控制端程序流程圖
手機端控制系統(tǒng)是基于Android 2.1系統(tǒng)所編寫的,所用開發(fā)工具為Eclipse集成開發(fā)環(huán)境,Eclipse是著名的跨平臺的自由集成開發(fā)環(huán)境(IDE)。最初主要用來Java語言開發(fā),但是目前亦有人通過插件使其作為其他計算機語言比如C++、Python和Android的開發(fā)工具,在此開發(fā)環(huán)境下開發(fā)軟件非常的方便。設(shè)計本系統(tǒng)手機端軟件的程序界面,為了盡快實現(xiàn)程序的功能,本程序沒有對軟件界面設(shè)計做特別美化的設(shè)計,僅包含我們所用到的幾個按鈕和圖形顯示,以實現(xiàn)我們的功能為最大目標,設(shè)計手機端控制界面如圖4所示。
3 測試與試驗分析
該系統(tǒng)組裝并調(diào)試,測試該系統(tǒng),控制的機器人如圖5所示,通過安卓手機軟件實現(xiàn)機器人的運動控制,通過觸擊按鍵或者語音的輸入來對每組命令進行循環(huán)測試。可以輸入的語音命令有前進、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止、擁抱、敬禮、叉腰、招手等動作。
具體測試步驟:
連接好線路,打開電源,觀察知識點正常亮起,觸擊控制界面的藍牙連接按鈕,觀察指示燈,以確保手機藍牙和Arduino開發(fā)板的配對連接成功。否則,得檢查系統(tǒng)的連接是否正確。
圖4 手機端控制界面 圖5 機器人
藍牙配對連接成功后,先測試手動操作是否成功,分別觸擊前進、后退、左轉(zhuǎn)、右轉(zhuǎn)、停止按鈕,觀測機器人是否根據(jù)對應(yīng)的指令做相應(yīng)的運動。循環(huán)測試多次,保證系統(tǒng)的穩(wěn)定。
測試完手動操作按鈕之后,接下來測試語音控制的輸入,觸擊語音輸入控制按鈕,會出來一個虛擬的麥克風(fēng),對著手機話筒說出前進,后退等控制命令,觀測機器人是否能夠根據(jù)你的語音來實現(xiàn)相應(yīng)的運動。循環(huán)測試多次,保證系統(tǒng)的穩(wěn)定。
最后試驗分析,該控制程序能夠穩(wěn)定的實現(xiàn)都機器人運動的控制,達到了預(yù)訂的目標和效果。
4 結(jié) 語
設(shè)計基于Android系統(tǒng)手機和Arduino控制板的機器人控制系統(tǒng),通過接收人的語音或者按鍵來操作機器人的運動狀態(tài),采用安卓智能手機來進行語音的處理和谷歌云平臺對語音的識別,利用藍牙來進行數(shù)據(jù)的通信,舵機控制板軟件規(guī)劃出機器人的各種動作并且生成的動作指令,最后由控制板來實現(xiàn)完成該相應(yīng)的動作。利用了藍牙無線通信,擺脫有線困擾,使得系統(tǒng)有廣泛的適用范圍。
參考文獻
[1] 田澤.嵌入式系統(tǒng)開發(fā)與應(yīng)用教程[M].北京: 北京航空航天大學(xué)出版社,2005.
[2] 李全利.單片機原理及接口技術(shù)[M].北京: 高等教育出版社,2009.
[3]蔡睿妍.Arduino的原理及應(yīng)用[J].電子設(shè)計工程,2012(16):155-157.
[4] 崔才豪,張玉華,楊樹財. 用Arduino 控制板的光引導(dǎo)運動小車設(shè)計[J]. 自動化儀表,2011(9):29-32.
[5] 何彪,周開班. 基于NFC 技術(shù)的藍牙對象交換方法[J]. 微計算機信息, 2009(6) :133-134.