張芳,張震強(qiáng)
(陜西科技大學(xué) 電氣與信息工程學(xué)院,陜西 西安 710021)
摘要:電腦鼠競賽自動(dòng)計(jì)時(shí)系統(tǒng)由傳感器、延時(shí)電路、電平轉(zhuǎn)換電路、串口通信電路和PC組成,包括了系統(tǒng)的硬件設(shè)計(jì)、軟件界面和控制程序的設(shè)計(jì)。通過將軟硬件系統(tǒng)相結(jié)合,本系統(tǒng)能夠滿足競賽對(duì)高精度時(shí)間統(tǒng)計(jì)的要求,并且能夠克服環(huán)境、人為等因素的影響。按照IEEE的比賽規(guī)則,能夠準(zhǔn)確地測量和計(jì)算電腦鼠的運(yùn)行時(shí)間,在比賽過程中自動(dòng)地對(duì)成績進(jìn)行大屏幕顯示和計(jì)算機(jī)存儲(chǔ)。本系統(tǒng)電路簡單,測量精度和靈敏度高,調(diào)試方便,能夠充分發(fā)揮自動(dòng)計(jì)時(shí)系統(tǒng)在比賽中的實(shí)時(shí)觀測、現(xiàn)場監(jiān)督的作用。本系統(tǒng)已通過迷宮現(xiàn)場測試,期望應(yīng)用于正式比賽。
關(guān)鍵詞:電腦鼠競賽;自動(dòng);計(jì)時(shí)
0引言
“電腦鼠”,英文名叫做 MicroMouse,是使用嵌入式微控制器、傳感器和機(jī)電運(yùn)動(dòng)部件構(gòu)成的一種智能行走裝置,可以在復(fù)雜迷宮中精確定位,自動(dòng)記憶和選擇路徑,規(guī)避障礙,尋找出口,采用相應(yīng)的算法,最終快速地達(dá)到所設(shè)定的目的地[1]。
首場電腦鼠迷宮競賽于1979年在紐約舉行。 2009年由中國計(jì)算機(jī)學(xué)會(huì)嵌入式系統(tǒng)專業(yè)委員會(huì)主辦了首屆全國電腦鼠走迷宮競賽,拉開了中國電腦鼠競賽的大幕。
競賽的得分用“時(shí)間”來衡量,時(shí)間越短,所獲得的成績也越高。因此,設(shè)計(jì)一個(gè)非接觸式的比賽自動(dòng)計(jì)時(shí)系統(tǒng)就顯得尤為重要。本系統(tǒng)能夠克服環(huán)境、人為等因素的影響,按照IEEE的比賽規(guī)則要求,準(zhǔn)確地測量和計(jì)算電腦鼠的比賽時(shí)間。此外,該系統(tǒng)還具有遠(yuǎn)程傳送和大屏幕顯示的能力,便于實(shí)時(shí)觀測,現(xiàn)場監(jiān)督。
1電腦鼠走迷宮競賽主要規(guī)則
本系統(tǒng)以IEEE電腦鼠走迷宮競賽規(guī)則為設(shè)計(jì)依據(jù)[2]。主要規(guī)則如下:
電腦鼠的基本功能是從起點(diǎn)開始走到終點(diǎn),比賽中,每一次的成績都由運(yùn)行時(shí)間、迷宮時(shí)間和碰觸獎(jiǎng)懲三部分組成。競賽使用這3個(gè)參數(shù),從速度﹑求解迷宮的效率和電腦鼠的可靠性三方面進(jìn)行評(píng)分。
(1)運(yùn)行時(shí)間。電腦鼠每次從迷宮起點(diǎn)走到終點(diǎn)所用時(shí)間稱為“運(yùn)行時(shí)間”。競賽中,電腦鼠在迷宮中的總時(shí)間不可超過15 min。
?。?)迷宮時(shí)間。從電腦鼠的第一次激活到每次運(yùn)行開始所用時(shí)間稱為“迷宮時(shí)間”。
?。?)碰觸獎(jiǎng)懲。電腦鼠啟動(dòng)運(yùn)行后出現(xiàn)故障,允許操作員手動(dòng)電腦鼠使其繼續(xù)行走或?qū)㈦娔X鼠從迷宮取出,放到起點(diǎn)重新啟動(dòng)運(yùn)行,該動(dòng)作稱為“碰觸”,但不能超過3次。
(4)成績的計(jì)算。得分通過計(jì)算每次“排障時(shí)間”來衡量:排障時(shí)間=迷宮時(shí)間/30+運(yùn)行時(shí)間+碰觸獎(jiǎng)懲。
電腦鼠在規(guī)定時(shí)間內(nèi)允許運(yùn)行多次,取最短排障時(shí)間作為最好成績。
2系統(tǒng)設(shè)計(jì)原理
本系統(tǒng)根據(jù)競賽規(guī)則要求,選用PC代替單片機(jī)作為控制器,PC既是顯示器件同時(shí)也是控制器件,對(duì)PC的利用率大大提高,將上位機(jī)的控制作為主導(dǎo),整個(gè)系統(tǒng)盡可能少地使用元器件,簡化硬件電路。
系統(tǒng)采用激光管及其接收電路采集計(jì)時(shí)信號(hào),經(jīng)過信號(hào)處理部分,將輸出的電平信號(hào)直接輸入PC串口的特定引腳,PC采用Visual Basic編程語言構(gòu)建計(jì)時(shí)系統(tǒng)界面,同時(shí)利用軟件編寫串行口通訊程序,通過對(duì)串行口引腳狀態(tài)的判斷,執(zhí)行相應(yīng)的計(jì)時(shí)控制程序。利用鼠標(biāo)對(duì)上位機(jī)系統(tǒng)界面進(jìn)行操作,并在大屏幕上顯示當(dāng)前內(nèi)容和數(shù)據(jù),實(shí)現(xiàn)對(duì)參賽電腦鼠的運(yùn)行時(shí)間、迷宮時(shí)間、碰觸次數(shù)、本次成績、最好成績的實(shí)時(shí)顯示、控制及存儲(chǔ)。
系統(tǒng)的整體設(shè)計(jì)框圖如圖1所示。
3硬件設(shè)計(jì)
本系統(tǒng)硬件部分的整體框圖如圖2所示。
3.1傳感器的安裝及其工作電路
由圖2所示,在迷宮起點(diǎn)單元,一面墻壁內(nèi)部嵌入激光管,該激光管使用+3 V紐扣電池驅(qū)動(dòng)發(fā)光。發(fā)出的激光照射到迷宮單元格的對(duì)面墻壁上,在該墻壁上激光所照的點(diǎn)處嵌入光敏電阻,該光敏電阻連入比較器電路中。
當(dāng)沒有電腦鼠經(jīng)過迷宮起點(diǎn)單元,即有激光照射到光敏電阻上時(shí),光敏電阻阻值很小,比較器輸出+10 V電壓;當(dāng)電腦鼠經(jīng)過起點(diǎn)單元,即激光被阻斷,沒有激光照射到光敏電阻上時(shí),光敏電阻阻值很大,比較器輸出0 V電壓。通過高低電平的變換實(shí)現(xiàn)對(duì)起點(diǎn)單元信號(hào)的檢測。
迷宮終點(diǎn)的傳感器安裝方式及其工作電路同理。
3.2信號(hào)處理電路
由于傳感器響應(yīng)周期很短,若參加比賽的電腦鼠車體形狀不規(guī)則,小車經(jīng)過計(jì)時(shí)區(qū)時(shí),很可能觸發(fā)傳感器對(duì)信號(hào)進(jìn)行多次采集。本系統(tǒng)采用555定時(shí)器連接而成的單穩(wěn)態(tài)觸發(fā)器實(shí)現(xiàn)延時(shí)消抖,將傳感器輸出的信號(hào)進(jìn)行一定的延時(shí)處理,從而保證車體每經(jīng)過一次,傳感器僅采集一次開關(guān)量信號(hào)。
3.3串口電路
串口電路的設(shè)計(jì)是本系統(tǒng)的難點(diǎn),同時(shí)也是本設(shè)計(jì)的一項(xiàng)創(chuàng)新點(diǎn)。
不同于一般的單片機(jī)與PC的串行通訊[3-4],由于本系統(tǒng)為PC控制,采集到的開關(guān)量信號(hào)直接從PC串口的某一針腳輸入,通過檢測串口針腳的狀態(tài)來得到計(jì)時(shí)脈沖信號(hào)。
RS-232C總線標(biāo)準(zhǔn)規(guī)定,RTS、CTS、DSR、DTR和DCD等控制線上信號(hào)有效(接通,ON狀態(tài),正電壓)為+3 V~+15 V ,信號(hào)無效(斷開,OFF狀態(tài),負(fù)電壓)為-3 V~-15 V。本系統(tǒng)傳感器電路的輸出無車經(jīng)過時(shí)為高電平+10 V,有車經(jīng)過時(shí)為低電平0 V,而該電平是串口針腳所不能識(shí)別的。
因此,利用了OP07作為比較器構(gòu)成電平轉(zhuǎn)換電路,將輸出的脈沖信號(hào)轉(zhuǎn)換為串口可識(shí)別的±12 V電壓,再從RS232C輸入計(jì)算機(jī)。DB9的CTS腳接起點(diǎn)信號(hào)的輸出端,DCD腳接終點(diǎn)信號(hào)的輸出端,GND腳接地。具體連線方法如圖3所示。
當(dāng)小車經(jīng)過起點(diǎn)傳感器時(shí),起點(diǎn)信號(hào)輸出為+12 V,CTS有效,獲得起點(diǎn)的計(jì)時(shí)脈沖信號(hào),同理,當(dāng)小車經(jīng)過終點(diǎn)傳感器時(shí),終點(diǎn)信號(hào)輸出為+12 V,DCD有效,獲得終點(diǎn)的計(jì)時(shí)脈沖信號(hào),從而控制系統(tǒng)進(jìn)行計(jì)時(shí)。
4軟件設(shè)計(jì)
軟件是控制電路的靈魂,上位機(jī)程序的編寫是本設(shè)計(jì)研究的核心,也是本計(jì)時(shí)系統(tǒng)功能實(shí)現(xiàn)的關(guān)鍵所在。本系統(tǒng)使用可視化編程語言Visual Basic進(jìn)行操作界面和控制程序的設(shè)計(jì)[5]。
4.1流程圖
軟件設(shè)計(jì)的主程序流程圖如圖4所示。
4.2界面模塊
界面模塊由標(biāo)題欄、計(jì)時(shí)顯示、按鍵控制、參賽組提示4個(gè)主要部分組成,如圖5所示。
其中,計(jì)時(shí)顯示部分包括本次運(yùn)行時(shí)間、本次迷宮時(shí)間、總時(shí)間、本次成績、碰觸次數(shù)和最好成績共六部分;按鍵控制部分包括開始、碰觸和清零共三部分。
4.3工作過程
裁判員單擊“開始”按鍵,激活比賽計(jì)時(shí)系統(tǒng)。
控制程序以查詢方式每隔一段時(shí)間檢測起點(diǎn)信號(hào)狀態(tài),當(dāng)CTS線為高電平時(shí),表示電腦鼠進(jìn)入迷宮起點(diǎn),計(jì)時(shí)程序開始執(zhí)行,同時(shí),在界面模塊上實(shí)時(shí)顯示本次運(yùn)行時(shí)間、迷宮時(shí)間和總時(shí)間,并將該時(shí)間值存入相應(yīng)數(shù)組中。
電腦鼠繼續(xù)在迷宮中運(yùn)行,控制程序檢測終點(diǎn)信號(hào)的狀態(tài),當(dāng)DCD線為高電平時(shí),表示電腦鼠進(jìn)入迷宮終點(diǎn),獲取當(dāng)前時(shí)間,計(jì)算并顯示本次成績。
電腦鼠允許在規(guī)定的15 min內(nèi)運(yùn)行任意次,因此,電腦鼠回到起點(diǎn)再次進(jìn)入迷宮后,本次運(yùn)行時(shí)間、本次迷宮時(shí)間和本次成績由電腦鼠新一次的情況給出,選擇各次成績中最短用時(shí)作為最好成績。
比賽過程中,電腦鼠每發(fā)生一次碰觸事件,裁判員單擊“碰觸”按鍵,顯示碰觸次數(shù)加1,相應(yīng)地碰觸獎(jiǎng)懲時(shí)間改變,當(dāng)碰觸次數(shù)達(dá)到4次時(shí),顯示“停賽!”。
當(dāng)前組比賽停止后,裁判員單擊“清零”按鍵,清除本輪比賽記錄,當(dāng)前組號(hào)和將要參賽的組號(hào)各加1,為進(jìn)行下一組比賽做準(zhǔn)備。
5現(xiàn)場測試及結(jié)論
同時(shí)使用人工秒表和自動(dòng)計(jì)時(shí)系統(tǒng)兩種方案進(jìn)行迷宮現(xiàn)場計(jì)時(shí)。迷宮現(xiàn)場測試數(shù)據(jù)如表1所示。
由測試結(jié)果可以看出,電腦鼠競賽自動(dòng)計(jì)時(shí)系統(tǒng),克服了人工秒表計(jì)時(shí)人力資源浪費(fèi)大、計(jì)時(shí)誤差大、不能實(shí)時(shí)顯示等缺點(diǎn),對(duì)資源的利用更為合理。按照比賽規(guī)則,可準(zhǔn)確測量和計(jì)算電腦鼠的運(yùn)行時(shí)間,在比賽過程中自動(dòng)對(duì)成績進(jìn)行測定、顯示與存儲(chǔ),具有遠(yuǎn)距離傳送和大屏幕顯示的能力,并且滿足電路簡單、測量精度和靈敏度高、調(diào)試方便的要求,能夠充分發(fā)揮非接觸式自動(dòng)計(jì)時(shí)系統(tǒng)在比賽中的實(shí)時(shí)觀測、現(xiàn)場監(jiān)督的作用。本系統(tǒng)已經(jīng)用于校內(nèi)的電腦鼠比賽中,工作穩(wěn)定。
參考文獻(xiàn)
?。?] 周立功.IEEE電腦鼠開發(fā)指南[M].廣州:廣州致遠(yuǎn)電子有限公司,2008.
[2] 2009全國“電腦鼠走迷宮”競賽組委會(huì).2009全國“電腦鼠走迷宮”競賽 [EB/OL].(2009-11-01)[2016-06-20]. http://www.micromouse.com.cn.2009 11 01/2010 01 12.
?。?] 顧星辰,胡仁杰,馬智勇. AVR單片機(jī)和Matlab串口通信的計(jì)時(shí)器系統(tǒng)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2013,13(3):25-27.
?。?] 梁振濤,樊澤明,任永亮,等.基于單片機(jī)的移動(dòng)監(jiān)控系統(tǒng)硬件設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2014,33(2):25-27.
[5] 邵昊舒. 基于VB的英國議會(huì)制辯論賽計(jì)時(shí)器的設(shè)計(jì)開發(fā)[J].電子測試,2015(4):1-3.