,
(1.西安科技大學(xué) 電氣與控制工程學(xué)院,西安 710054; 2.中國(guó)移動(dòng)通信集團(tuán)設(shè)計(jì)院有限公司 陜西分公司,西安 710065)
近幾年我國(guó)工業(yè)的迅速發(fā)展對(duì)工業(yè)生產(chǎn)車間和倉(cāng)庫(kù)中的環(huán)境信息監(jiān)測(cè)提出了更高的要求。針對(duì)傳統(tǒng)有線監(jiān)測(cè)方式會(huì)導(dǎo)致人力及物力資源的極大消耗,運(yùn)行成本高及信息反饋滯后的不足,系統(tǒng)采用無(wú)線智能小車來(lái)對(duì)環(huán)境數(shù)據(jù)進(jìn)行實(shí)時(shí)采集并在上位機(jī)進(jìn)行顯示、存儲(chǔ)及報(bào)警等。
無(wú)線智能小車是移動(dòng)機(jī)器人的一個(gè)重要分支,其特點(diǎn)是可以在復(fù)雜環(huán)境中自動(dòng)控制小車避開障礙物按照預(yù)定路徑行進(jìn)。智能小車上的傳感器可實(shí)時(shí)采集復(fù)雜環(huán)境中的重要信息以實(shí)現(xiàn)某種特定的功能,彌補(bǔ)了傳統(tǒng)監(jiān)測(cè)系統(tǒng)的不足,具有一定的實(shí)用價(jià)值[1]。
系統(tǒng)設(shè)計(jì)一個(gè)基于LabVIEW的無(wú)線智能小車系統(tǒng),分為上位機(jī)和下位機(jī)兩個(gè)部分,下位機(jī)的控制模塊由STM32F-103RCT6作為控制核心;執(zhí)行機(jī)構(gòu)模塊具有行走和越障功能,既可通過(guò)上位機(jī)遠(yuǎn)程手動(dòng)操控小車進(jìn)行基本行走,也可切換到自動(dòng)尋跡模式中利用紅外對(duì)管傳感器探測(cè)周圍的環(huán)境信息,進(jìn)而對(duì)前方的障礙物做出及時(shí)反應(yīng);傳感器模塊負(fù)責(zé)采集障礙信息和環(huán)境信息,對(duì)當(dāng)前環(huán)境溫濕度、煙霧和光強(qiáng)數(shù)據(jù)進(jìn)行采集,并通過(guò)人機(jī)接口模塊將數(shù)據(jù)無(wú)線傳輸給上位機(jī)界面,利用LabVIEW軟件的圖形化編程語(yǔ)言,設(shè)計(jì)上位機(jī)并實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)曲線與儀表顯示,歷史記錄與存儲(chǔ),報(bào)警處理等功能[2]。系統(tǒng)的總體設(shè)計(jì)方案如圖1所示。
圖1 系統(tǒng)總體設(shè)計(jì)方案
為了實(shí)現(xiàn)編程方便快捷,系統(tǒng)設(shè)計(jì)可靠性高的目的,本系統(tǒng)采用的控制器為STM32F103RCT6芯片,它擁有增強(qiáng)的I/O和外設(shè)廣泛的特點(diǎn),有3個(gè)12位ADC,4個(gè)通用16位定時(shí)器和兩個(gè)PWM定時(shí)器,具有先進(jìn)的通信接口,具有用于擴(kuò)展資源的2個(gè)I2C,3個(gè)同步串行外設(shè)接口SPI,5個(gè)串口通信USART,1個(gè)USB可供使用,該款A(yù)RM擁有豐富的資源,用起來(lái)方便快捷、可靠性相對(duì)較高[3]。
智能小車尋跡的實(shí)現(xiàn)主要利用小車前方的兩個(gè)左右光電傳感器檢測(cè)黑白線,實(shí)現(xiàn)小車能跟著白線行走,同時(shí)也可避開障礙物,即在尋跡過(guò)程中,若遇到障礙物可自行繞開,繞開后繼續(xù)尋跡。光電傳感器實(shí)際為紅外對(duì)射管,由紅外發(fā)射管和接收管組成。光電傳感器利用黑白線對(duì)紅外線不同的反射能力,通過(guò)紅外接收管接收發(fā)射回的不同光強(qiáng)信號(hào)并轉(zhuǎn)換為電流信號(hào),最后通過(guò)電阻轉(zhuǎn)換為控制器可識(shí)別的高低電平。
當(dāng)小車跟著白線前進(jìn)時(shí),如果向左偏離了白線,則右邊的傳感器會(huì)產(chǎn)生一個(gè)低電平,控制器判斷這個(gè)信號(hào),然后右拐,回到白線后,兩個(gè)尋跡傳感器輸出信號(hào)為高電平,小車?yán)^續(xù)前進(jìn),兩個(gè)尋跡傳感器放置在白線的外側(cè),緊貼白線邊緣[4]。
智能小車上安裝的檢測(cè)外界溫濕度數(shù)據(jù)的傳感器為DHT11,具有響應(yīng)快、抗干擾能力強(qiáng)和性價(jià)比高的優(yōu)點(diǎn)[5];采用光敏電阻模塊來(lái)檢測(cè)外界光照強(qiáng)度,工作電壓為3.3 V到5 V,靈敏度可調(diào),比較器選用LM393,工作穩(wěn)定;采用MQ-2傳感器來(lái)檢測(cè)工廠、倉(cāng)庫(kù)的煙霧濃度,該傳感器采用的是二氧化錫半導(dǎo)體氣敏材料,屬于表面離子式N型半導(dǎo)體,通過(guò)它使用簡(jiǎn)單電路就可將電導(dǎo)率的變化轉(zhuǎn)換為氣體濃度相對(duì)應(yīng)的輸出信號(hào),是一款適合多種應(yīng)用的低成本傳感器。當(dāng)它與煙霧接觸時(shí),會(huì)引起電導(dǎo)率的變化,從而獲得煙霧存在的信息,煙霧濃度越大,電導(dǎo)率越大輸出電阻就會(huì)越低[6]。
無(wú)線接收發(fā)射模塊的設(shè)計(jì)是個(gè)重點(diǎn),它是連接各采集點(diǎn)與上位機(jī)的紐帶。無(wú)線模塊對(duì)環(huán)境較為敏感,同時(shí)無(wú)線模塊的功耗以及傳輸距離也是影響系統(tǒng)可用度的一個(gè)因素,所以必須選用能自己檢測(cè)傳輸錯(cuò)誤,功耗小并且傳輸距離長(zhǎng)的無(wú)線模塊。
相比藍(lán)牙串口模塊傳輸距離短,成本較高的缺點(diǎn),智能小車監(jiān)測(cè)系統(tǒng)使用無(wú)線模塊NRF24L01對(duì)小車進(jìn)行遠(yuǎn)程操作,同時(shí)各路傳感器數(shù)據(jù)的傳輸也通過(guò)該模塊。NRF24L01是無(wú)線收發(fā)一體模塊,內(nèi)置2.4 GHz 天線,采用跳頻技術(shù)可以有效減小同頻干擾,具有信道多的優(yōu)點(diǎn),收發(fā)一體用起來(lái)比較方便,速度快,相同時(shí)間內(nèi)傳輸?shù)臄?shù)據(jù)量大,工作電壓在1.9伏到3.6伏之間,傳輸速率為54 Mbps,因?yàn)樵诳罩袀鬏數(shù)乃俾史浅5亩蹋杂行У谋苊饬藷o(wú)線傳輸中的碰撞現(xiàn)象[7]。
當(dāng)采集的溫濕度、光強(qiáng)和煙霧數(shù)據(jù)發(fā)生異常時(shí),監(jiān)測(cè)系統(tǒng)會(huì)在上位機(jī)進(jìn)行指示燈報(bào)警和聲音報(bào)警,同時(shí)在下位機(jī)使用SIM900A模塊給指定的電話號(hào)碼打電話,提醒監(jiān)測(cè)人員采取措施。報(bào)警模塊使用控制器的串口3進(jìn)行數(shù)據(jù)通信,PB10端口和PB11端口分別與SIM900A模塊的TXD、RXD連接,采用單獨(dú)的供電模塊來(lái)供電,保證電壓5 V以上,因?yàn)樵诖螂娫挼臅r(shí)候模塊瞬時(shí)電流能夠到達(dá)2A左右,串口3的波特率為9 600,與串口1的波特率115 200區(qū)別開來(lái)[8]。
小車的控制分為自動(dòng)和手動(dòng)模式兩種,當(dāng)標(biāo)志位為0時(shí),小車為自動(dòng)控制,小車到達(dá)規(guī)定的軌道,開啟尋跡模式,繞著白色軌道行進(jìn);當(dāng)標(biāo)志位為1時(shí),小車為手動(dòng)控制,通過(guò)上位機(jī)LabVIEW來(lái)對(duì)小車進(jìn)行前進(jìn)、后退、左轉(zhuǎn)和右轉(zhuǎn)的控制。小車控制流程如圖2所示。
圖2 智能小車控制程序流程圖
智能小車監(jiān)測(cè)系統(tǒng)中采用L298N驅(qū)動(dòng)模塊來(lái)控制小車行進(jìn),電機(jī)驅(qū)動(dòng)模塊根據(jù)收到的不同信號(hào)來(lái)實(shí)現(xiàn)小車的前進(jìn)、后退、左轉(zhuǎn)和右轉(zhuǎn),電機(jī)驅(qū)動(dòng)程序流程如圖3所示。
圖3 智能小車電機(jī)驅(qū)動(dòng)程序流程圖
小車的下位報(bào)警模塊程序設(shè)計(jì)中采用字符串?dāng)?shù)組來(lái)存儲(chǔ)AT指令,撥打電話的AT指令為ATD,用于撥打任意電話號(hào)碼,格式為“ATD+號(hào)碼+;”,末尾的分號(hào)一定要加上,否則不能成功撥號(hào),同時(shí)采用串口3的內(nèi)部函數(shù)進(jìn)行數(shù)據(jù)發(fā)送和接收。
上位系統(tǒng)包括上位主控制器STC12C5A60S2單片機(jī)和用LabVIEW軟件開發(fā)的人機(jī)界面。上位主控制器配合無(wú)線接收模塊NRF24L01工作以保證上下位機(jī)數(shù)據(jù)通過(guò)串口與人機(jī)界面進(jìn)行正常通信。小車的上位機(jī)界面設(shè)計(jì)中,后面板在While循環(huán)中采用3層式的層疊式順序結(jié)構(gòu),順序結(jié)構(gòu)0中進(jìn)行串口配置,配置信息為波特率115 200,有效數(shù)據(jù)位為8位,停止位為1位,與下位機(jī)程序中串口配置一致,從而實(shí)現(xiàn)了串口通信;
順序結(jié)構(gòu)1中采用case條件結(jié)構(gòu)進(jìn)行小車控制和數(shù)據(jù)采集,顯示和聲光報(bào)警。后面板在通過(guò)串口對(duì)下位環(huán)境數(shù)據(jù)讀取時(shí),不進(jìn)行數(shù)據(jù)的寫入,后面板數(shù)據(jù)讀取程序框圖如圖4所示,這里采用布爾控件作為數(shù)據(jù)采集開關(guān)來(lái)實(shí)現(xiàn)數(shù)據(jù)讀取的啟動(dòng)和停止,當(dāng)開關(guān)打開,條件結(jié)構(gòu)為真時(shí)實(shí)現(xiàn)數(shù)據(jù)的讀取功能;當(dāng)開關(guān)斷開,條件結(jié)構(gòu)為假時(shí)關(guān)閉數(shù)據(jù)的讀取功能,實(shí)現(xiàn)數(shù)據(jù)寫入功能,通過(guò)一個(gè)數(shù)據(jù)采集開關(guān)將串口的讀取和寫入功能區(qū)分開[9]。
圖4 后面板數(shù)據(jù)讀取程序框圖
通過(guò)串口將上位機(jī)數(shù)據(jù)寫入下位機(jī)的后面板程序框圖如圖5所示,該面板設(shè)計(jì)主要為了是從上位機(jī)實(shí)現(xiàn)對(duì)小車的遠(yuǎn)程控制。
圖5 后面板數(shù)據(jù)寫入程序框圖
向串口寫入的內(nèi)容主要是:ONA、ONB、ONC、OND、ONE、ONF、ONJ,分別實(shí)現(xiàn)小車的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)、自動(dòng)控制、停車、手動(dòng)控制,該界面主要采用了Labview中的事件結(jié)構(gòu)控件來(lái)實(shí)現(xiàn),當(dāng)觸發(fā)不同的按鈕時(shí)將不同的事件信息寫入,并判斷應(yīng)該進(jìn)行的對(duì)應(yīng)動(dòng)作。這里要注意,在進(jìn)行數(shù)據(jù)寫入時(shí)必須在字符的末尾加上‘ ’符號(hào),因?yàn)樵谙挛豢刂破鱯tm32的函數(shù)封裝中,對(duì)于字符串的識(shí)別只有系統(tǒng)識(shí)別到該符號(hào)時(shí),才默認(rèn)接收字符結(jié)束,在圖5中,將字符串‘ ’的顯示格式設(shè)置為‘’代碼顯示。另外在刷新按鈕按下之后,能將之前的數(shù)據(jù)清零,同時(shí)會(huì)觸發(fā)文本朗讀子VI程序模塊以實(shí)現(xiàn)當(dāng)數(shù)據(jù)超出上限時(shí)的聲音報(bào)警[10-11];
順序結(jié)構(gòu)2中利用創(chuàng)建數(shù)組模塊和寫入及讀取電子表格文件模塊將下位機(jī)采集到的不同數(shù)據(jù)進(jìn)行歷史記錄與歸檔,將不同時(shí)刻采集的數(shù)據(jù)以Excel的表格形式存儲(chǔ)在D盤以供查詢[12]。
人機(jī)界面采用圖形化模塊語(yǔ)言進(jìn)行編程,包括小車控制界面,溫濕度監(jiān)測(cè)界面,煙霧光照監(jiān)測(cè)界面和歷史數(shù)據(jù)記錄界面,以實(shí)現(xiàn)小車的手動(dòng)和自動(dòng)控制,環(huán)境參數(shù)的趨勢(shì)曲線顯示、儀表顯示和參數(shù)超過(guò)上限的實(shí)時(shí)報(bào)警、歷史報(bào)表記錄等工作,其中上位機(jī)不同環(huán)境參數(shù)監(jiān)測(cè)界面和歷史報(bào)表界面如圖6所示。
圖6 上位機(jī)運(yùn)行界面
從圖6的(a)和(b)圖可知,濕度參數(shù)和煙霧濃度參數(shù)超出上限,系統(tǒng)發(fā)出聲光報(bào)警,即上限報(bào)警燈變?yōu)榧t色并且觸發(fā)上位系統(tǒng)喇叭,提醒工作人員盡快采取相應(yīng)措施。圖6(c)是各個(gè)參數(shù)的歷史報(bào)表記錄,可根據(jù)時(shí)間進(jìn)行查看和歸檔。
智能小車無(wú)線監(jiān)測(cè)系統(tǒng)將STM32F103RCT6控制芯片與LabVIEW相結(jié)合,可自主實(shí)現(xiàn)尋跡避障等動(dòng)作,同時(shí)可通過(guò)上位機(jī)對(duì)小車進(jìn)行高效率的前進(jìn)、后退、左轉(zhuǎn)及右轉(zhuǎn)控制,利用LabVIEW軟件建立上位機(jī)界面,通過(guò)上位機(jī)對(duì)環(huán)境數(shù)據(jù)進(jìn)行采集、顯示、存儲(chǔ)、報(bào)警等。系統(tǒng)的硬件實(shí)現(xiàn)模塊化設(shè)計(jì),可改變或增減傳感器監(jiān)測(cè)模塊,以滿足不同需求,可擴(kuò)展性強(qiáng),值得推廣應(yīng)用。
參考文獻(xiàn):
[1] 張 磊.智能小車控制系統(tǒng)的設(shè)計(jì)[D].吉林:吉林大學(xué),2016.
[2] 周 柱.基于STM32的智能小車研究[D].成都:西南交通大學(xué),2011.
[3] 王晨輝,吳 悅,楊 凱.基于STM32的多通道數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2016,42(1):51-53,57.
[4] 李 根.基于STM32的車輛智能安全行車控制系統(tǒng)[D].天津:天津職業(yè)技術(shù)師范大學(xué),2016.
[5] 李長(zhǎng)有,王文華.基于DHT11溫濕度測(cè)控系統(tǒng)設(shè)計(jì)[J].機(jī)床與液壓,2013,41(13):107-108.
[6] 孫寶元,楊寶清.傳感器原理及其應(yīng)用手冊(cè)[M].北京:機(jī)械工業(yè)出版社,2004.
[7] 高 翔.基于無(wú)線通信的電力參數(shù)采集與處理系統(tǒng)[D].廣西:廣西大學(xué),2006.
[8] 張立勛,李雪偉,唐小景.STM32與LabVIEW串行通信的設(shè)計(jì)[J].煤礦機(jī)械,2011,32(5):215-217.
[9] 王顯軍.LabVIEW對(duì)串口采樣測(cè)量數(shù)據(jù)的處理[J].電子測(cè)量技術(shù),2014(3):107-111.
[10] 李紅剛,張素萍.基于單片機(jī)和LabVIEW的多路數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].國(guó)外電子測(cè)量技術(shù),2014,35(6):60-63.
[11] 豈興明,田京京,朱洪岐.LabVIEW入門與實(shí)戰(zhàn)開發(fā)100例[M].北京:電子工業(yè)出版社,2014.
[12] 胡乾苗.LabVIEW虛擬儀器設(shè)計(jì)與應(yīng)用[M].北京:清華大學(xué)出版社,2016.