孟 俊,王祖文,魯序濤,侯君學(xué),蘇小浩,梁 全
(沈陽工業(yè)大學(xué),遼寧 沈陽110870)
由于我國經(jīng)濟的快速發(fā)展,人們的需求不僅僅局限于物質(zhì)方面,對精神文化層次的需求也在日益增加。自學(xué)鋼琴時練習(xí)問題較為棘手,而我們開發(fā)的鋼琴訓(xùn)練評估系統(tǒng)能夠極大地提高鋼琴自學(xué)者的學(xué)習(xí)速度及其學(xué)習(xí)興趣。該系統(tǒng)裝置能夠提高琴鍵檢測的穩(wěn)定性,還能夠?qū)Τ杀具M行縮減,對鋼琴教育事業(yè)的發(fā)展具有一定的意義。所以,我們開展了鋼琴訓(xùn)練評估系統(tǒng)開發(fā)。
該項目結(jié)合當(dāng)前人們的鋼琴學(xué)習(xí)需求,進行嵌入式開發(fā),能夠?qū)τ脩羲辞冁I位置做到實時反饋,通過LED屏幕顯示所按琴鍵的位置,使鋼琴學(xué)習(xí)者有更加直觀、更加便捷的感知。使用光電傳感器,能夠更加快捷地對琴鍵信息進行反饋,能夠更加高效地使鋼琴學(xué)習(xí)使用者看見自己所按琴鍵位置,對鋼琴初期學(xué)習(xí)者有一個良好的用戶體驗。
對于整個鋼琴訓(xùn)練評估系統(tǒng)來說,光電傳感器用于采集琴鍵的主要信息,將其反饋的電壓信號傳輸給單片機,讓單片機在現(xiàn)有數(shù)據(jù)下,進行數(shù)據(jù)的處理以及運算,是整個鋼琴訓(xùn)練評估系統(tǒng)數(shù)據(jù)來源。
在整個鋼琴訓(xùn)練評估系統(tǒng)正常運行的過程中,stm32單片機起到了至關(guān)重要的作用。stm32單片機主要用于光電傳感器的數(shù)據(jù)收集,將收集到的數(shù)據(jù)進行整理和分析,然后通過串口上傳到LED屏幕中去,給用戶帶來交互式的體驗,確保各項功能正常使用,以及實現(xiàn)基本的運算處理功能。
起到跟用戶之間進行數(shù)據(jù)交互的作用,能夠?qū)纹瑱C處理的數(shù)據(jù)進行實時顯示。當(dāng)用戶想要進行功能的實現(xiàn)時,可以通過觸摸的方式使用戶的指令傳遞到單片機上,讓用戶和鋼琴訓(xùn)練評估系統(tǒng)進行互動,從而增加用戶的體驗感。
鋼琴訓(xùn)練評估系統(tǒng)裝置設(shè)計最終以結(jié)構(gòu)的形式呈現(xiàn)出來。鋼琴訓(xùn)練評估系統(tǒng)安裝在鋼琴的上方,當(dāng)用戶進行鋼琴練習(xí)時,鋼琴訓(xùn)練評估系統(tǒng)裝置需要穩(wěn)定可靠的運行,才能夠使用戶在正常演奏鋼琴時,還能夠根據(jù)鋼琴訓(xùn)練評估系統(tǒng)反饋的信息,進行鋼琴演奏的相關(guān)訓(xùn)練。因此,在鋼琴訓(xùn)練評估系統(tǒng)機械裝置進行建模時,需要遵循以下原則:
(1)盡可能地減小檢測裝置的寬度,給用戶最大的演奏空間,讓用戶能夠在正常使用鋼琴的同時,還能夠配合鋼琴訓(xùn)練評估系統(tǒng)進行鋼琴相關(guān)的學(xué)習(xí)和訓(xùn)練。
(2)裝置的整體需要跟鋼琴琴鍵的尺寸相符合,使鋼琴訓(xùn)練評估系統(tǒng)能夠很好地適用于當(dāng)前市場上絕大部分型號的鋼琴。
(3)裝置造型融入長方體的設(shè)計元素,整體結(jié)構(gòu)美觀,簡單。在檢測琴鍵時,裝置對琴鍵的狀態(tài)能夠快速反應(yīng),保證其檢測的準(zhǔn)確性。
(4)整體裝置要拆卸和安裝方便,在日常維護中更加方便、快捷。
(5)系統(tǒng)中所有部件要設(shè)計合理,從而保證該系統(tǒng)有較高的可靠性。
(6)平衡該裝置的加工成本和精確度。
如圖1、圖2所示,鋼琴訓(xùn)練評估系統(tǒng)的基本機械結(jié)構(gòu)主要由1上板、2后板、3光電傳感器、4大擺塊、5小擺塊、6彈簧片構(gòu)成。圖1給出了鋼琴訓(xùn)練評估系統(tǒng)的基本機械結(jié)構(gòu)示意圖。上板主要用于電路板的存放和光電傳感器線路的布置。使整個裝置的電路布置能夠更加簡潔,防止用戶誤操作,從而導(dǎo)致線路的斷裂、損壞等,帶來一些不必要的風(fēng)險。后板主要用于LED屏幕的安裝和放置,進行孔位的布置,使用戶能夠更加直觀地看到LED屏幕的實時信息,以及用戶進行相關(guān)的模式設(shè)置操作等。光電傳感器主要用于檢測大擺塊以及小擺塊,當(dāng)琴鍵按下,大擺塊或小擺塊下落,光電傳感器感受到變化,反饋高低電平信息給單片機,單片機進行相關(guān)數(shù)據(jù)的處理。大擺塊用于遮擋光電傳感器,能夠通過物理方式給光電傳感器傳遞信息,將白色琴鍵的實時信息傳遞給單片機,大擺塊在整個系統(tǒng)中起到關(guān)鍵的作用。小擺塊用于黑色琴鍵的感知,因為黑色琴鍵區(qū)別于白色琴鍵,表面積較小,所以設(shè)計小擺塊的體積要區(qū)別于大擺塊,對于精度有一定的要求,反饋黑色琴鍵的信息。
圖1 鋼琴訓(xùn)練評估系統(tǒng)的基本機械結(jié)構(gòu)示意圖
圖2給出了鋼琴訓(xùn)練評估系統(tǒng)的基本機械結(jié)構(gòu)側(cè)面示意圖。彈簧片用于給擺塊增加外力,因為擺塊的質(zhì)量分布比較均勻,僅靠重力的作用不能夠使其進行正常下落,反應(yīng)也有所延遲,所以采用彈簧片的方法來給大小擺塊增加外力,能夠使擺塊更加快速地對鋼琴琴鍵進行反應(yīng)。
圖2 鋼琴訓(xùn)練評估系統(tǒng)的基本機械結(jié)構(gòu)側(cè)面示意圖
系統(tǒng)的主要功能是檢測琴鍵的狀態(tài),通過單片機進行信息的接收,然后將數(shù)據(jù)進行整合、處理,然后將用戶所需要的信息傳遞到LED屏上,與用戶進行交互。所以,進行琴鍵檢測的主要傳感器是安放在大小擺塊上方的光電傳感器。除此之外,還有電路設(shè)計的關(guān)鍵部分——穩(wěn)壓電路,能給整個芯片和LED屏提供穩(wěn)定的電壓,還能夠通過轉(zhuǎn)換,給芯片提供5V電源。穩(wěn)定性差的電路會導(dǎo)致整個系統(tǒng)的故障性升高,甚至還會燒毀整個電路的大部分模塊。為了保證調(diào)試的流暢和信息的傳輸,外圍電路還包括了一些通信模塊,比如JTAG、TTL和USART通信。最終所有的交互信息會傳遞到CPU主控芯片上進行處理,芯片的硬件電路方框圖如圖3所示。
圖3 系統(tǒng)硬件電路方框圖
市面上電路板有單面板和雙面板,器件裝配形式有插件式和貼片式。雙面板可以使器件在電路板兩側(cè)都放置電路原件,貼片式器件的大小都小于插件式。由于琴鍵檢測系統(tǒng)要求電路板盡可能的小,為節(jié)省空間,選擇雙面板貼片形式。由于封裝電路的外殼內(nèi)表面積為336mm×578mm,表面積比較小,設(shè)計的電路板大小為334mm×576mm。
使用AMS1117線性穩(wěn)壓芯片,減少電源紋波,提高電源質(zhì)量。為了減少電源環(huán)路電阻,加粗電源線寬度。如果接地線太細,接地電位將隨電流的變化和信號頻率的變化而變化,使噪聲加大,嚴(yán)重時將引起自激。加粗接地線。同時,為了提高抗噪聲能力,把數(shù)字電路系統(tǒng)的接地構(gòu)成閉環(huán)路。為了減少模擬電路對數(shù)字電路的影響,提高系統(tǒng)的穩(wěn)定性,在控制芯片的每一個電源引腳都配置一個去耦電容,且靠近引腳擺放,充分發(fā)揮其作用。布線設(shè)計完成后,檢查布線設(shè)計符合設(shè)計者所制定的規(guī)則。該系統(tǒng)設(shè)計的電路板如圖4。
圖4 系統(tǒng)硬件電路板圖
本系統(tǒng)主要采用光電傳感器來采集信息,光電傳感器感知琴鍵按下,光電傳感器將高電平或低電平信號,通過電路系統(tǒng)反饋給單片機的普通IO口,單片機進行數(shù)據(jù)處理。單片機通過編程,將采集的數(shù)據(jù)進行匯總和處理。單片機將數(shù)據(jù)進行處理之后,將數(shù)據(jù)傳輸給LED屏幕,通過LED屏幕進行信息的反饋。當(dāng)用戶通過LED屏幕進行操作時,LED通過USART通信的方式,將操作信息反饋給單片機,單片機進行相關(guān)的程序處理。該系統(tǒng)采用的是STM32C8T6芯片,主要通過C語言進行開發(fā),采用keil軟件進行編程。匯編語言雖然效率高,但是其可讀性較差,ST官方為了給開發(fā)者提供良好的環(huán)境,提供了非常豐富的庫函數(shù),大大縮短了程序的開發(fā)周期并提高了編程效率。此系統(tǒng)的程序運行框圖如圖5所示。
圖5 系統(tǒng)程序運行框圖
根據(jù)系統(tǒng)程序運行框圖,頂層封裝設(shè)計如下:
本鋼琴訓(xùn)練評估系統(tǒng)能夠?qū)崿F(xiàn)鋼琴按鍵的實時反饋,通過單片機編程記錄所彈下的音符并將數(shù)據(jù)顯示到LED屏幕上,還能在存儲卡中進行琴譜的存儲,給使用者帶來了極大的便利。
3.4.1 數(shù)據(jù)記錄功能
通過LED屏幕對于鋼琴琴鍵的信息進行有效、及時的反饋和采集。使用者能夠通過LED屏幕進行觸摸操作,進行相關(guān)功能的設(shè)置及使用。用戶想要進行鋼琴琴鍵的數(shù)據(jù)記錄時,點擊數(shù)據(jù)采集按鍵即可。單片機會根據(jù)LED屏幕通過串口通信傳遞的記錄信息,進行數(shù)據(jù)的記錄及處理,等待用戶停止數(shù)據(jù)記錄的指令。
用戶完成點擊停止數(shù)據(jù)記錄的指令后,所采集的數(shù)據(jù)以十進制的形式顯示在屏幕上,用戶可以較為直觀地對照演奏的琴譜和采集的按鍵信息,進行鋼琴的學(xué)習(xí)和練習(xí)。
相較于市場上的其他鋼琴琴鍵檢測裝置,本系統(tǒng)不僅僅通過LED的形式進行琴鍵信息的反饋,還能夠利用單片機平臺進行數(shù)據(jù)的采集及處理,給鋼琴學(xué)習(xí)者帶來很大的便利。
3.4.2 存儲琴譜功能
通過存儲卡,能夠?qū)⒆约盒枰葑嗟那僮V上傳到系統(tǒng)中,用戶可以根據(jù)自己的需要,進行琴譜的提取,也能夠跟自己演奏的數(shù)據(jù)進行對照,從而更加完善地進行鋼琴演奏的學(xué)習(xí)。
用戶也可以在網(wǎng)絡(luò)上進行琴譜的下載,將自己需要練習(xí)的琴譜下載到存儲卡中,利用LED屏幕進行琴譜的切換和調(diào)取,不僅方便了用戶的使用,還能夠減少紙張的使用,為環(huán)保事業(yè)做出一定的貢獻。
處理器與外部設(shè)備進行通信有兩種方式——并行通信和串行通信。串口通信采用串行通信方式,其傳輸原理為數(shù)據(jù)按位順序傳輸,其優(yōu)點是占用引腳資源少,由于該系統(tǒng)需要利用的IO口較多,故采用串行通信的方式比較合適。
串行通信按照數(shù)據(jù)傳送的方向,又分為單工、半雙工、全雙工,全雙工允許數(shù)據(jù)同時在兩個方向上傳輸,因此,全雙工通信是兩個工通信方式的結(jié)合,它要求發(fā)送設(shè)備和接收設(shè)備都有獨立的接收和發(fā)送能力。
串行通信采取全雙工的通信方式,不僅可以提升通信的效率,還能夠最大限度地提升用戶與設(shè)備的交互性。
在目前國內(nèi)的市場中,很多嵌入式的小型設(shè)備,都采用單片機的編程方式,而其中的串口通信,得到了良好的應(yīng)用和拓展。本系統(tǒng)采用的是根據(jù)ARM系列Cortex-M3架構(gòu)的串口通信協(xié)議,其優(yōu)點是穩(wěn)定性高、傳輸數(shù)據(jù)速度快,針對本系統(tǒng)非常適用。利用串口通信協(xié)議,能夠很好地將單片機采集的數(shù)據(jù)實時更新到LED屏幕上,使用戶得到更加便捷、更加直觀的體驗。
本文基于光電傳感器的鋼琴訓(xùn)練評估系統(tǒng)進行了研究,從機械結(jié)構(gòu)設(shè)計、電路布局、程序控制方面進行了合理的論述。大大提高了琴鍵檢測的及時性和有效性,增加的LED屏幕能夠?qū)崟r地跟用戶進行交互,提高了人機交互的體驗感和便利程度。其中的琴鍵數(shù)據(jù)記錄和琴譜的存儲,能夠給用戶帶來更好的體驗。該系統(tǒng)對于鋼琴教學(xué)的發(fā)展也有一定的意義。