李 東 霖 ,郭 強(qiáng) ,高 明 明 ,朱 永 強(qiáng)
(青島理工大學(xué)機(jī)械與汽車工程學(xué)院,青島 266520)
隨著科技的發(fā)展,車聯(lián)網(wǎng)作為交通領(lǐng)域的一項(xiàng)新技術(shù)已成為近年的研究熱點(diǎn)。車聯(lián)網(wǎng)技術(shù)是利用先進(jìn)的傳感器、網(wǎng)絡(luò)、控制等技術(shù)對小車及周邊進(jìn)行監(jiān)控,從而達(dá)到“零堵塞”“零傷亡”“零超限”的專用控制系統(tǒng)。[1]在交通專業(yè)的教學(xué)中,讓學(xué)生更好地認(rèn)識并了解車聯(lián)網(wǎng)很有必要。智能小車是在單片機(jī)控制、電機(jī)驅(qū)動(dòng)的基礎(chǔ)上集成了各種傳感器模塊的模型車,具有結(jié)構(gòu)簡單、易攜帶、操作方便等優(yōu)點(diǎn)。[2]由于單片機(jī)內(nèi)存較小,將車聯(lián)網(wǎng)相關(guān)技術(shù)的控制代碼全部存儲(chǔ)于單片機(jī)中會(huì)產(chǎn)生代碼復(fù)雜、調(diào)試混亂等缺陷,[3]為了解決相關(guān)問題,本文結(jié)合車聯(lián)網(wǎng)相關(guān)技術(shù)設(shè)計(jì)了一種基于單片機(jī)和LabVIEW 的智能小車實(shí)驗(yàn)平臺。LabVIEW 可實(shí)現(xiàn)圖形化編程,內(nèi)嵌豐富的庫函數(shù)和接口,便于實(shí)現(xiàn)現(xiàn)場數(shù)據(jù)的處理。[4]將復(fù)雜的控制和信息處理代碼寫入LabVIEW 中,單片機(jī)中僅保留傳感器數(shù)據(jù)采集、信息傳輸和電機(jī)控制的代碼,實(shí)現(xiàn)智能小車的在線調(diào)試和無線聯(lián)網(wǎng)控制。學(xué)生在使用過程中,可以在計(jì)算機(jī)端LabVIEW 軟件中實(shí)時(shí)修改代碼,不必通過數(shù)據(jù)線將新代碼燒錄到單片機(jī)中,從而有效提高了學(xué)習(xí)效率。
基于車聯(lián)網(wǎng)的智能小車實(shí)驗(yàn)平臺,由模型車代替真實(shí)車輛,搭載基于無線通信網(wǎng)絡(luò)的智能控制系統(tǒng),包括LabVIEW 上位機(jī)、單片機(jī)下位機(jī)、傳感器、驅(qū)動(dòng)模塊等。
在模型車上安裝單片機(jī)和傳感器,單片機(jī)控制傳感器對小車周圍和自身的一些數(shù)據(jù)進(jìn)行采集,包括車速、周圍溫度、電池電壓等,并通過單片機(jī)的WiFi 模塊將數(shù)據(jù)傳遞給上位機(jī);上位機(jī)LabVIEW 接收到信息后,經(jīng)過后臺程序處理,在前面板上顯示具體數(shù)值。用戶通過LabVIEW 調(diào)整小車的車速和運(yùn)行方向,根據(jù)實(shí)時(shí)狀態(tài)數(shù)據(jù)調(diào)整相關(guān)控制器,設(shè)計(jì)思路如圖1 所示。用戶可以在相同名稱和密碼的局域網(wǎng)下不同的計(jì)算機(jī)上使用該實(shí)驗(yàn)平臺。
圖1 智能小車實(shí)驗(yàn)平臺整體設(shè)計(jì)思路流程圖
本實(shí)驗(yàn)平臺的下位機(jī)車載硬件系統(tǒng)以單片機(jī)為核心,此外還包括溫度傳感器、車速傳感器、循跡傳感器、電壓調(diào)節(jié)模塊、電機(jī)驅(qū)動(dòng)模塊、電池等。系統(tǒng)硬件在單片機(jī)的統(tǒng)一調(diào)度下有序運(yùn)行,實(shí)物如圖2 所示。
圖2 硬件實(shí)物圖
1) 主控模塊。智能小車實(shí)驗(yàn)平臺要求控制芯片不僅能調(diào)用各種傳感器和模塊,還要準(zhǔn)確地完成與上位機(jī)的信息傳遞,因此選用的單片機(jī)應(yīng)具有數(shù)據(jù)采集、計(jì)算以及強(qiáng)大的通信能力。[5-6]本實(shí)驗(yàn)平臺選用了ESP32 單片機(jī)作為控制核心,它采用40 納米工藝,具有2.4GHz 雙模WiFi、藍(lán)牙和豐富的擴(kuò)展接口,能滿足實(shí)驗(yàn)平臺的運(yùn)行需求。
2) 電源模塊??紤]到該實(shí)驗(yàn)平臺的特殊性,電源應(yīng)為可移動(dòng)電源,且輸出穩(wěn)定,故采用容量為2 800 mAh 的鋰電池,電壓最大為7.4 V。但由于ESP32 單片機(jī)和傳感器的最大輸入電壓為5 V,因此需要通過DC-DC 降壓模塊(型號為MP1584EN)將鋰電池的輸出電壓降至5 V 后,再為單片機(jī)和傳感器供電。
3) 電機(jī)驅(qū)動(dòng)模塊。該實(shí)驗(yàn)平臺的特點(diǎn)之一是小車可根據(jù)接收的上位機(jī)信息調(diào)整車速和方向。為簡化控制流程,小車采用差速轉(zhuǎn)向,4 個(gè)驅(qū)動(dòng)電機(jī)兩兩并聯(lián),分為左車輪電機(jī)和右車輪電機(jī)。電機(jī)驅(qū)動(dòng)模塊采用的是L298N 兩路直流電機(jī)驅(qū)動(dòng)模塊,正轉(zhuǎn)和反轉(zhuǎn)均可實(shí)現(xiàn)PWM(Pulse Width Modulation,脈沖寬度調(diào)制,簡稱PWM)調(diào)速。
4) 溫度傳感器。實(shí)驗(yàn)平臺在運(yùn)行過程中,要對小車自身和周圍的溫度進(jìn)行監(jiān)測,以確保實(shí)驗(yàn)平臺的運(yùn)行穩(wěn)定。溫度傳感器選用的型號為DS18B20,測溫范圍為-5℃~+125℃,誤差不超過2℃。該模塊采用單總線通信模式,無須信號調(diào)理電路,只要在單片機(jī)主程序中調(diào)用相應(yīng)的庫函數(shù)即可使用,相比于傳統(tǒng)的測溫模塊,使用更加方便。
5) 車速傳感器。實(shí)驗(yàn)平臺在運(yùn)行的過程中要實(shí)時(shí)反饋小車的車速,上位機(jī)根據(jù)車速調(diào)整驅(qū)動(dòng)電機(jī)的控制指令,以保證小車的行駛符合預(yù)期。車速傳感器采用的是碼盤脈沖計(jì)數(shù)器(一種槽型對射光電傳感器),由1 個(gè)紅外發(fā)光二極管和1 個(gè)NPN 型發(fā)光三極管組成,碼盤帶有20 個(gè)柵格,安裝于電機(jī)轉(zhuǎn)軸的另一側(cè)。電機(jī)旋轉(zhuǎn),碼盤轉(zhuǎn)動(dòng),將紅外信號通過柵格間斷發(fā)送至對面接收端。遮擋時(shí),信號端輸出低電平;不遮擋時(shí),信號端輸出高電平。信號傳至單片機(jī),通過相關(guān)代碼將電信號轉(zhuǎn)變成車速信息后傳遞給上位機(jī)。
6) 電壓監(jiān)測。因?yàn)殇囯姵夭荒茉诘碗妷合逻^度使用,故需要對電池的電壓進(jìn)行實(shí)時(shí)監(jiān)測。通過單片機(jī)ESP32 中ADC(模擬數(shù)字轉(zhuǎn)換器)引腳來接收電信號,由于ADC 引腳最大輸入電壓在3.3 V,因此需要通過外接分壓電阻將電源電壓按比例分壓降至3.3 V 以內(nèi)。通過對應(yīng)的程序?qū)⑤斎氲碾娦盘栠M(jìn)行轉(zhuǎn)換,計(jì)算出實(shí)際電壓值,將電壓值數(shù)據(jù)傳遞給上位機(jī)。
7) 循跡模塊。為了增加實(shí)驗(yàn)平臺特點(diǎn)并提高學(xué)生操作的興趣,設(shè)計(jì)小車自動(dòng)循跡行駛模式,使小車按照外部設(shè)定的路線進(jìn)行運(yùn)動(dòng)。通過ESP32 單片機(jī)控制循跡傳感器,檢測人為鋪設(shè)的軌跡路線,沿著既定路線行駛。具體操作為,循跡模塊檢測并記錄小車行駛軌跡相對于給定軌跡的偏離程度,并通過ESP32將相關(guān)數(shù)據(jù)上傳至上位機(jī)LabVIEW,在LabVIEW 內(nèi)部進(jìn)行車速、轉(zhuǎn)向計(jì)算后,迅速向下位機(jī)輸出車速控制、轉(zhuǎn)向控制等指令,實(shí)現(xiàn)小車的循跡行駛。本實(shí)驗(yàn)平臺采用的是五路循跡模塊,型號為BDF-1000,其原理為五路靈敏的紅外線傳感器,能夠精準(zhǔn)識別黑白線,觸發(fā)傳感器高低電平的變化,檢測偏離程度。
循跡傳感器需求電壓為3.0 V~5.5 V,這里可以直接用鋰電池通過降壓后的5 V 電壓供電,GND 接地,信號通道S1、S2、S3、S4、S5 分別對應(yīng)連接ESP32 的GPIO12、GPIO14、GPIO27、GPIO26、GPIO25 引腳。電壓、車速、溫度3 個(gè)監(jiān)測模塊信號通道均為1 個(gè),分別對應(yīng)連接GPIO34、GPIO13、GPIO4 引腳。L298N 信號通道IN1、IN2、IN3、IN4 分別對應(yīng)GPIO5、GPIO18、GPIO19、GPIO21,值得注意的是,驅(qū)動(dòng)模塊L298N 不需要降低電壓后供電,可由7.4 V 鋰電池直接供電。具體電路連接示意圖如圖3 所示。
圖3 電路連接示意圖
智能小車實(shí)驗(yàn)平臺工作流程為:電源開啟后,單片機(jī)調(diào)用內(nèi)部WiFi 模塊,同時(shí)LabVIEW 也連接同一WiFi,小車進(jìn)行數(shù)據(jù)初始化。初始化結(jié)束后,各模塊開始獨(dú)立工作,監(jiān)測模塊將溫度、車速、電壓等信號通過WiFi上傳至上位機(jī)系統(tǒng)。同時(shí),單片機(jī)準(zhǔn)備接收上位機(jī)指令,選擇執(zhí)行手動(dòng)模式或自動(dòng)模式。手動(dòng)模式下,單片機(jī)執(zhí)行上位機(jī)發(fā)送的電機(jī)驅(qū)動(dòng)指令,包括轉(zhuǎn)向、車速;自動(dòng)模式下,單片機(jī)調(diào)用循跡子程序。流程圖見圖4。
圖4 系統(tǒng)主程序流程圖
循跡小車的行動(dòng)狀態(tài)大致可分為直行、左轉(zhuǎn)和右轉(zhuǎn)3 種。根據(jù)傳感器返回的不同數(shù)值運(yùn)行不同的循跡程序。在循跡程序中,采用PWM 調(diào)速控制左右兩側(cè)車輪轉(zhuǎn)速來實(shí)現(xiàn)轉(zhuǎn)向,具體控制策略如表1 所示。在循跡程序中,電平發(fā)生變化時(shí),小車速度會(huì)下降并根據(jù)檢測到的情況進(jìn)行轉(zhuǎn)向,達(dá)到直行條件后轉(zhuǎn)向結(jié)束。
表1 循跡程序控制策略
1) 溫度監(jiān)測。在Arduino 的主程序中調(diào)用DS18B20 庫,定義溫度傳感器的引腳為4,初始化溫度傳感器,讀取溫度值,讀取多組數(shù)值,濾波,去掉最大值和最小值后取平均值,保存新的數(shù)值并上傳。溫度監(jiān)測流程圖見圖5。
圖5 溫度監(jiān)測流程圖
2) 電壓監(jiān)測。在Arduino 的主程序中定義ADC 引腳為34,讀取經(jīng)過分壓后的電壓數(shù)字信號,讀取多組數(shù)值,去掉最大值和最小值后取平均值,得到分壓后的電壓數(shù)值,根據(jù)分壓電路的電阻值逆推,求得外部電源的實(shí)際電壓。電壓監(jiān)測流程圖見圖6。
圖6 電壓監(jiān)測流程圖
3) 車速監(jiān)測。在Arduino 的主程序中定義車速傳感器的引腳為4,設(shè)定程序每秒計(jì)數(shù)一次,讀取柵格轉(zhuǎn)動(dòng)產(chǎn)生的脈沖數(shù),結(jié)合車輪直徑,計(jì)算出每秒車速,隨后脈沖數(shù)清零,重新計(jì)算下一秒車速。車速監(jiān)測流程圖見圖7。
圖7 車速監(jiān)測流程圖
LabVIEW 上位機(jī)主要功能為:①實(shí)時(shí)監(jiān)測小車的車速、電源電壓、溫度。②通過手動(dòng)模式和自動(dòng)模式來改變智能小車的運(yùn)行狀態(tài),向下位機(jī)ESP32 發(fā)送命令,使小車實(shí)現(xiàn)一些指定動(dòng)作,其中手動(dòng)模式為關(guān)閉自動(dòng)循跡功能,人工控制小車的轉(zhuǎn)向和車速;自動(dòng)模式為開啟自動(dòng)循跡功能,根據(jù)給定線路自行調(diào)整方向和車速。圖8 所示為LabVIEW 控制前面板。打開程序后,即進(jìn)入智能小車實(shí)驗(yàn)平臺的控制界面。啟動(dòng)程序,WiFi 自動(dòng)連接,用戶可以選擇手動(dòng)和自動(dòng)控制模式。
圖8 上位機(jī)LabVIEW 前面板界面
完成所有模塊的組裝和調(diào)試后,將硬件焊接搭建,完成智能小車組裝,如圖9 所示。上位機(jī)與下位機(jī)成功聯(lián)網(wǎng),一個(gè)基于車聯(lián)網(wǎng)的智能小車實(shí)驗(yàn)平臺便搭建完成。將下位機(jī)和上位機(jī)置于同一局域網(wǎng)下,在上位機(jī)LabVIEW 的前面板中,輸入單片機(jī)ESP32 在該局域網(wǎng)下的IP 地址,打開小車電源,等待5 s,智能小車與上位機(jī)完成了WiFi 下的通信連接。如圖10 所示,在LabVIEW 前面板選擇手動(dòng)模式,改變小車的車速和方向,智能小車可以完成相應(yīng)的動(dòng)作。如圖11 所示,選擇自動(dòng)模式,小車進(jìn)入自動(dòng)循跡狀態(tài),小車沿黑線平穩(wěn)運(yùn)行,長時(shí)間運(yùn)行的情況下未發(fā)生路線偏離,轉(zhuǎn)彎處可自行調(diào)整車速。
圖9 智能小車實(shí)物圖
圖10 手動(dòng)模式工作
圖11 自動(dòng)模式工作
本文設(shè)計(jì)的一種基于車聯(lián)網(wǎng)的智能小車實(shí)驗(yàn)平臺改變了以往將代碼寫入下位機(jī)中的方法,而是將復(fù)雜代碼寫入上位機(jī)LabVIEW 中,單片機(jī)中只保留基礎(chǔ)代碼,由此減少了對單片機(jī)性能的要求,這使得實(shí)驗(yàn)平臺的成本大大降低,并且調(diào)試起來更為簡單。該實(shí)驗(yàn)平臺能夠保證長時(shí)間運(yùn)行,滿足了交通專業(yè)學(xué)生的學(xué)習(xí)任務(wù)需求,其中車聯(lián)網(wǎng)技術(shù)的應(yīng)用能增加學(xué)生的學(xué)習(xí)興趣,自主調(diào)試的特點(diǎn)有助于鍛煉學(xué)生的動(dòng)手能力,能提高學(xué)生在智能控制方面的應(yīng)用水平。