亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        智能小車計(jì)時器

        2008-04-12 00:00:00歐意韓汪貴平
        現(xiàn)代電子技術(shù) 2008年19期

        摘 要:為了準(zhǔn)備第三屆“飛思卡爾杯全國大學(xué)生智能汽車競賽”,針對智能汽車比賽計(jì)時的問題,設(shè)計(jì)制作了一種單賽道智能小車計(jì)時器。采用對射式光電開關(guān)作為傳感器,巧妙地運(yùn)用MAX232的DC/DC轉(zhuǎn)換器功能,利用RS 232接口輸入脈沖信號計(jì)時,完成硬件接口電路。采用C++.NET編程,設(shè)計(jì)完成智能車計(jì)時控制程序。該計(jì)時器硬件線路簡單,成本低廉,實(shí)際應(yīng)用效果良好,可以廣泛應(yīng)用于智能賽車競賽和性能測試研究。

        關(guān)鍵詞:計(jì)時器;智能車競賽;串行接口;光電開關(guān)

        中圖分類號:TP391文獻(xiàn)標(biāo)識碼:B文章編號:1004373X(2008)1919203

        Timer for Intelligent Car

        OU Yiwen1,HAN Yi2,WANG Guiping1

        (1.School of Electronic and Control Engineering,Chang′an University,Xi′an,710062,China;2.School of Automobile,Chang′an University,Xi′an,710062,China)

        Abstract:Preparing for the third\"Freescale Cup National Undergraduates Intelligent Car Contest\",a timer is manufactured to solve the problem of timing.A photoelectric switch is used as a sensor to give the signal of timing pulse to computer via serial port.The Max232, which has dual charge-pump DC-DC voltage converters,C++.NET is used to programme.The timer is inexpensive and do work well.

        Keywords:timer;intelligent car contest;serial port;photoelectric switch

        1 引 言

        為了加強(qiáng)大學(xué)生實(shí)踐創(chuàng)新能力和團(tuán)隊(duì)精神,培養(yǎng)面向未來的科技尖端人才,教育部在已舉辦全國數(shù)學(xué)建模、電子設(shè)計(jì)、機(jī)械設(shè)計(jì)、結(jié)構(gòu)設(shè)計(jì)4大專業(yè)競賽的基礎(chǔ)上設(shè)立了第5項(xiàng)大學(xué)生設(shè)計(jì)競賽——全國大學(xué)生智能汽車競賽。由于目前市場上專用的電子計(jì)時器價格較高,一般院校經(jīng)費(fèi)有限,難于購買,通常采用秒表計(jì)時,由于人反應(yīng)時間的限制及秒表本身的精度不高,計(jì)時精度較差。針對智能汽車比賽計(jì)時的問題,充分利用調(diào)試所用PC機(jī)資源,設(shè)計(jì)制作了一種價格便宜、計(jì)時準(zhǔn)確的智能汽車競賽用計(jì)時器。

        該計(jì)時器巧妙地運(yùn)用MAX232的DC/DC轉(zhuǎn)換器功能和PC機(jī)RS 232接口中的CTS端輸入計(jì)時脈沖,采用C++.NET編程,設(shè)計(jì)完成單賽道智能車計(jì)時控制程序,線路設(shè)計(jì)簡單明了,經(jīng)實(shí)際使用性能可靠,使用方便,成本低廉。

        2 硬件構(gòu)成

        如圖1所示,計(jì)時器主要由光電傳感器、電平轉(zhuǎn)換電路、電源和PC機(jī)組成。由于RS 232信號的電平為:邏輯1(MARK)=-3~-15 V,邏輯0(SPACE)=+3~+15 V,而光電傳感器的輸出在0~+5 V之間,因此光電傳感器的輸出脈沖必須先經(jīng)過轉(zhuǎn)換電路,再從RS 232輸入PC機(jī)。PC機(jī)檢測到串口狀態(tài)的改變,控制計(jì)時器的開、關(guān)。

        光電傳感器采用對射式光電開關(guān),它包含了在結(jié)構(gòu)上相互分離且光軸相對放置的發(fā)射器和接收器,發(fā)射器發(fā)出的光線直接進(jìn)入接收器,當(dāng)被檢測物體經(jīng)過發(fā)射器和接收器之間且阻斷光線時,光電開關(guān)就產(chǎn)生了開關(guān)信號[2 ]。計(jì)時器采用南海振華電子廠的PT-A光電開關(guān),經(jīng)實(shí)際測量,當(dāng)供電10 V時,如果接收器與發(fā)射器之間沒有障礙物阻擋,輸出高電平+3.57 V,如果有障礙物阻擋,則輸出0 V。

        由于光電開關(guān)輸出負(fù)脈沖,即小車經(jīng)過計(jì)時區(qū)時的信號電平為低電平,必須利用三極管和繼電器的常閉觸點(diǎn)將負(fù)脈沖進(jìn)行翻轉(zhuǎn),并轉(zhuǎn)換成串口可識別的高低電平,做為計(jì)時脈沖從RS 232的CTS針腳輸入PC機(jī),電路連接如圖2所示,其中1為繼電器,2為光電開關(guān)。從圖中可以看出,電路需要三種電源,分別為+5 V和±10 V。一般來說,電路應(yīng)盡量使用單電源,考慮到串口電平的要求和電路的簡單化,可以利用MAX232的DC/DC轉(zhuǎn)換器功能得到±10 V的電壓。

        MAX232芯片是Maxim公司生產(chǎn)的低功耗、單5 V電源供電、雙RS 232發(fā)送/接收器,它的內(nèi)部包含了+5 V及±10 V的兩個電荷泵電壓轉(zhuǎn)換器,可以把輸入的+5 V轉(zhuǎn)換成RS 232所需的±10 V電壓。MAX232可以從+10 V(V+)和-10 V(V-)輸出端獲取少量的電源功率,為外部電路供電。由于V+、V-未經(jīng)穩(wěn)壓,輸出電壓會隨負(fù)載電流的增大而下降,當(dāng)V+、V-為外部電路提供電流時,不能使V+、V-低于EIA/TIA-232E驅(qū)動器輸出電壓最小值±5 V的限制[1,5]。實(shí)驗(yàn)結(jié)果顯示,當(dāng)MAX232為光電開關(guān)提供工作電流時,V+降為+8 V,V-為-10 V,電壓范圍大于±5 V,因此可以用MAX232驅(qū)動光電開關(guān)。

        3 軟件設(shè)計(jì)

        串口是常用的計(jì)算機(jī)與外部串行設(shè)備之間的數(shù)據(jù)通道。實(shí)現(xiàn)串口通信有多種方法[4~9],并且各有優(yōu)缺點(diǎn),考慮到計(jì)時信號是單脈沖信號,可以從串口的某一個針腳輸入,而不是數(shù)據(jù)的接收和發(fā)送,可以通過檢測串口針腳的狀態(tài)來得到計(jì)時脈沖信號。

        在C++.NET中,有一個GetCommModemStatus()函數(shù)可以檢測串口4個針腳的狀態(tài),具體返回值如表1所示。

        經(jīng)過選擇,計(jì)時器采用CTS針腳作為信號輸入端, PC機(jī)通過不斷檢測CTS針腳的狀態(tài)來得到計(jì)時脈沖。設(shè)計(jì)流程如圖3所示。

        在C++.NET中提供了很多時間控制函數(shù),在要求誤差不大于1 ms的情況下,可以采用GetTickCount()函數(shù),該函數(shù)的返回值是DWORD型,表示以ms為單位的計(jì)算機(jī)啟動后經(jīng)歷的時間。比賽開始時調(diào)用一次GetTickCount(),得到時刻T1,到達(dá)終點(diǎn)后再調(diào)用一次GetTickCount(),得到時刻T2,T2-T1的時間差即為小車跑完一圈所用的時間。計(jì)時開始前先用CreateFile()打開串口,計(jì)時脈沖從CTS輸入PC機(jī)。

        程序原代碼如下:

        main()

        {…

        m_hcomm=CreateFile(m_comm,GENERIC_READ,0,NULL,OPEN_EXISTING,F(xiàn)ILEFLAG_OVERLAPPED,NULL);//打開串口

        GetCommModemStatus(m_hcomm, status);

        if(status==0) return;

        if(status MS_CTS_ON)//開始計(jì)時

        {k=::GetTickCount();

        mm= float(k)/1000;

        }

        SetTimer(1,10,TimerProc);

        }

        void CALLBACK TimerProc(HWND hWnd,UINT nMsg,UINT nTimerid,DWORD dwTime)//回調(diào)函數(shù)

        { k=::GetTickCount();

        ss=float(k)/1000-mm;

        s.Format(\"%.3f\",ss);

        SetDlgItemText(hWnd,IDCEDIT1,s);

        }

        為了能實(shí)時顯示時間的變化,可以使用SetTimer(1,10,TimerProc)函數(shù),每隔一段時間刷新顯示小車賽跑時間的變化。計(jì)時結(jié)束后調(diào)用KillTimer(1)關(guān)閉計(jì)時器,同時調(diào)用CloseHandle (m_hcomm)關(guān)閉串口。

        4 去抖動方法

        在實(shí)驗(yàn)中發(fā)現(xiàn),由于小車車體的不規(guī)則,在小車經(jīng)過計(jì)時區(qū)時,CTS針腳的輸入信號會出現(xiàn)抖動脈沖,如圖4所示。

        為了消除抖動脈沖的影響,可以有兩種方法,一是使用Sleep()函數(shù)的延時功能,在檢測到高電平后,延時一段時間,再次檢測CTS針腳,如果仍是高電平,則記錄時間,否則為抖動脈沖。由于Sleep()函數(shù)不僅使TimerProc線程暫停,同時還使整個程序進(jìn)程暫停,影響了程序的界面操作,因此采用第二種方法。首先假設(shè)車體經(jīng)過計(jì)時區(qū)所需時間不大于4 s,當(dāng)?shù)谝粋€高脈沖到來時,記錄下時間為T1,將第二個高脈沖到來的時間記為T2,如果T3-T1小于4 s,則認(rèn)為是抖動脈沖,如果T2-T1大于4 s,則將結(jié)果記錄下來作為比賽成績輸出顯示。代碼如下:

        //將脈沖上升沿作為計(jì)時信號

        if(status==0){ di=1;gao=0;}

        if(MS_CTS_ON status) gao=1;

        if(di==1gao==1){ii++;di=2;}

        //第一圈的成績

        if(ii==2di==2)

        {chengji[1]=ss;

        if(chengji[1]<4){ii=1;di=0;}

        else

        {show.Format(\"%.3f\",chengji[1]);

        SetDlgItemText(hWnd,IDC_EDIT2,show);

        di=0;return;

        }

        }

        5 結(jié) 語

        這款智能車計(jì)時器采用計(jì)算機(jī)進(jìn)行計(jì)時處理,充分利用了計(jì)算機(jī)內(nèi)部時鐘計(jì)時的高精度,而且通過計(jì)算機(jī)也可以很方便地選擇串口和設(shè)定賽車比賽圈數(shù)。實(shí)際使用證明,該智能車計(jì)時器具有操作簡單,方便易用,可長時間工作,輸出可視化的優(yōu)點(diǎn),同時計(jì)時精度高,成本低廉,滿足比賽訓(xùn)練與計(jì)時的要求,可以廣泛應(yīng)用于智能賽車競賽和性能測試研究。

        參考文獻(xiàn)

        [1]MAXIM +5V-Powered,Multichannel RS 232 Drivers/Receivers[EB/OL].http://cn.ic-on-line.cn/IOL/viewpdf/MAX232CPE1664.htm.

        [2]光電開關(guān)應(yīng)用簡介[DB/OL].http://www.ttet.cn/Article/JYXUYINGYONG/quanganqi/200709/6037.html.

        [3]李雪梅.用51單片機(jī)制作加、減計(jì)時器[J].電子制作,2007(4):24-25.

        [4]劉艷玲.采用MAX232實(shí)現(xiàn)MCS-51單片機(jī)與PC機(jī)的通信[J].天津理工學(xué)院學(xué)報,1999,15(2):57-61.

        [5]徐興元,沈憲章,甕嘉民.PC機(jī)與單片機(jī)串行通信的一種新方法[J].礦山機(jī)械,2005(1):64-65.

        [6]王宏偉,吳建設(shè).基于VC++6.0的串行通信設(shè)計(jì)與實(shí)現(xiàn)[J].黃石高等??茖W(xué)校學(xué)報,2003,19(2):16-19.

        [7]曹連民,石健,黃德杰.VC++中實(shí)現(xiàn)PC機(jī)與單片機(jī)的串行通訊[J].山東科技大學(xué)學(xué)報:自然科學(xué)版,2003(1):100-102.

        [8]王琳瑯,張伯珩,邊川平.Windows環(huán)境下PC機(jī)與單片機(jī)串行通信的實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2004,27(3):81-83.

        [9]曾自強(qiáng),王玉菡.用VC++實(shí)現(xiàn)單片機(jī)與PC機(jī)串口通信的三種方法[J].自動化與儀器儀表,2005(3):60-63.

        [10]鄭阿奇,丁有和,劉毅.Visual C++.NET程序設(shè)計(jì)教程[M].北京:機(jī)械工業(yè)出版社,2005.

        作者簡介 歐意文 女,1986年出生,長安大學(xué)電子與控制工程學(xué)院學(xué)生。

        韓 毅 男,1975年出生,博士,主要研究領(lǐng)域?yàn)闄C(jī)電一體化與項(xiàng)目管理。

        汪貴平 男,1963年出生,教授,碩士研究生導(dǎo)師,主要研究方向是智能測控。

        国产精品久久久av久久久| 女同同性av观看免费| av免费网址在线观看| 成年午夜无码av片在线观看| 国产精品天天看大片特色视频| 中文字幕被公侵犯的丰满人妻| 中文字幕精品一区久久| 黑人巨大精品欧美一区二区| 国产爽爽视频在线| 一区二区三区在线免费av| 日韩精品一区二区在线天天狠天| 国产亚洲日本精品无码| 欧美中文在线观看| 一级黄色一区二区三区视频| 白嫩人妻少妇偷人精品| 无码日韩精品一区二区三区免费| 亚洲色成人网一二三区| 一区二区三区视频免费观看在线 | 成人无码一区二区三区| 亚洲精品综合欧美一区二区三区| 99re6久精品国产首页| 中文字幕高清视频婷婷| 乱人伦精品视频在线观看| 日韩一线无码av毛片免费| 国产一区二区三区高清视频| 国产精品狼人久久影院软件介绍| 精品国产一二三产品区别在哪| 日本欧美在线播放| 日韩av在线免费观看不卡| 曰韩无码av一区二区免费| 国产午夜福利小视频合集| 中文字幕高清无码不卡在线| 亚洲av毛片在线网站| 日本一卡2卡3卡4卡无卡免费网站| 国产精品亚洲专区无码web| 国产免费一区二区三区在线视频| 欧美亚洲一区二区三区| av无码久久久久久不卡网站| 亚洲国产日韩av一区二区| 女色av少妇一区二区三区| 国产香蕉尹人在线观看视频|