魏明哲
(唐山學(xué)院智能與信息工程學(xué)院,河北 唐山063000)
在智能車輛系統(tǒng)中,智能車輛的智能控制平臺(tái)最能從根本上反映整個(gè)車的狀況,是駕駛員和智能車輛進(jìn)行信息交流的主要渠道,這對(duì)智能車輛整體控制有著極其重要的作用。因此本論文運(yùn)用.NET平臺(tái)結(jié)合C#語(yǔ)言編程,建立智能車輛的速度控制平臺(tái),實(shí)時(shí)監(jiān)測(cè)電機(jī)的轉(zhuǎn)動(dòng)并顯示車輛的速度數(shù)據(jù),通過(guò)實(shí)驗(yàn)數(shù)據(jù)收集與分析,智能車輛控制平臺(tái)功能達(dá)到設(shè)計(jì)要求。
智能車輛行駛速度監(jiān)控系統(tǒng)由智能車輛系統(tǒng)和地面控制站系統(tǒng),包括C#虛擬儀表模塊、無(wú)線發(fā)射和接收模塊、單片機(jī)控制模塊、光電技術(shù)模塊及電機(jī)驅(qū)動(dòng)模塊組成。系統(tǒng)結(jié)構(gòu)圖如圖1和2所示。
圖1 智能車輛設(shè)計(jì)
圖2 地面控制站
C#儀表模塊用于實(shí)現(xiàn)上位機(jī)向下位機(jī)數(shù)據(jù)傳輸,在窗口化的程序中,改變虛擬儀表界面中數(shù)據(jù)的大小,并通過(guò)RS-232串口將用戶輸入信息發(fā)送給無(wú)線發(fā)射模塊;或者將無(wú)線接收模塊接收的信息通過(guò)串口,將數(shù)據(jù)形象化、數(shù)據(jù)化,呈現(xiàn)在虛擬儀表的界面里。無(wú)線發(fā)射模塊和無(wú)線接收模塊則是通過(guò)NRF24L01芯片進(jìn)行數(shù)據(jù)傳輸,NRF24L01支持多塊芯片接收方式,接收與自己地址匹配的數(shù)據(jù)。單片機(jī)控制模塊接收經(jīng)由CP發(fā)送到串口到的數(shù)據(jù),并將數(shù)據(jù)送往無(wú)線發(fā)送模塊,或者接收無(wú)線接收模塊收到的數(shù)據(jù),并將數(shù)據(jù)進(jìn)行PWM運(yùn)算,通過(guò)控制占空比從而控制電機(jī)的轉(zhuǎn)速。
無(wú)線數(shù)據(jù)傳輸部分采用NRF24L01模塊,該模塊工作在2.4GHz全球開(kāi)放ISM頻段,最大20dBm發(fā)射功率,免許可證使用支持六路通道的數(shù)據(jù)接收。低工作電壓為1.9~3.6V,支持125頻點(diǎn)的多頻點(diǎn)控制,滿足多點(diǎn)通信和跳頻通信需要。具有自動(dòng)重發(fā)功能,能夠自動(dòng)檢測(cè)和重發(fā)丟失的數(shù)據(jù)包,重發(fā)時(shí)間及重發(fā)次數(shù)可軟件控制自動(dòng)存儲(chǔ)未收到應(yīng)答信號(hào)的數(shù)據(jù)包自動(dòng)應(yīng)答功能,在收到有效數(shù)據(jù)后,模塊自動(dòng)發(fā)送應(yīng)答信號(hào),無(wú)須另行編程載波檢測(cè)。
發(fā)送端模塊采用STC89C52單片機(jī)進(jìn)行控制,單片機(jī)接收上位機(jī)發(fā)送的數(shù)據(jù),并通過(guò)位于上位的NRF24L01送給位于下位的NRF24L01。NRF24L01的數(shù)據(jù)讀寫(xiě)使用的是標(biāo)準(zhǔn)的SPI接口,采用單片機(jī)上IO口進(jìn)行連接與控制。
本文系統(tǒng)測(cè)量直流電機(jī)的速度的基本核心主要是利用的是STC89C52單片機(jī),本文選用光電傳感器來(lái)進(jìn)行測(cè)速。光電傳感器的主控單元時(shí)通過(guò)單片機(jī)的IO口把脈沖輸入單片機(jī),用定時(shí)用定時(shí)計(jì)數(shù)器T0和定時(shí)計(jì)數(shù)器T1對(duì)脈沖信號(hào)進(jìn)行計(jì)數(shù),每一次中斷的產(chǎn)生間隔是5ms,在50個(gè)中斷之后(即0.5s)進(jìn)行一次對(duì)轉(zhuǎn)速的處理,在51單片機(jī)對(duì)T1的脈沖數(shù)運(yùn)算進(jìn)行轉(zhuǎn)化之后,將計(jì)算得到的電機(jī)轉(zhuǎn)速通過(guò)無(wú)線發(fā)送模塊發(fā)送出去,發(fā)送到與cp連接的另一塊單片機(jī)上,然后通過(guò)與cp連接的串口最終發(fā)送到cp上,之后通過(guò)用C#語(yǔ)言編寫(xiě)的智能儀表顯示出來(lái)。
因?yàn)镻WM在控制領(lǐng)域以及調(diào)速方面都應(yīng)用非常廣泛,本系統(tǒng)就是利用PWM控制占空比以此來(lái)改變電機(jī)速度。在馬達(dá)控制方面采用用的脈寬調(diào)速(PWM)是利用一個(gè)固定的頻率進(jìn)行控制電源的斷開(kāi)或接通,并通過(guò)一個(gè)周期內(nèi)斷開(kāi)和接通時(shí)間的長(zhǎng)短的改變,即改變電機(jī)兩端電壓的占空比以此改變電機(jī)兩端的平均電壓,用這種方法來(lái)控制電機(jī)的轉(zhuǎn)速。因此PWM還被稱之為直流電機(jī)的開(kāi)關(guān)驅(qū)動(dòng)裝置,用來(lái)控制直流電機(jī)的運(yùn)行。
地面控制站的設(shè)計(jì)是本文最主要的部分,控制站使用C#高級(jí)語(yǔ)言編寫(xiě),具有極高的效率。尤其是SerialPort串口控件,必須設(shè)置正確的波特率,并且有開(kāi)啟命令和關(guān)閉命令。設(shè)計(jì)的儀表是以控件的形式存在的,所以在開(kāi)始之前要計(jì)算GDI+中角度的問(wèn)題。
該儀表中主要分為兩部分:一部分為背景即刻度,精度,外框等一些基本不需要變化的部分,一部分為前景即指針部分,所以為了達(dá)到兩個(gè)圖層互不影響的功能,將背景設(shè)置在控件的背景屬性上,而指針部分則需要一個(gè)pictrueBox控件作為載體。首先描繪背景,在制作背景時(shí),又分為刻度、外框、指針的固定中心等等。最終繪制結(jié)果如圖3所示。
圖3 用C#繪制完成的儀表
程序開(kāi)始,對(duì)無(wú)線模塊NRF24L01+進(jìn)行初始化,設(shè)置CE=0,無(wú)線模塊進(jìn)入TX模式,設(shè)置TX地址,寫(xiě)TX數(shù)據(jù)寬度,設(shè)置RX自動(dòng)應(yīng)答的地址,填充TX發(fā)送數(shù)據(jù),選擇RF頻道,波特率和LNAHCURR。然后對(duì)串口進(jìn)行初始化,單片機(jī)接收上位機(jī)傳輸數(shù)據(jù),當(dāng)按下開(kāi)關(guān)控制鍵,接口為1,此時(shí)啟動(dòng)發(fā)送模式,將數(shù)據(jù)發(fā)送出去。
本設(shè)計(jì)主要有兩大部分組成,地面控制站和智能車輛,地面控制站部分由單片機(jī)控制模塊和無(wú)線模塊構(gòu)成發(fā)射平臺(tái),通過(guò)串口連接PC,接收由PC通過(guò)RS-232發(fā)送的數(shù)據(jù),然后通過(guò)NRF24L01+無(wú)線模塊發(fā)送。智能車輛部分由單片機(jī)控制的光電測(cè)速器模塊、無(wú)線模塊和車輛馬達(dá)模塊構(gòu)成,終端無(wú)線模塊接收由地面控制站部分發(fā)送過(guò)來(lái)的數(shù)據(jù),經(jīng)過(guò)單片機(jī)處理并進(jìn)行控制馬達(dá)速度。系統(tǒng)經(jīng)實(shí)驗(yàn)反復(fù)驗(yàn)證,達(dá)到設(shè)計(jì)要求。
[1]王光.基于C#的監(jiān)控組態(tài)軟件開(kāi)發(fā)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2012.
[2]張武,顧凱.基于51單片機(jī)的車用儀表設(shè)計(jì)與實(shí)現(xiàn)[J].今日電子,2005,(1).
[3]王世勛.遠(yuǎn)程無(wú)線數(shù)據(jù)采集系統(tǒng)的研究與設(shè)計(jì)[D].武漢:武漢理工大學(xué),2006.
[4]李培樂(lè),鄭心武.基于51單片機(jī)的測(cè)速裝置的設(shè)計(jì)[J].信息技術(shù)與信息化,2014,(6).