文/宋雨露 朱清慧
智能機器人是一個集多功能于一體的控制系統,而音樂機器人是通過研發者寫入控制程序,能夠實現自動演奏音樂的一類仿真機器。本設計以單片機為控制核心,通過驅動步進電機和電磁鐵實現2-3種敲擊木琴的演奏模式,即基于傳感器的手動即時演奏、基于藍牙通訊的手機APP的片段演奏、基于單片機的整曲演奏。
簡易鋼琴裝置的設計需要單片機、步進電機、步進電機驅動、紅外傳感器模塊、藍牙模塊、開關電源、限位開關、電磁鐵、繼電器模塊、小木槌和木琴等器件。簡易鋼琴的硬件控制框圖如圖1所示。
(1)根據簡易鋼琴裝置控制系統小巧輕便的特點,考慮到系統控制功能的實現情況,選擇STC89C52RC單片機作為裝置的主控芯片。
(2)電機主要用來帶動木錘作平行于琴鍵的定位運動,需要能準確啟、停,且要求運行平穩。本設計根據這些要求選擇步進電機42BYG進行驅動,選用TB6600步進電機驅動器,實現正反轉控制和速度控制。
(3)電磁鐵在本裝置中用來控制木錘的上下敲擊動作,選擇Makeblock公司的一款電磁鐵;另外還給電磁鐵配備了繼電器模塊實現單片機對電磁鐵的控制。
(4)手指檢測傳感器用來檢測到手指落下的位置并能發送給單片機從而驅動木錘敲擊實際的鍵盤,要具有一定的抗干擾能力和較高的靈敏度,選擇7組紅外單向反射式傳感器,有效距離2cm-30cm可滿足設計所需,可通過調整電位器旋鈕改變檢測距離。
(5)根據要求要實現通過手機虛擬鍵盤彈奏鋼琴并由藍牙模塊發送給單片機,從而控制鋼琴自動演奏。選擇一款常用的HC-05藍牙模塊作為地面通訊站。
根據系統硬件框圖和所選擇的器件,在Proteus中將步進電機、步進電機驅動、電磁鐵、繼電器、紅外傳感器、藍牙模塊、限位開關等分別與單片機連接,繪出系統整體電路原理圖如圖2所示。其中單片機的TXD和RXD與串行模擬終端連接,以進行藍牙通訊仿真調試。
通過藍牙串口助手可以連接藍牙串口模塊進行通信,實現手機串口連接。如圖3為藍牙串口助手的主界面圖,在這里可以進行模式的選擇,和藍牙模式的控制,在使用這些按鍵的時候首先要對地面站進行設置,地面站會發送十六進制的數給單片機以完成操作。如圖4為藍牙通訊地面站設置圖。
本設計主要是完成了一個初始化,兩個子程序,三種控制。如圖5為系統的主流程圖。系統初始化主要包括定時器初始化,計數器初始化,變量初始化,中斷初始化。藍牙通訊控制程序:主要完成手機與藍牙的通訊連接,并可以用手機選擇控制方式和演奏。紅外感應隨動控制程序是先初始化,然后跟隨手指敲擊鍵盤,系統完成演奏。
在Keil軟件中對程序流程圖對單片機進行了程序編寫和編譯,并導入Proteus中進行了軟、硬件交互仿真,完全實現了系統功能。
本裝置將木琴固定在最前端,對應木槌的位置放置軌道,軌道上有步進電機(四條線接步進電機驅動器),電磁鐵(兩條線:一條線接開關電源COM,一條線接繼電器COM),限位開關(上端口接+5V,下端口接P1.3);接著固定7個紅外傳感器(VCC接+5V母線,GND接地線,OUT分別連接P0.0-P0.6),繼電器(輸入:DC+接開關電源+20V,DC-接地,IN接P1.2;輸出:COM接電磁鐵);然后是開關電源(輸入220V,輸出20V),步進電機驅動器(輸入:DIR+,ENA+,Pul+接+5V,DIR-接P1.1控制正反轉,Pul-接P1.0控制速度,輸出:分別接步進電機的四條線),最后固定單片機開發板,把藍牙模塊連接上去(RXD接P3.1,TXD接P3.0,VCC接+5V,GND接地)。如圖6所示為簡易鋼琴裝置調試圖。

圖1:簡易鋼琴的硬件框圖

圖2:系統整體連線圖

圖3:藍牙串口助手的主界面圖

圖4:藍牙通訊地面站設置圖
首先測得琴鍵之間的距離,計算出一個脈沖運轉的距離為0.002cm。接著根據同相相阻的原理,確定步進電機的接線。然后從限位開關的三個端口選出兩個端口接入電路,電機反轉直到機械手臂碰到限位開關停止,說明是正確的接法。最后用電源給繼電器供電,發現繼電器動作,但是電磁鐵無法正常吸合,后來改用+12V供電,電磁鐵才能正常吸合。
在編寫藍牙控制程序的時候計算波特率,把11.0593Mhz誤作12Mhz的,這樣再利用51波特率設置軟件計算出計數器初始值設置是錯誤的,造成了敲擊時候的混亂。在敲擊程序里面,設置延時敲擊,系統通過提高電機速度、延時敲擊來平衡音符之間時間間隔。由實際情況定義電動機移動一格子需要的脈沖,取1210個脈沖每一格。

圖5:系統的主流程圖

圖6:簡易鋼琴裝置調試圖