




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 清華大學 基于LABVIEW鋼琴界面設計課程名稱: LABVIEW程序設計 題 目: LABVIE鋼琴界面設計系統 院 系: 計算機學院 組 名: 張大偉 組 員: 張大偉 授課教師: 范 祥 林 日期:2018年 6 月 10 日 本實驗是基于LABVIEW軟件及mySQL制作的按鍵鋼琴設計內容摘要整個裝置可以完成實時彈奏,實時記錄彈奏樂譜;還可以按照先前記錄下來的樂譜播放鋼琴曲。系統界面采用了擬物化的設計風格,古風字體,后現代化的虛擬按鍵。設計總體思想是利用mySQL的8個數字I/O通道作為琴鍵輸入,通過LABVIEW編程合成出波形數據,經過D/A
2、變換后通過Audio Out端口放大輸出的。 關鍵詞:LabVIEW mySQL 按鍵鋼琴 擬物化 第一章 虛擬鋼琴設計的目的與意義 LABVIEW在測控領域的應用非常廣泛。有別于其他編程語言其特點、應用大致可分為如下幾個方面:測試測量:LABVIEW最初就是為測試測量而設計的,因而測試測量也就是現在LABVIEW最廣泛的應用領域。經過多年的發展,LABVIE在測試測量領域獲得了廣泛的承認。至今,大多數主流的測試儀器、數據采集設備都擁有專門的LABVIEW驅動程序,使用LABVIEW可以非常便捷的控制這些硬件設備。同時,用戶也可以十分方便地找
3、到各種適用于測試測量領域的LABVIEW工具包。這些工具包幾乎覆蓋了用戶所需的所有功能,用戶在這些工具包的基礎上再開發程序就容易多了。有時甚至于只需簡單地調用幾個工具包中的函數,就可以組成一個完整的測試測量應用程序。快速開發:根據筆者參與的一些項目統計,完成一個功能類似的大型應用軟件,熟練的LABVIEW程序員所需的開發時間,大概只是熟練的C程序員所需時間的1/5左右1。所以,如果項目開發時間緊張,應該優先考慮使用LABVIEW,以縮短開發時間。仿真:LABVIEW包含了多種多樣的數學運算函數,特別適合進行模擬、仿真、原型設計等工作。在設計機電設備之前,可以先在計算機上用。 LABVIEW搭建
4、仿真原型,驗證設計的合理性,找到潛在的問題。在高等教育領域,有時如果使用LABVIEW進行軟件就可以達到同樣的效果,使學生不致失去實踐的機會。跨平臺:如果同一個程序需要運行于多個硬件設備之上,也可以優先考慮使用LABVIEW。LABVIEW具有良好的平臺一致性。LABVIEW的代碼不需任何修改就可以運行在常見的三大臺式機操作系統上:Windows、Mac OS及 Linux。2除此之外,LABVIEW還支持各種實時操作系統和嵌入式設備,比如常見的PDA、FPGA以及運行VxWorks和PharLap系統的RT設備。 除此之外LABVIEW利用自身的附加模塊可實現集
5、成部署硬件,信號處理,分析和連接控制與仿真數據管理,記錄與報表生成開發工具和驗證,應用發布等機能,因此LABVIEW是一門應用廣泛,軟硬件結合簡易的一門圖形化編程語言,在工業、測試、應用開發等方面可發揮重要作用,這次課程設計正是讓我們初步認識這個系統的機會,可以為我們在以后的相關領域的個人發展中,起到一個墊腳石的作用。第二章 基于LABVIEW虛擬按鍵鋼琴的設計與調試2.1總體設計要求:利用mySQL的8個數字I/O通道作為琴鍵輸入,通過LABVIEW編程合成出所需頻率的聲音,經過D/A變換后通過Audio Out端口放大輸出。而且可以同時按下兩個或更多的按鍵,輸出的聲音也
6、是這些聲音的疊加。3仿照電子琴功能,還可以錄入彈奏的聲音并可以控制其播放已記錄的聲音。設計電子琴,首先得用播放聲音之類的控件,在選擇播放波形還是播放放聲音過程的控件時,我選用了播放波形的控件,原因是因為波形的頻率容易設置,能讓聲音聽起來更接近,而播放音頻文件,在網上很難找到相應的音頻,而自己錄制的話,由于條件有限,很難完成,就選用了播放波形控件。先試著讓一個按鍵發出聲音,選用波形產生控件,可設置聲音頻率。4然后選擇播放波形控件如圖將其與對應的對應的頻率相連接就能實現聲音的產生如所示,右擊信號仿真器的頻率,創建一個輸入控件,讓后將控件轉換為常量,在其中對其輸入對應的頻率。2.2設計運行及調試:實
7、驗運行之后可實現如要求所示的所有內容,另外還添加了分區彈奏播放的功能(利用8個按鍵共可彈奏24個音階。5這就需要將24個音階分成三個區域按照要求選定區域,實時彈奏和播放聲音記錄文件時均可使用)現在就運行效果進行品評:程序運行后。 需等待幾秒才可輸入按鍵;同時靈敏度不強按鍵時間較短或者按鍵力度較輕均不能觸發頻率發聲圖給其設置對應的按鍵,選擇按鍵的屬性如所示確定按鈕屬性設置可以設置這個按鈕的大小跟顏色,使控件看起來像一個電子琴的琴鍵,設置好后可以保存這個控件,控件如所。6格式的一個文件,以免設置別的按鍵時跟此次所設定的參數不一樣,而導致電子琴的琴鍵看起來不整齊,而影響美觀。調試過程中遇到幾項問題,
8、均得到一定程度的解決:用公式產生波形在進行濾波后得到的聲音效果和鋼琴音差距極大,而且還有尾音較刺耳。所以還是決定制作鋼琴的音樂文件來作為模擬輸入的波形。3效果好很多,但作為代價代碼運行速率有所降低。作為鋼琴界面另外一個關于聲音的問題是聲音合成的問題,波形只能相同采樣率才能合成,因此需要多個按鍵同時按下的時候其他沒有按下的也需要作為空白進行合成。這里解決方法是讀取空白聲音文件。2.3前面板界面設計在設計完電子琴單按鍵發聲后,需要把每個按鍵有順序的排布,而每個按鍵發聲都是一個事件,所在在程序的后面板需要把他們放在時間結構中,在事件結構中對每個按鍵發聲進行設置。選擇事件結構。7事件結構的選擇在程序中
9、選擇事件結構,然后將本分支所處理的單按鍵放入該分支頁面中,然后進行設置,由于電子琴的琴鍵通常需要按下去才會發出聲音,所以本分支出發的條件就設置為當鼠標按下時觸發。關于TDMS數據采集,tdms是實時采集數據并寫入。因此不必將其置于while循環之中。關于讀取,按照先前的想法是依次讀出數據,由于擁有LABVIEW程序的電腦比較少,也就是說LABVIEW這個軟件并不是很普及。8對于我來說,我希望自己的VI程序能在別人的計算機上運行,對此也就有了設計中的打包生成獨立文件的一個環節。 首先打開我們的程序VI中的程序菜單中項目選項中選擇新建項目。后來發現不能實現依次讀出。這里利用數組暫存的功能
10、先將數據讀出到數組,再將其間隔時間按照每一列讀出。第三章 基于LABVIEW便攜式鋼琴的系統設計3.1 系統總體設計函數選板子選板:函數選板編程子選板功能模板就是LABVIEW將傳統儀器上的各種測試功能、信號分析文件操作以及輸入/輸出(1/0)接口設備的驅動做成可供直接調用的庫函數。9使用時只需根據預完成的功能與操作,從子模板上選擇相應的“圖標”放在流程圖編輯窗口中相應的位置上即可。該模板上的每一個頂層圖標都表示一個子模板(如圖所示)。它可以用Windows菜單下已經提意見有條件的Show Funetionspalette功能打開它,也可以在框圖程序窗口的空白處點擊鼠標右鍵以彈出功能
11、模板。而且它只有打開了框圖程序窗口后才能出現。它包括結構子模板、數值運算子模板、布爾邏輯子模板、字符串運算子模板、數組子模板、類子模板、比較子模板、時間和對話框子模板、文件輸入/輸出子模板、儀器控制子模板、儀器驅動程序庫、數據采集子模板、信號處理子模板、數學模型子模塊、圖形與聲音子模塊、通訊子模板、應用程序控制子模塊、底層接口子模塊、文檔生成子模板、示教課程子模板、用戶自定義的子Vl模板和選擇VI子程序等子模板。系統總體流程框圖: 系統總體設計是系統總體可實現自由彈奏,錄制樂曲,播放樂曲,調整播放鍵盤區域的功能。10在設計完電子琴單按鍵發聲后,需要把每個按鍵有順序的排布,而每個按
12、鍵發聲都是一個事件,所在在程序的后面板需要把他們放在時間結構中,在事件結構中對每個按鍵發聲進行設置。選擇事件結構。11事件結構的選擇在程序中選擇事件結構,然后將本分支所處理的單按鍵放入該分支頁面中,然后進行設置,由于電子琴的琴鍵通常需要按下去才會發出聲音,所以本分支出發的條件就設置為當鼠標按下時觸發。事件結構設置。3.2模塊設計 程序的主要功能為預設聲音文件的路徑、音量大小、播放、暫停、停止和播放聲音文件。先來介紹設置聲音文件的路徑,在前面中放入一個下拉列表,在下拉列表的屬性中的編輯項中所示設置對應的文件名字。12編輯項設置在后面板中將下拉列表與條件結構相連,條件結構中添加一個分支
13、,由于下拉列表的項值都是唯一的,所以將其與條件結構的分支相對應。然后在函數選板中選擇創建路徑的控件徑上選擇連接當前VI路徑,在基路,在條件結構中與其想對應的項值中放入字符串常量,在其中輸入所對應的歌名,前面的是LABVIEW中當前VI路徑的一種形式。13整個路徑設置所示。獲取到聲音文件將他連接到聲音文件信息上,聲音文件信息如圖所示。文件信息控件介紹路徑輸出給讀取聲音文件,將聲音文件連接到配置聲音輸出中,對其音頻文件進行操作,例如設置聲音大小,播放、暫停與停止功能的實現,就是在這部分完成的。鋼琴界面主面板設計 主結構分為上下部分,上面是曲譜,下面是彈奏部分。可以選擇彈奏/播放/錄音等功能。全鍵盤
14、24個按鍵,可以通過mySQL輸入彈奏其中的8個,再通過鍵盤 從按鍵鍵盤輸入mySQL8通道數字信號,寫入一維數組。再用索引將8個數字信號分別鏈接到聲音讀取判斷結構。例如:輸入的是00100100,8個判斷結構中第三個和第六個取真,其他取假。把其中的聲音進行合成,用mySQL輸出的音頻信號。鋼琴數據輸入模塊每隔0.5s記錄一次采樣的數據信號,分8通道記錄名稱為no1-no8。錄音開關這個布爾按鈕控制錄音通斷。 前面板的控件一定要按次序排布為電子琴的樣子,如圖3.9所示如從左到右白健依次是低音、中音、高音的1 2 3 4 5 6 7,黑
15、鍵也是依次是低音、中音、高音的半音階。設置后的電子琴按鍵3.4播放聲音文件播放聲音文件是本次設計中帶的一個小功能,主要是播放自己添加在程序中的幾首歌曲,在真實的電子琴中,按下某個特定的鍵,可以演奏已經預設好的音樂,甚至是伴奏,但播放聲音文件跟這些功能是基本一致的,由于在電腦上彈奏歌曲必定不如在真實的電子琴上進行彈奏,所以也沒有必要用伴奏之類的設置,而是將其改進為播放歌曲。程序的主要功能為預設聲音文件的路徑、音量大小、播放、暫停、停止和播放聲音文件。先來介紹設置聲音文件的路徑,在前面中放入一個下拉列表,在下拉列表的屬性中的編輯項中如圖所示設置對應的文件名字。編輯項設置在后面板中將下拉列表與條件結
16、構相連,條件結構中添加一個分支,由于下拉列表的項值都是唯一的,所以將其與條件結構的分支相對應。 鋼琴數據輸出模塊 考慮到讀取tdms文件不能順序讀出。這里設置其先讀入一個二維數組;再將數組中的數按照列的順序讀出來;并且可以循環播放該數據記錄文件內容。另外附加的如鍵盤區選中,實時曲譜等功能在這里不再一一介紹。用公式產生波形在進行濾波后得到的聲音效果和鋼琴音差距極大,而且還有尾音較刺耳。所以還是決定制作鋼琴88音的音樂文件來作為模擬輸入daq的波形。效果好很多,但作為代價代碼運行速率有所降低。 另外一個關于聲音的問題是聲音合成的問題,波形只能相同采樣率才能合成,因此需要多個按鍵同時按下的
17、時候其他沒有按下的也需要作為空白進行合成。這里解決方法是讀取空白聲音文件,再進行疊加關于TDMS數據采集,tdms是實時采集數據并寫入。因此不必將其置于while循環之中。關于讀取,按照先前的想法是依次讀出數據,后來發現不能實現依次讀出。這里利用數組暫存的功能先將數據讀出到數組,再將其間隔時間按照每一列讀出。第四章 LABVIEW收獲體會和總結展望從此次課題中的論文編寫和LABVIEW的設計制作全都是趙家龍一個人完成的。我學到了很多東西,對LABVIEW的理解又上升了一個檔次,從一個什么都不懂的小白到現在能自己創作的LABVIEW的設計者。在能實現一個不錯的作品。本次畢設是用LABV
18、IEW設計一款電子鋼琴,畢業設計階段是一個非常難得的理論與實踐相結合的機會,通過本次的設計,讓我擺脫了一直都是紙上談兵的現狀,實際結合的鍛煉了我運用所學的專業基礎知識,在老師的指導幫助下能基本獨立的完成一款軟件的編寫,在起初開始拿到題目正式做設計時,突然發現有股力不從心,無從下手的感覺,但隨著老師的第一次分析與指導,讓我又看到希望,理清了頭緒,明確了目標。學會了應用各種程序結構,對聲音的輸入,輸出,文件的寫入與讀取都有了自己的認識。在程序設計的過程中,也碰到了不少的問題,通過查找LABVIEW幫助,查看工具書,上網查找資料和cnki上的論文對問題的解決有了自己的方法。當然,有些問題確實也沒有得
19、到實質上的解決,比如主從vi的并行,比如對某些事件的響應順序,再比如數字濾波器的具體應用與選擇方法等等沒有找到好的解決辦法,這個都是在以后的學習過程中要改進的地方。當然,在短時間內想要做出一個非常復雜的vi還是很不現實的,知識的積累需要一個過程。對于一個問題,總會有各種各樣的方法,這個都是在以后的學習過程中要改進的地方。當然,在短時間內想要做出一個非常復雜的vi還是很不現實的,知識的積累需要一個過程。對于一個問題,總會有各種各樣的方法,前提是知識要豐富,有足夠的認識才行,所以學習一門知識系統點也是很有必要的。 對條件結構的使用更加嫻熟,對屬性節點,層序結構使用更為熟練,電子琴本身項目的原因也讓我們擴充了多方面的知識,不論是從編程,理論知識,設計,其他軟件使用方面都對我們有所鍛煉,但是即便如此,我們的程序仍有很大的提升空間,比如,我們可以擴展無線控制模塊,MATLAB聲音處理模塊,等更多系統的擴展,但是這也需要我們積累更多的知識之后才能完成,最后感謝老師對我們的指導與幫助。參考文獻1虛擬儀器的新動向.國外電子測量技術,2008 2林正盛,虛擬儀器技術及其應用.微型機與應用,2015 3
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025汽車買賣合同的范本
- 2025年金屬緊固件、金屬釘項目建議書
- 2025年顯示、記錄系統合作協議書
- 2025居間服務合同在貸款公司間的應用
- 2025年婦幼保健院康復試題
- 2025年聚烯烴及改性材料合作協議書
- 2025年高性能鐵氧體一次料合作協議書
- 2025年碳二餾份加氫催化劑合作協議書
- 2025年雕刻雕銑設備控制系統合作協議書
- 2025年劇裝道具相關工藝美術品項目建議書
- 各層次養老機構定價方法及案例
- 二方審核計劃
- DB62∕T 3176-2019 建筑節能與結構一體化墻體保溫系統應用技術規程
- 優秀病例演講比賽PPT
- 吉林省礦產資源概況及分布
- 最新肺結核診斷和治療指南
- 公司員工基本禮儀培訓ppt完整版課件
- 工程項目綜合應急預案(通用版)
- 半橋LLC諧振變換器設計與仿真
- 常見食物的性味歸經附表
- 城市橋梁工程竣工驗收
評論
0/150
提交評論