張芳,,張震強(qiáng)
(陜西科技大學(xué) 電氣與信息工程學(xué)院,陜西 西安 710021)
摘要:電腦鼠競(jìng)賽自動(dòng)計(jì)時(shí)系統(tǒng)由傳感器,、延時(shí)電路,、電平轉(zhuǎn)換電路、串口通信電路和PC組成,,包括了系統(tǒng)的硬件設(shè)計(jì),、軟件界面和控制程序的設(shè)計(jì)。通過將軟硬件系統(tǒng)相結(jié)合,,本系統(tǒng)能夠滿足競(jìng)賽對(duì)高精度時(shí)間統(tǒng)計(jì)的要求,,并且能夠克服環(huán)境、人為等因素的影響,。按照IEEE的比賽規(guī)則,,能夠準(zhǔn)確地測(cè)量和計(jì)算電腦鼠的運(yùn)行時(shí)間,在比賽過程中自動(dòng)地對(duì)成績(jī)進(jìn)行大屏幕顯示和計(jì)算機(jī)存儲(chǔ),。本系統(tǒng)電路簡(jiǎn)單,測(cè)量精度和靈敏度高,,調(diào)試方便,,能夠充分發(fā)揮自動(dòng)計(jì)時(shí)系統(tǒng)在比賽中的實(shí)時(shí)觀測(cè)、現(xiàn)場(chǎng)監(jiān)督的作用。本系統(tǒng)已通過迷宮現(xiàn)場(chǎng)測(cè)試,,期望應(yīng)用于正式比賽,。
關(guān)鍵詞:電腦鼠競(jìng)賽;自動(dòng),;計(jì)時(shí)
0引言
“電腦鼠”,,英文名叫做 MicroMouse,是使用嵌入式微控制器,、傳感器和機(jī)電運(yùn)動(dòng)部件構(gòu)成的一種智能行走裝置,,可以在復(fù)雜迷宮中精確定位,自動(dòng)記憶和選擇路徑,,規(guī)避障礙,,尋找出口,采用相應(yīng)的算法,,最終快速地達(dá)到所設(shè)定的目的地[1],。
首場(chǎng)電腦鼠迷宮競(jìng)賽于1979年在紐約舉行。 2009年由中國(guó)計(jì)算機(jī)學(xué)會(huì)嵌入式系統(tǒng)專業(yè)委員會(huì)主辦了首屆全國(guó)電腦鼠走迷宮競(jìng)賽,,拉開了中國(guó)電腦鼠競(jìng)賽的大幕,。
競(jìng)賽的得分用“時(shí)間”來衡量,時(shí)間越短,,所獲得的成績(jī)也越高,。因此,設(shè)計(jì)一個(gè)非接觸式的比賽自動(dòng)計(jì)時(shí)系統(tǒng)就顯得尤為重要,。本系統(tǒng)能夠克服環(huán)境,、人為等因素的影響,按照IEEE的比賽規(guī)則要求,,準(zhǔn)確地測(cè)量和計(jì)算電腦鼠的比賽時(shí)間,。此外,該系統(tǒng)還具有遠(yuǎn)程傳送和大屏幕顯示的能力,,便于實(shí)時(shí)觀測(cè),,現(xiàn)場(chǎng)監(jiān)督。
1電腦鼠走迷宮競(jìng)賽主要規(guī)則
本系統(tǒng)以IEEE電腦鼠走迷宮競(jìng)賽規(guī)則為設(shè)計(jì)依據(jù)[2],。主要規(guī)則如下:
電腦鼠的基本功能是從起點(diǎn)開始走到終點(diǎn),,比賽中,每一次的成績(jī)都由運(yùn)行時(shí)間,、迷宮時(shí)間和碰觸獎(jiǎng)懲三部分組成,。競(jìng)賽使用這3個(gè)參數(shù),從速度﹑求解迷宮的效率和電腦鼠的可靠性三方面進(jìn)行評(píng)分,。
?。?)運(yùn)行時(shí)間,。電腦鼠每次從迷宮起點(diǎn)走到終點(diǎn)所用時(shí)間稱為“運(yùn)行時(shí)間”。競(jìng)賽中,,電腦鼠在迷宮中的總時(shí)間不可超過15 min,。
(2)迷宮時(shí)間,。從電腦鼠的第一次激活到每次運(yùn)行開始所用時(shí)間稱為“迷宮時(shí)間”,。
(3)碰觸獎(jiǎng)懲,。電腦鼠啟動(dòng)運(yùn)行后出現(xiàn)故障,,允許操作員手動(dòng)電腦鼠使其繼續(xù)行走或?qū)㈦娔X鼠從迷宮取出,放到起點(diǎn)重新啟動(dòng)運(yùn)行,,該動(dòng)作稱為“碰觸”,,但不能超過3次。
?。?)成績(jī)的計(jì)算,。得分通過計(jì)算每次“排障時(shí)間”來衡量:排障時(shí)間=迷宮時(shí)間/30+運(yùn)行時(shí)間+碰觸獎(jiǎng)懲。
電腦鼠在規(guī)定時(shí)間內(nèi)允許運(yùn)行多次,,取最短排障時(shí)間作為最好成績(jī),。
2系統(tǒng)設(shè)計(jì)原理
本系統(tǒng)根據(jù)競(jìng)賽規(guī)則要求,選用PC代替單片機(jī)作為控制器,,PC既是顯示器件同時(shí)也是控制器件,,對(duì)PC的利用率大大提高,將上位機(jī)的控制作為主導(dǎo),,整個(gè)系統(tǒng)盡可能少地使用元器件,,簡(jiǎn)化硬件電路。
系統(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ù)、本次成績(jī),、最好成績(jī)的實(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)的檢測(cè),。
迷宮終點(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串口的某一針腳輸入,通過檢測(cè)串口針腳的狀態(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í)間,、本次成績(jī)、碰觸次數(shù)和最好成績(jī)共六部分,;按鍵控制部分包括開始,、碰觸和清零共三部分。
4.3工作過程
裁判員單擊“開始”按鍵,,激活比賽計(jì)時(shí)系統(tǒng),。
控制程序以查詢方式每隔一段時(shí)間檢測(cè)起點(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)行,控制程序檢測(cè)終點(diǎn)信號(hào)的狀態(tài),,當(dāng)DCD線為高電平時(shí),,表示電腦鼠進(jìn)入迷宮終點(diǎn),獲取當(dāng)前時(shí)間,,計(jì)算并顯示本次成績(jī),。
電腦鼠允許在規(guī)定的15 min內(nèi)運(yùn)行任意次,因此,,電腦鼠回到起點(diǎn)再次進(jìn)入迷宮后,,本次運(yùn)行時(shí)間、本次迷宮時(shí)間和本次成績(jī)由電腦鼠新一次的情況給出,,選擇各次成績(jī)中最短用時(shí)作為最好成績(jī),。
比賽過程中,電腦鼠每發(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)場(chǎng)測(cè)試及結(jié)論
同時(shí)使用人工秒表和自動(dòng)計(jì)時(shí)系統(tǒng)兩種方案進(jìn)行迷宮現(xiàn)場(chǎng)計(jì)時(shí)。迷宮現(xiàn)場(chǎng)測(cè)試數(shù)據(jù)如表1所示,。
由測(cè)試結(jié)果可以看出,,電腦鼠競(jìng)賽自動(dòng)計(jì)時(shí)系統(tǒng),克服了人工秒表計(jì)時(shí)人力資源浪費(fèi)大,、計(jì)時(shí)誤差大,、不能實(shí)時(shí)顯示等缺點(diǎn),對(duì)資源的利用更為合理,。按照比賽規(guī)則,,可準(zhǔn)確測(cè)量和計(jì)算電腦鼠的運(yùn)行時(shí)間,在比賽過程中自動(dòng)對(duì)成績(jī)進(jìn)行測(cè)定,、顯示與存儲(chǔ),,具有遠(yuǎn)距離傳送和大屏幕顯示的能力,并且滿足電路簡(jiǎn)單,、測(cè)量精度和靈敏度高,、調(diào)試方便的要求,能夠充分發(fā)揮非接觸式自動(dòng)計(jì)時(shí)系統(tǒng)在比賽中的實(shí)時(shí)觀測(cè),、現(xiàn)場(chǎng)監(jiān)督的作用,。本系統(tǒng)已經(jīng)用于校內(nèi)的電腦鼠比賽中,工作穩(wěn)定,。
參考文獻(xiàn)
?。?] 周立功.IEEE電腦鼠開發(fā)指南[M].廣州:廣州致遠(yuǎn)電子有限公司,2008.
?。?] 2009全國(guó)“電腦鼠走迷宮”競(jìng)賽組委會(huì).2009全國(guó)“電腦鼠走迷宮”競(jìng)賽 [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的英國(guó)議會(huì)制辯論賽計(jì)時(shí)器的設(shè)計(jì)開發(fā)[J].電子測(cè)試,,2015(4):1-3.