劉厚銳 李宗平 王少坤
(西北農林科技大學水利與建筑工程學院 陜西 咸陽 712100)
搶答器,廣泛地應用于科學知識競賽、文娛活動等各種場合[1].隨著互聯(lián)網科技的進步與發(fā)展,可以利用軟件編程的方法實現(xiàn)搶答器的設計與構建[2].本次實驗設計的8路搶答器所使用的是LabVIEW軟件.
LabVIEW是基于圖形化編程語言的開發(fā)應用軟件,其最大的優(yōu)點就是直觀易懂,編程效率高且運行速度快[3],多個虛擬儀器的組合可以組成測試系統(tǒng)[4].它充分利用計算機系統(tǒng)強大的數(shù)據處理能力,在基本硬件的支持下,用戶通過鼠標或鍵盤操作軟面板來完成信號采集與控制,信號分析與處理,測量結果的存儲、顯示與輸出等功能,通過軟、硬件的配合來實現(xiàn)傳統(tǒng)儀器的各種功能[5].非常適合于虛擬教學實驗系統(tǒng)的設計和開發(fā).利用LabVIEW的以上優(yōu)點和功能來設計8路搶答器,可保證在搶答過程中的公正、透明,具有很強的可操作性和實用性.
設計8人參與的搶答競賽程序,可以完成搶答的信號及結果判斷、自動計分、倒計時和違規(guī)判斷等功能.搶答判別的流程圖如圖1所示.
(1)設定答題時間、加分值及扣分值,在主持人沒有點擊開始搶答前若有選手搶答將顯示違規(guī)提示,“幾號違規(guī)”.
(2)主持人點擊開始搶答后,若時間到,報警指示燈亮起,在設定的答題時間內如果沒有選手搶答,系統(tǒng)將顯示違規(guī)提示,“沒有選手答題”;若有人搶答,則顯示最先搶答號數(shù),此時可以重新設定答題時間并將答題時間清零,對選手作答時間進行倒計時,選手開始作答.

圖1 搶答判別流程圖設計
(3)選手如果在規(guī)定時間內作答,回答正確,評委點擊“正確”按鈕加分,同時系統(tǒng)將自動將倒計時間清零;回答錯誤點擊“錯誤”按鈕扣分,同時系統(tǒng)將自動將倒計時間清零.如果答題時間到,報警指示燈亮起未在規(guī)定時間內作答,則顯示違規(guī)提示,“答題超時”.
(4)點擊下一題重新開始搶答.點擊退出返回按鈕,可以停止系統(tǒng)運行并關閉前面板[6].
LabVIEW提供了大量外觀與傳統(tǒng)儀器類似的控件.在創(chuàng)建用戶界面時,使用連線的方式即可對數(shù)據進行鏈接和操作[7].LabVIEW軟件具備獨特的程序運行模式,前面板程序界面能夠像動畫一樣運行,讓用戶能方便地觀察到前面板隨程序的調節(jié)發(fā)生的變化,有利于用戶對程序的開發(fā)與仿真調試.本實驗根據設計思路,在前面板設計如下:首先創(chuàng)建3個按鈕,分別是開始按鈕、下一題按鈕以及退出返回按鈕.當點擊開始搶答按鈕時,選手開始搶答.當活動結束時點擊退出返回按鈕可退出程序并關閉前面板.點擊下一題按鈕時,可結束本次搶答并進入下一答題時間;創(chuàng)建8個選手搶答按鈕顯示控件以及8個布爾方形指示燈,用來觀察搶答情況;創(chuàng)建3個數(shù)值輸入控件,用來設置答題時間、加分值及扣分值;創(chuàng)建一個布爾圓形指示燈,可進行時間報警提示;再設置兩個按鈕用來由主持人判斷選手作答是否正確;創(chuàng)建3個字符顯示控件,用來顯示最先搶答號數(shù)、倒計時間以及違規(guī)提示.最終設計好的前面板如圖2所示.

圖2 8路搶答器的前面板
LabVIEW 軟件采用簡單直觀的圖形化編程方式,程序框圖采用模塊化的設計思想,該設計共分為3個模塊,分別為搶答過程及計分程序、倒計時顯示及違規(guī)提示程序、搶答結束進入下一題以及系統(tǒng)停止運行程序.
2.2.1 搶答過程及計分程序
(1)判斷最先搶答號數(shù)及違規(guī)提示語的顯示
創(chuàng)建整體的while循環(huán)結構,在循環(huán)內部創(chuàng)建事件結構,用于選手搶答按鈕鍵值改變;創(chuàng)建條件結構用以判斷最先搶答號數(shù),提示搶并且答信息該選手的搶答指示燈亮起,同時判斷該搶答信號是否存在開始之前搶答的違規(guī)情況,若存在違規(guī)情況則顯示違規(guī)提示信息.
(2)開始搶答及初始狀態(tài)設置
在上述(1)中創(chuàng)建的事件分支后面添加條件分支,事件源為開始搶答控件值改變.同樣創(chuàng)建條件結構,通過賦值的形式設置初始狀態(tài).
(3)通過選手作答結果判斷是否進行加分及扣分
事件結構內部嵌套兩級條件分支,第一級事件源分別為正確按鈕與錯誤按鈕值改變,同時創(chuàng)建第二級條件結構,進行分數(shù)的計算并顯示得分數(shù).
通過以上3步設計,可以完成搶答信號的判斷、開始搶答及搶答結果的計分.本部分程序框圖如圖3所示.

圖3 搶答過程及計分程序
2.2.2 倒計時顯示及違規(guī)提示程序
創(chuàng)建兩級條件分支結構,一級分支選擇器與各選手搶答按鈕控件局部變量值的復合運算或輸出端相連,二級分支選擇器與已用時間函數(shù)結束端相連.該部分的程序框圖如圖4所示.

圖4 倒計時顯示及違規(guī)提示
2.2.3 搶答結束進入下一題以及系統(tǒng)停止運行
(1)點擊下一題控件按鈕后,程序恢復初始狀態(tài).添加條件結構分支,事件源為下一題控件值改變,同樣通過條件結構及賦值的方式設置,該部分程序框圖如圖5所示.
(2)系統(tǒng)停止運行.點擊前面板退出返回按鈕后,系統(tǒng)停止運行并關閉前面板.添加事件結構分支,事件為本Ⅵ前面板關閉,通過布爾值和退出返回布爾控件共同控制程序的停止并返回.在循環(huán)結構外創(chuàng)建條件結構,調用本Ⅵ,創(chuàng)建調用節(jié)點,選擇方法為前面板關閉,將兩者相連.
最終設計好的程序框圖如圖6所示.

圖5 點擊下一題并恢復初始狀態(tài)

圖6 設計完成的程序框圖
通過以上前面板和程序框圖的設計后,進行實驗的仿真及調試.點擊前面板左上方工具欄上的運行按鈕,運行該程序.通過前面板里的數(shù)值輸入控件設置該題目的加分值為3分,扣分值為1分,答題時間為5 s,然后點擊搶答按鈕仿真,程序運行結果如圖7所示.面板顯示3號搶答成功,開始搶答,然后倒計時開始.搶答結束后,由評委覺得是否正確,點擊正確或者錯誤按鈕,隨后程序自動計分,然后主持人點擊下一題按鈕繼續(xù)競賽過程.

圖7 搶答結果顯示
基于對8路搶答器的設計,利用LabVIEW來設計和開發(fā)虛擬儀器,具有很大的前瞻性及現(xiàn)實意義.其圖形化的編程語言使整個程序都可視化,易理解,具有強大的應用優(yōu)勢.這不僅對我們解決電子學問題提供了新的方法和思維,也有助于提高學生的學習積極性,更好地參與到學習中去.充分發(fā)揮了“軟件就是儀器”的優(yōu)勢,能夠靈活方便地增添或刪減儀器,具有較強的實時性及可擴展性.除此之外,利用虛擬實驗系統(tǒng)和網絡資源,降低了實驗開發(fā)成本,大幅度提高設備利用率,使我們的生活更加信息化.