楊海濤
摘 要 文章介紹了一種基于Arduino的智能跳舞機器人,該機器人以Arduino單片機作為控制核心,通過語音識別技術模擬人類的跳舞動作,并在舞蹈過程中利用超聲測距模塊自主避障,同時可在手機端通過藍牙模塊進行控制,從而增加機器人的交互能力和趣味性,具有一定的應用價值。
關鍵詞 語音識別;Arduino單片機;超聲避障;藍牙控制
中圖分類號 TP2 文獻標識碼 A 文章編號 1674-6708(2018)223-0151-03
隨著科學技術的發展,機器人已經逐步走進我們的生活[1-2]。作為一種娛樂機器人的跳舞機器人,是一種集合了結構設計、計算機技術、控制技術、傳感器技術以及通信技術等多學科知識的融合產物,在具備極強的觀賞性和趣味性的同時,更體現了現代科技的日新月異[ 3 ]。
文章介紹了一款基于Arduino開源平臺的小型跳舞機器人系統的設計與實現,該系統基于3D打印技術對機器人的主要結構部件進行設計和制造,利用PWM信號對機器人舵機進行控制,在主控制器的控制下模擬人類在音樂中翩翩起舞。同時,利用超聲測距技術實現機器人的避障;通過語音識別技術,為機器人設計語音系統,在表演舞蹈前,實現語音控制與良好的交互功能。
1 跳舞機器人設計方案
跳舞機器人的主要結構部件如足部、頭部外殼、腿部等均采用3D打印技術制作完成,極大地提高制作的效率,減少了制作的成本。機器人的控制核心采用Arduino開源平臺,足部為2個自由度,驅動采用舵機作為驅動器,完成機器人的舞蹈動作。此外,藍牙模塊方便手機端進行交互,超聲波模塊能夠實時避開障礙物的阻擋,語音控制模塊實現機器人的語音控制。根據上述基本要求,所設計的整體方案如圖1所示。
2 系統硬件設計
2.1 主控模塊
由于Arduino的開源特點,并且便于初學者進行學習和開發,故采用Arduino作為跳舞機器人的主控模塊,本設計選用以ATmega32u4作為主控芯片的Arduino?NANO作為主控制器對跳舞機器人進行設計與開發。它是Arduino系列中基于ATmega32u4的一款微控制器。它直接使用ATmega32u4的USB通信功能,在調試時候通過USB連接電腦和Arduino? NANO即可進行程序的編寫。
2.2 避障模塊
為了使得所設計的跳舞機器人在舞蹈過程中能夠自主避開障礙物,本文采用超聲波測距的方式,選用的避障模塊型號為HC-SR04。該模塊傳輸距離遠、測距精度高,非常適合于智能機器人的避障設計。將該模塊安裝于跳舞機器人的頭部位置,根據超聲波原理和主控單元的接口配置,對HC-SR04超聲波測距模塊進行設計。所設計的電路如圖2所示,主要包括超聲波發射與接收電路、主控單元的接口電路等。
2.3 智能語音交互模塊
智能語音交互控制模塊主要用于機器人和操作人員進行交流控制。本文采用凌陽公司生產的型號為SPCE061A的專用語音處理模塊。該模塊具有一套完整的具備基本功能的語音模塊電路,除了內置的具有自動增益控制功能的單通道聲音模—數轉換器之外,還配置了麥克風放大電路,提供有系統的語音開發API工具包及資料,方便開發使用。
在該模塊的放音電路中,采用了僅需2.4V供電的型號為SPY0030的功放集成電路,其輸出功率可高達0.7W。設計過程中,在運算放大器前端添加了阻值為1K的精密可調電阻器,用以調整音量的大小,使得音量能夠達到較好的使用效果。所設計的放音電路如圖3所示。

語音識別的好壞在很大程度上取決于麥克風輸入電路的設計,因此,在設計過程中添加了濾波電路的同時,引入了自動增益(AGC)功能來提高識別的效果。所設計的麥克風輸入電路如圖4所示。從圖中可以看出,隨著MIC產生的波形變化,MICP端和MICN端也發生變化,并且在這兩個端口上形成的波形互為反相。經過放電電路將語音數據信號放大,再經過模數轉換送到主控模塊進行諸如語音數據壓縮、識別等處理。
3 系統軟件設計
在完成跳舞機器人的總體結構與硬件電路設計的基礎上,基于模塊化軟件設計詳細,采用C語言完成系統的軟件設計。整個系統的軟件結構主要由主程序和若干個子程序構成,跳舞機器人的舞蹈動作、語音交互控制以及自主避障功能等均在相應的子程序中完成。主程序僅根據時序要求進行子程序的調用,從而使得整個軟件具有清晰的結構和良好的可維護性。
3.1 主程序設計
主程序主要負責整個系統的時序流程,包括系統設置的初始化、堆棧指針設置、中斷向量設置以及系統的主循環結構等。系統的初始化主要包括舞蹈動作的初始化和寄存器初始化。主程序流程如圖5所示。
3.2 語音識別程序
系統的語音識別主要包括語音的訓練、存儲、識別、舞蹈動作控制,以及相關的中斷服務子程序等,它是具有語音功能機器人系統設計中重要的一環。語音識別程序的流程圖如圖6所示。
4 結論
本文介紹了一款基于Arduino單片機的小型舞蹈機器人系統的設計與實現,介紹硬件系統的整體結構、控制電路設計和程序設計方案,該跳舞機器人利用PWM信號實現對伺服舵機的控制,利用超聲波測距技術實現自主避障,利用語言識別技術增加機器人的交互能力和趣味性。
參考文獻
[1]林海華.基于ATmega8515L的舞蹈機器人控制系統設計與研究[D].西安:西北工業大學,2005.
[2]魯冠華,劉星.基于凌陽單片機的跳舞機器人設計[J].山東水利職業學院院刊,2009(2).
[3]王澤紅,彭熙,劉思源,等.基于Arduino單片機的舞蹈機器人系統的設計與實現[J].電子世界,2018(6).