楊海濤
摘 要 文章介紹了一種基于Arduino的智能跳舞機器人,該機器人以Arduino單片機作為控制核心,通過語音識別技術(shù)模擬人類的跳舞動作,并在舞蹈過程中利用超聲測距模塊自主避障,同時可在手機端通過藍牙模塊進行控制,從而增加機器人的交互能力和趣味性,具有一定的應(yīng)用價值。
關(guān)鍵詞 語音識別;Arduino單片機;超聲避障;藍牙控制
中圖分類號 TP2 文獻標識碼 A 文章編號 1674-6708(2018)223-0151-03
隨著科學技術(shù)的發(fā)展,機器人已經(jīng)逐步走進我們的生活[1-2]。作為一種娛樂機器人的跳舞機器人,是一種集合了結(jié)構(gòu)設(shè)計、計算機技術(shù)、控制技術(shù)、傳感器技術(shù)以及通信技術(shù)等多學科知識的融合產(chǎn)物,在具備極強的觀賞性和趣味性的同時,更體現(xiàn)了現(xiàn)代科技的日新月異[ 3 ]。
文章介紹了一款基于Arduino開源平臺的小型跳舞機器人系統(tǒng)的設(shè)計與實現(xiàn),該系統(tǒng)基于3D打印技術(shù)對機器人的主要結(jié)構(gòu)部件進行設(shè)計和制造,利用PWM信號對機器人舵機進行控制,在主控制器的控制下模擬人類在音樂中翩翩起舞。同時,利用超聲測距技術(shù)實現(xiàn)機器人的避障;通過語音識別技術(shù),為機器人設(shè)計語音系統(tǒng),在表演舞蹈前,實現(xiàn)語音控制與良好的交互功能。
1 跳舞機器人設(shè)計方案
跳舞機器人的主要結(jié)構(gòu)部件如足部、頭部外殼、腿部等均采用3D打印技術(shù)制作完成,極大地提高制作的效率,減少了制作的成本。機器人的控制核心采用Arduino開源平臺,足部為2個自由度,驅(qū)動采用舵機作為驅(qū)動器,完成機器人的舞蹈動作。此外,藍牙模塊方便手機端進行交互,超聲波模塊能夠?qū)崟r避開障礙物的阻擋,語音控制模塊實現(xiàn)機器人的語音控制。根據(jù)上述基本要求,所設(shè)計的整體方案如圖1所示。
2 系統(tǒng)硬件設(shè)計
2.1 主控模塊
由于Arduino的開源特點,并且便于初學者進行學習和開發(fā),故采用Arduino作為跳舞機器人的主控模塊,本設(shè)計選用以ATmega32u4作為主控芯片的Arduino?NANO作為主控制器對跳舞機器人進行設(shè)計與開發(fā)。它是Arduino系列中基于ATmega32u4的一款微控制器。它直接使用ATmega32u4的USB通信功能,在調(diào)試時候通過USB連接電腦和Arduino? NANO即可進行程序的編寫。
2.2 避障模塊
為了使得所設(shè)計的跳舞機器人在舞蹈過程中能夠自主避開障礙物,本文采用超聲波測距的方式,選用的避障模塊型號為HC-SR04。該模塊傳輸距離遠、測距精度高,非常適合于智能機器人的避障設(shè)計。將該模塊安裝于跳舞機器人的頭部位置,根據(jù)超聲波原理和主控單元的接口配置,對HC-SR04超聲波測距模塊進行設(shè)計。所設(shè)計的電路如圖2所示,主要包括超聲波發(fā)射與接收電路、主控單元的接口電路等。
2.3 智能語音交互模塊
智能語音交互控制模塊主要用于機器人和操作人員進行交流控制。本文采用凌陽公司生產(chǎn)的型號為SPCE061A的專用語音處理模塊。該模塊具有一套完整的具備基本功能的語音模塊電路,除了內(nèi)置的具有自動增益控制功能的單通道聲音?!獢?shù)轉(zhuǎn)換器之外,還配置了麥克風放大電路,提供有系統(tǒng)的語音開發(fā)API工具包及資料,方便開發(fā)使用。
在該模塊的放音電路中,采用了僅需2.4V供電的型號為SPY0030的功放集成電路,其輸出功率可高達0.7W。設(shè)計過程中,在運算放大器前端添加了阻值為1K的精密可調(diào)電阻器,用以調(diào)整音量的大小,使得音量能夠達到較好的使用效果。所設(shè)計的放音電路如圖3所示。
語音識別的好壞在很大程度上取決于麥克風輸入電路的設(shè)計,因此,在設(shè)計過程中添加了濾波電路的同時,引入了自動增益(AGC)功能來提高識別的效果。所設(shè)計的麥克風輸入電路如圖4所示。從圖中可以看出,隨著MIC產(chǎn)生的波形變化,MICP端和MICN端也發(fā)生變化,并且在這兩個端口上形成的波形互為反相。經(jīng)過放電電路將語音數(shù)據(jù)信號放大,再經(jīng)過模數(shù)轉(zhuǎn)換送到主控模塊進行諸如語音數(shù)據(jù)壓縮、識別等處理。
3 系統(tǒng)軟件設(shè)計
在完成跳舞機器人的總體結(jié)構(gòu)與硬件電路設(shè)計的基礎(chǔ)上,基于模塊化軟件設(shè)計詳細,采用C語言完成系統(tǒng)的軟件設(shè)計。整個系統(tǒng)的軟件結(jié)構(gòu)主要由主程序和若干個子程序構(gòu)成,跳舞機器人的舞蹈動作、語音交互控制以及自主避障功能等均在相應(yīng)的子程序中完成。主程序僅根據(jù)時序要求進行子程序的調(diào)用,從而使得整個軟件具有清晰的結(jié)構(gòu)和良好的可維護性。
3.1 主程序設(shè)計
主程序主要負責整個系統(tǒng)的時序流程,包括系統(tǒng)設(shè)置的初始化、堆棧指針設(shè)置、中斷向量設(shè)置以及系統(tǒng)的主循環(huán)結(jié)構(gòu)等。系統(tǒng)的初始化主要包括舞蹈動作的初始化和寄存器初始化。主程序流程如圖5所示。
3.2 語音識別程序
系統(tǒng)的語音識別主要包括語音的訓(xùn)練、存儲、識別、舞蹈動作控制,以及相關(guān)的中斷服務(wù)子程序等,它是具有語音功能機器人系統(tǒng)設(shè)計中重要的一環(huán)。語音識別程序的流程圖如圖6所示。
4 結(jié)論
本文介紹了一款基于Arduino單片機的小型舞蹈機器人系統(tǒng)的設(shè)計與實現(xiàn),介紹硬件系統(tǒng)的整體結(jié)構(gòu)、控制電路設(shè)計和程序設(shè)計方案,該跳舞機器人利用PWM信號實現(xiàn)對伺服舵機的控制,利用超聲波測距技術(shù)實現(xiàn)自主避障,利用語言識別技術(shù)增加機器人的交互能力和趣味性。
參考文獻
[1]林海華.基于ATmega8515L的舞蹈機器人控制系統(tǒng)設(shè)計與研究[D].西安:西北工業(yè)大學,2005.
[2]魯冠華,劉星.基于凌陽單片機的跳舞機器人設(shè)計[J].山東水利職業(yè)學院院刊,2009(2).
[3]王澤紅,彭熙,劉思源,等.基于Arduino單片機的舞蹈機器人系統(tǒng)的設(shè)計與實現(xiàn)[J].電子世界,2018(6).