李明媚 董麗元 唐磊磊 李松
摘 要:為了提高學(xué)生對(duì)設(shè)計(jì)類課題的研究興趣和設(shè)計(jì)質(zhì)量,以生活中常用的電子產(chǎn)品功能為設(shè)計(jì)素材,選用圖形化編程語言LabVIEW為仿真平臺(tái),設(shè)計(jì)了集天氣預(yù)報(bào)、電子相冊(cè)、音樂播放、數(shù)字鐘于一體的多功能LED顯示系統(tǒng)。該系統(tǒng)通過訪問天氣預(yù)報(bào)Web服務(wù)獲取城市天氣數(shù)據(jù),由動(dòng)態(tài)生成的數(shù)組實(shí)現(xiàn)圖像的切換,調(diào)用Windows Media Player的Active X控件實(shí)現(xiàn)音樂播放,調(diào)用Microsoft Speech Object Library Version 5.4實(shí)現(xiàn)提醒事件播報(bào),將文本插入圖像再轉(zhuǎn)換成矩陣以實(shí)現(xiàn)LED點(diǎn)陣字模的生成,并可根據(jù)使用需求調(diào)節(jié)背景亮度。運(yùn)行結(jié)果表明,仿真系統(tǒng)的各項(xiàng)功能運(yùn)行正常,可用作課程設(shè)計(jì)、軟件及實(shí)物開發(fā)等。
關(guān)鍵詞:LabVIEW;天氣預(yù)報(bào);數(shù)字鐘;多功能LED;點(diǎn)陣字模;語音播報(bào)
中圖分類號(hào):TP391.9文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):2095-1302(2020)09-00-03
0 引 言
數(shù)字鐘、音樂播放器、電子相冊(cè)等是人們生活中極為常用,甚至有些是必不可少的電子產(chǎn)品,其原理相對(duì)簡單,易于理解。LabVIEW從程序界面設(shè)計(jì)、編寫程序代碼到實(shí)現(xiàn)程序功能,使用的都是圖形化的操作方式,圖形比文字又更為直觀,因而LabVIEW比其他編程語言更容易學(xué)習(xí)和使用。
借助LabVIEW平臺(tái)設(shè)計(jì)的多功能LED顯示系統(tǒng),綜合運(yùn)用了邏輯運(yùn)算控制、數(shù)字圖像處理、外部程序調(diào)用等多方面知識(shí),并通過仿真驗(yàn)證了設(shè)計(jì)的合理性,有利于提高學(xué)生的觀察與功能分析能力、設(shè)計(jì)的邏輯思考及仿真實(shí)現(xiàn)能力。
1 系統(tǒng)設(shè)計(jì)方案
多功能LED顯示系統(tǒng)由天氣預(yù)報(bào)、電子相冊(cè)、音樂播放、數(shù)字鐘和亮度調(diào)節(jié)5個(gè)模塊構(gòu)成。系統(tǒng)設(shè)計(jì)流程如圖1所示。數(shù)字鐘模塊內(nèi)的鬧鐘提醒功能會(huì)影響電子相冊(cè)、音樂播放和節(jié)能照明等模塊的運(yùn)行,天氣預(yù)報(bào)模塊則相對(duì)獨(dú)立,不受任何模塊的影響。
2 功能模塊仿真實(shí)現(xiàn)
2.1 天氣預(yù)報(bào)模塊
天氣預(yù)報(bào)模塊主要包括天氣數(shù)據(jù)提取和顯示兩個(gè)部分。
數(shù)據(jù)提取由LabVIEW作為客戶端,通過訪問互連接口中.NET服務(wù)器提供的天氣預(yù)報(bào)Web服務(wù)來實(shí)現(xiàn)[1]。借助天氣預(yù)報(bào)Web服務(wù)可從中國氣象局得到340多個(gè)中國主要城市和60多個(gè)國外主要城市3日內(nèi)的天氣預(yù)報(bào)數(shù)據(jù),且每2.5 h左右會(huì)自動(dòng)更新一次,程序框圖如圖2所示。
利用索引數(shù)組函數(shù)從圖2獲得的數(shù)據(jù)中提取選定城市今明兩日的天氣、溫度和風(fēng)力風(fēng)向信息,并將這些信息以圖片的形式顯示在系統(tǒng)界面上。天氣預(yù)報(bào)模塊程序框圖如圖3(a)所示。天氣情況不變時(shí),條件結(jié)構(gòu)的布爾輸入為真,此時(shí)只顯示一幅天氣圖標(biāo);天氣情況有變,如當(dāng)天的天氣為“多云轉(zhuǎn)晴”,則布爾輸入為假,需要顯示和兩幅天氣圖標(biāo)。由于風(fēng)力風(fēng)向數(shù)據(jù)的文字較多,為了避免顯示不完全,這里根據(jù)字符串長度的不同進(jìn)行了不同字號(hào)的設(shè)定與顯示設(shè)計(jì)。以“天津”為例,天氣數(shù)據(jù)顯示效果如圖3(b)所示。
2.2 電子相冊(cè)模塊
電子相冊(cè)模塊主要包括灰度圖像[2]的隨機(jī)顯示和動(dòng)態(tài)切換兩部分。
灰度圖像的讀取與顯示即是灰度圖像與二維灰度矩陣間的相互轉(zhuǎn)換過程,該過程通過LabVIEW視覺開發(fā)包中的IMAQ ImageToArray和IMAQ ArrayToImage等函數(shù)即可實(shí)現(xiàn)。
灰度圖像間的動(dòng)態(tài)切換是二維灰度矩陣[2]的動(dòng)態(tài)生成過程。該模塊設(shè)置了漸變、水平向右平移和垂直向上平移3種模式。
電子相冊(cè)模塊的程序框圖如圖4(a)所示,第一個(gè)條件結(jié)構(gòu)實(shí)現(xiàn)的是切換模式的隨機(jī)選擇,每運(yùn)行一次,條件結(jié)構(gòu)的輸入會(huì)由第二個(gè)條件結(jié)構(gòu)中的隨機(jī)數(shù)重新賦值以實(shí)現(xiàn)圖像模式的隨機(jī)切換。第二個(gè)條件結(jié)構(gòu)中OUT2是借助屬性節(jié)點(diǎn)實(shí)現(xiàn)二維灰度圖像矩陣的動(dòng)態(tài)輸出。電子相冊(cè)模塊的3種圖像切換效果分別如圖4(b)~圖4(d)所示。
2.3 音樂播放模塊
音樂播放器模塊主要包括播放列表選擇和隨機(jī)音樂播放兩部分,程序框圖如圖5(a)所示。
播放列表選擇可通過枚舉、條件結(jié)構(gòu)等實(shí)現(xiàn)路徑的生成,再利用遞歸文件列表函數(shù)獲得該路徑下所有文件的路徑,并以一維路徑數(shù)組的形式輸出。
隨機(jī)音樂播放先要利用隨機(jī)數(shù)從一維路徑數(shù)組中隨機(jī)選取一條路徑,再調(diào)用Windows Media Player的Active X控件實(shí)現(xiàn)該路徑下音樂文件的播放[3]。運(yùn)行效果如圖5(b)所示。圖5(a)中的“確定按鈕MP3”即為圖5(b)中的圓形音樂播放/停止按鍵。音樂播放狀態(tài)下,條件結(jié)構(gòu)的布爾輸入為真,按鍵為紅色且顯示為“?!?當(dāng)要停止播放時(shí),按下按鍵,布爾輸入為假,執(zhí)行IWMPControls類的stop語句實(shí)現(xiàn)播放的停止,同時(shí)按鍵變成綠色且顯示為“播”。
2.4 數(shù)字鐘模塊
數(shù)字鐘模塊主要包括時(shí)間提取與顯示、鬧鐘兩部分。
計(jì)算機(jī)當(dāng)前時(shí)間的提取由LabVIEW定時(shí)模塊內(nèi)的函數(shù)實(shí)現(xiàn)[4],并以文本的形式插入到圖像的相應(yīng)位置上,得到含有時(shí)間信息的新圖像。該圖像只有0和255兩種亮度,轉(zhuǎn)換成布爾值就可以作為LED點(diǎn)陣字模[4-6]使用。仿真系統(tǒng)中用圖像像素點(diǎn)灰度值的變化代替LED顯示屏各點(diǎn)的亮暗變化,實(shí)現(xiàn)時(shí)間的顯示,程序框圖如圖6(a)所示。模塊內(nèi)設(shè)置了圓形和圓角矩形兩種顯示樣式,除了顯示時(shí)間外,6:00—19:00用太陽圖標(biāo)的閃爍代替秒,19:00后用月亮和星星圖標(biāo)的閃爍代替秒。圓形樣式下的數(shù)字鐘顯示效果如圖6(b)所示。
鬧鐘功能主要利用比較函數(shù)和條件結(jié)構(gòu)來實(shí)現(xiàn)。輸入提醒時(shí)間和事件并確認(rèn)后,代替秒閃爍的圖標(biāo)變成喇叭,標(biāo)志著鬧鐘已設(shè)定好。當(dāng)前時(shí)間與提醒時(shí)間相等,即圖6(a)中條件結(jié)構(gòu)的布爾輸入為真時(shí),顯示屏開始顯示提醒事件并閃爍,同時(shí)對(duì)該事件進(jìn)行語音重復(fù)播報(bào),直至按下停止按鍵,恢復(fù)正常時(shí)間顯示,程序框圖如圖6(c)所示,圖標(biāo)為喇叭的函數(shù)為鬧鐘設(shè)定好后的喇叭的矩陣生成及顯示位置設(shè)置子vi。事件的語音播報(bào)功能通過調(diào)用微軟的插件Microsoft Speech Object Library Version 5.4來實(shí)現(xiàn),其程序框圖如圖6(d)所示。
2.5 亮度調(diào)節(jié)模塊
系統(tǒng)的控制界面設(shè)置了一個(gè)滑動(dòng)桿,用于改變圖像中背景區(qū)域的亮度值,從而實(shí)現(xiàn)顯示屏的背景亮度的調(diào)節(jié)[7]。
3 系統(tǒng)運(yùn)行效果
按照?qǐng)D1所示設(shè)計(jì)流程,將以上5個(gè)模塊組合到一起,構(gòu)成了多功能LED顯示系統(tǒng)。該系統(tǒng)各狀態(tài)下的運(yùn)行效果如圖7所示。前面板控制區(qū)的第2行最右側(cè)的顏色可變矩形塊用于模擬鬧鐘響起時(shí)的振動(dòng)信號(hào),顏色越紅,信號(hào)越強(qiáng)。此功能由圖6(c)中的余弦函數(shù)實(shí)現(xiàn)。
4 結(jié) 語
多功能LED顯示系統(tǒng)包含的各個(gè)模塊雖然原理簡單,但按照一定的邏輯關(guān)系組合到一起時(shí),需要多次調(diào)試和修改才能讓系統(tǒng)按照預(yù)期運(yùn)行,如電子相冊(cè)模塊的程序執(zhí)行順序、音樂播放的控制功能實(shí)現(xiàn)、鬧鐘響起時(shí)對(duì)音樂播放和電子相冊(cè)模塊的控制等。經(jīng)過這樣的一個(gè)設(shè)計(jì)與調(diào)試過程,學(xué)生的知識(shí)運(yùn)用和仿真實(shí)現(xiàn)能力都會(huì)有所提高,結(jié)合硬件和近距離無線通信等知識(shí)的學(xué)習(xí)[8-10],為今后的功能擴(kuò)展和實(shí)物開發(fā)打下基礎(chǔ)。
參考文獻(xiàn)
[1]劉光普,李效東,梁鶯,等.基于LabVIEW的天氣預(yù)報(bào)系統(tǒng)[J].電子測量技術(shù),2014,37(7):88-92.
[2] GONZALEZ R C,WOODS R E.數(shù)字圖像處理[M].阮秋琦,阮宇智,譯.2版.北京:電子工業(yè)出版社,2003:40-49.
[3]阮奇楨.我和LabVIEW:一個(gè)NI工程師的十年編程經(jīng)驗(yàn)[M].2版.北京:北京航空航天大學(xué)出版社,2012:196-199.
[4]吳義滿.基于虛擬儀器技術(shù)LabVIEW的點(diǎn)陣LED顯示系統(tǒng)設(shè)計(jì)[J].電子設(shè)計(jì)工程,2014,22(10):19-21.
[5]趙佳,劉蘊(yùn)紅.利用LabVIEW產(chǎn)生字模的LED顯示屏設(shè)計(jì)[J].電子科技,2010,23(11):74-76.
[6]孫立輝,王海.基于LabVIEW與單片機(jī)的多功能LED點(diǎn)陣顯示屏設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2016,39(6):140-142.
[7]姜麗峰,夏夢(mèng)雷.亮度可調(diào)LED電路設(shè)計(jì)[J].通信與廣播電視,2019(4):13-19.
[8]劉相中,張建文,唐李生,等.基于Arduino的“變色龍”LED燈的設(shè)計(jì)[J]. 照明工程學(xué)報(bào),2019,30(4):133-136.
[9]盧超.基于WiFi的智能LED照明控制系統(tǒng)的設(shè)計(jì)[J].照明工程學(xué)報(bào),2019,30(4):137-143.
[10]崔文婷,陳恒,高遠(yuǎn),等.基于Android的LED控制設(shè)計(jì)[J]. 電子測量技術(shù),2014,37(12):102-104.