龍春陽
(湖南婁底職業技術學院,湖南 婁底 417000)
近年來,世界科技的迅猛發展,高科技含量的機器人、電子玩具等已經成為玩具行業發展的主流,發展科技型玩具已是必然的趨勢,不僅世界大玩具公司爭相開發,世界電腦巨頭微軟、英特爾、IBM、以及世界電器霸主松下、東芝、索尼等也都垂青于電子玩具,紛紛將半導體技術、數碼技術用于玩具開發。麻省理工學院也早已得到迪士尼等4大公司資助數百萬美元的研究開發經費。這種科技、教育與玩具制造業的結合,將是玩具業在技術上的又一次革命,為使其更加生動、智能,讓語音技術融入玩具中,不僅可以賦予玩具“聽”、“說”等交流能力,富含趣味性,使玩具更可愛、更吸引人,同時也有利于在兒童中普及現代科學技術。這既能推動語音技術產業化的發展,又能促進科學技術在我國新生代中萌發生機,激發出更多創意,進而為我國智能科技的發展奠定堅實的基礎。同時亦將推動科技的智能化、產業化,這是社會科技發展的需求與動力。
凌陽公司生產的SPCE061A作為一種16位新型單片機,自帶語音系統,為實現玩具智能化提供了便捷,滿足了智能化的需求。同時,由于單片機作為一種簡單計算機系統,起步較低、上手快,很適合電子愛好者作為起步學習,是掌握單片機應用的好材料,而智能玩具車作為一種可實現的趣味性機器人,不失為一種學習的好方式,是進一步提高軟件與硬件綜合運用與實現的好途徑。
本文采用凌陽單片機SPCE061A作為語音控制玩具車的核心。利用它自身豐富的資源與電機驅動相結合,設計出一款語音控制智能玩具車。
根據需求,要實現語音對玩具車的控制,即至少通過人說話的聲音實現控制玩具車的前進、后退、左轉、右轉等基礎變換運動的功能。本設計的后續開發都是建立在這些基礎之上的。
該方案采用直接加載凌陽16位單片機SPCE061A語音控制模塊,其原理框圖如圖1所示。

圖1 原理框圖
人的聲音通過話筒濾波之后,直接進入單片機SPCE061A內嵌的ADC模塊,由CPU處理后通過總線將信號傳至內嵌的語音處理模塊,最后通過DAC模塊輸出,再經功率放大器放大之后就可以聽到剛才的聲音。在聽到聲音的同時CPU也將信號通過I/O口輸出相應信號到電機控制板,驅動玩具車按照所給的指令進行運動。而系統信號處理板中的各功能模塊有凌陽61板可借鑒,很大程度上減小了開發難度與開發周期。
一方面該方案由于有凌陽61板可借鑒,效果較好,同時又大大縮短了開發周期,只需認真分析模塊的調用、I/O口的分配及軟代碼的開發,相對來說較容易實現。另一方面該方案采用1個電機控制方向,能夠使玩具車的運行狀況更加靈活、穩定,但精確度不高。
車體機械構造方案主要解決玩具車車輪前后左右方向上受力問題。由于系統控制方案已確定后輪為驅動輪,前輪為方向輪。因此,對于后輪,運動中輪與軸的交點與車體相對靜止,即相對位置是唯一的,只需驅動電機通過齒輪提供即可。對于前輪,要實現左右旋轉,在運動中輪與軸的交點與車體相對位置就會發生變化,要確保在它變化時仍然受方向電機的控制。
以上方案通過2個彈簧,在電機沒有施力的情況下可以自動恢復,且彈簧較短,受力可調,解決了所有問題。
系統硬件方面,由于大部分的功能實現都是在61板上完成的,只有電機驅動電路和電源另外設計在一塊獨立的電路板上,不妨稱為驅動板。玩具車的運行原理、驅動電路板的結構和功能實現具體如下:
此次設計的玩具車為4輪結構,由電機控制車輪的運行,后輪提供動力,前輪控制方向。彈簧的作用是使玩具車在沒有力作用的情況下,自動處于直行位置;在連桿和支點的協同作用下實現前輪左右偏移動作。
1)直行:由玩具車的結構分析,在沒有力作用時,彈簧使前輪保持正直狀態(無偏移),此時只需動力電機正轉,玩具車便直行。
2)倒車:倒車動作和前行相反,前輪保持直行狀態,動力電機反轉,玩具車向后運動。
3)左轉:前輪逆時針偏移(規定為正轉),后輪正轉,這時玩具車就會在前后輪共同作用下偏左前進,即左前轉彎。
4)右轉:前輪反偏,后輪正轉,這時玩具車偏右前進。
驅動板主要由電源電路、電機驅動電路和接口電路組成。驅動板電路原理如圖2所示。
1)電源:整個設計中涉及到4個電源信號,即電池電源、61板電源、61板I/O端口電源及驅動板電源。所有電源由電池提供及分配。
2)接口電路:接口電路實現不同板之間的電路連接。通過它為61板提供電源、信號的輸出以及電機的驅動電源。為了以后系統的升級,實現更多更強大的功能,設計中預留了一些接口。

圖2 驅動板原理圖
3)驅動電路:驅動電路由2個NPN和2個PNP構成H橋來實現對電機的驅動控制。
主程序由初始化、訓練操作、識別環節和重訓操作等構成。系統流程如圖3所示。
1)初始化:由于IOB8~IOB11用以使能電機向不同的方向轉動,因此必須將其設置為輸出端。開啟IOB8、IOB9的第二功能,用脈寬調制輸出,可實現對電機的靈活控制。
2)訓練操作:訓練操作主要完成聲音模型的建立。系統上電后就會判斷玩具車是否已訓練,如果還沒有訓練則會要求使用者對其進行訓練操作,在訓練成功后將訓練模型存儲到Flash中。如果已經訓練就會把存儲在Flash中的模型調出裝載到識別器中,等待與使用者發出的聲音命令進行對比。

圖3 系統總體程序流程圖
3)識別環節:如果使用者發出的是名字指令,系統就會停止當前動作進入待命狀態。如果識別結果為動作指令,系統將會語音告知相應動作并執行該動作,相應I/O口輸出相應的電平。
4)重訓操作:系統板設計了一個可重新訓練的觸發按鍵。系統上電后循環掃描該鍵,如果有按鍵按下,系統設置的訓練標志位將會被擦除,并復位。復位后,系統檢測到該標志位為OXFFFF,此時系統便要求進行使用者聲音輸入訓練。
基于SPCE061A單片機的語音控制玩具車設計,通過方案論證得出,SPCE061A在語音控制方面具備很強的優勢。硬件設計采用2個電機,它們分別用來控制方向和作為驅動控制速度,以圖像配文字的方式說明,清晰明了。電機驅動采用NPN、PNP三極管組合構成的H電橋來控制。在軟件方面,主要通過語音識別及其原理,導出語音識別子程序、動作子程序、中斷子程序等構造。由該設計可以看出,語音識別芯片和單片機的組合不僅可以使方案變得簡單清晰,而且成本也會大大降低,同時語音控制玩具車的訓練和識別程度都比較理想,是用語音進行控制的典型設計。
[1]何立民.單片機高級教程:應用與設計[M].北京:北京航空航天大學出版社,2007:7-54.
[2]袁太生.單片機應用技術(凌陽系列)[M].北京:中國電力出版社,2007:23-55.