朱春華,李方偉
(河南工業(yè)大學信息科學與工程學院,河南 鄭州450001)
智能循跡車又叫做輪式機器人,是一個集環(huán)境感知、規(guī)劃決策、自動行駛等功能于一體的綜合系統(tǒng),已廣泛應用于科學探索、工業(yè)生產(chǎn)等領域。智能循跡車以蓄電池為動力,以單片機組成的嵌入機式控制系統(tǒng)為核心,以光電傳感器和電磁傳感器為導航檢測設備,可以完成固定路線自主駕駛[1-4]。一般方案為4個紅外反射式光電傳感器采集數(shù)據(jù)并做出簡單控制,而少量信息量導致尋跡車的性能有限且提升的空間極小。本文為提高智能循跡車性能提出了一種研究方向,通過創(chuàng)新硬件和軟件算法提高獲取信息量,大大提高了智能循跡車的智能化程度和綜合性能。
系統(tǒng)結構如圖1所示,包括電源模塊、傳感器模塊、主控模塊、驅動模塊及執(zhí)行機構模塊。其中主控模塊集成有無線通信模塊、藍牙模塊。具體工作過程為:電源模塊為系統(tǒng)供電,傳感器模塊將檢測到的軌道信息傳給主控模塊處理,主控執(zhí)行算法,通過驅動電路驅動執(zhí)行機構做出動作。本文小車實物如圖2所示。
圖1 系統(tǒng)結構圖
圖2 本文小車實物圖
用于軌道信息檢測的傳感器模塊采用4×8的光電傳感器陣列,光電傳感器采用TCRT5000型紅外反射式光電傳感器。該傳感器是一種一體化反射型光電傳感器,其發(fā)射器是一個紅外發(fā)光二極管,接收器是一個高靈敏度的光電三極管[5]。接收器的阻值對光線強度變化極為敏感,當接收到的紅外光線很弱時,其阻值可達幾百千歐;當接收到的紅外光線較強時,阻值可降到幾千歐[6]。光電傳感器陣列的單元電路如圖3所示,工作原理具體如下。光電傳感器發(fā)射紅外光信號,當遇到黑色物體時,紅外光被吸收,沒有紅外光返射;當遇到白色物體,紅外光被反射,使光電傳感器的接收器阻值發(fā)生變化,進而4腳電平狀態(tài)發(fā)生變化。4腳電平的變化經(jīng)比較器與滑動變阻器R0的電平進行比較放大后進行輸出,外部器件可以通過獲取比較器輸出腳的信號狀態(tài),區(qū)別黑色的軌道和白色地面。LED指示燈可用以監(jiān)測每一個傳感器單元的輸出狀態(tài)。
圖3 基于TCRT5000紅外反射式光電傳感器單元電路
本文設計的4×8的光電傳感器陣列由32個TCRT5 000傳感器單元組成。
為優(yōu)化硬件設計,本文設計了基于74LS165的并轉串的方案,可將32路并行信號轉為4路串行數(shù)據(jù)信號。74LS165是8位并入串出移位寄存器,其引腳圖如圖4所示,其基本原理具體如下。在芯片的引腳為低電平時,并行數(shù)據(jù)(A~H引腳)被置入寄存器,最高位狀態(tài)通過輸出引腳QH輸出。引腳拉高后,并行數(shù)據(jù)被禁止置入寄存器,此條件下,寄存器數(shù)據(jù)在每個時鐘(CLK引腳)的上升沿來臨時進行一次左移位,可依次將寄存器中的數(shù)據(jù)通過輸出引腳QH輸出。本設計中,4塊該芯片應用于該模塊,大大簡化了傳感器模塊的接口。
圖4 74LS165引腳圖
為保證電路的可靠性,本文設計電路板均為自主設計并有廠家代工生產(chǎn)的PCB板,光電傳感器模塊實物如圖5所示。
電池采用三節(jié)18650鋰電池,通過降壓電路穩(wěn)定到9V,供給驅動電路。通過穩(wěn)壓模塊降到5V給主控電路和傳感器模塊供電??紤]到本設計中執(zhí)行機構、傳感器模塊等的使用導致系統(tǒng)電流較大,因此應選用可提供更大電流的電源降壓模塊。本文設計選用的是基于LM2596的降壓模塊。LM2596是一種降壓型電源管理單片集成電路的開關電壓調節(jié)器。該模塊能夠輸出3A的驅動電流,同時具有很好的線性和負載調節(jié)特性,可固定輸出3.3V、5V、12V三種電壓,也可實現(xiàn)在1.2~37V的可調輸出[7]。
圖5 光電傳感器模塊實物
主控模塊以單片機STC15W4K32S4為核心。該芯片是宏晶科技公司生產(chǎn)的單時鐘周期(1T)的單片機,是寬電壓、高速、高可靠、低功耗及超強抗干擾的8051單片機,采用STC第九代加密技術,指令代碼完全兼容傳統(tǒng)的8051,但速度比傳統(tǒng)8051快8~12倍[8]。主控模塊同時集成了74LS165芯片實驗電路,能夠進行并轉串的驗證性實驗,為將來在該方向研究者提供技術資料儲備。主控模塊同時集成了無線通信、藍牙及OLED顯示屏等模塊。主控模塊實物如圖6所示。
圖6 主控模塊實物圖
驅動電路基于L298N芯片(ST公司生產(chǎn)的一種高電壓、大電流電機驅動芯片),最高工作電壓可達46V,輸出瞬間峰值電流可達3A,持續(xù)工作電流為2A,內含兩個H橋的高電壓大電流全橋式驅動器[9]??赏ㄟ^脈沖寬度調制(PWM)技術驅動直流電機。脈沖寬度調制(PulseWidth Modulation)技術是對電機調速的常用方式,脈沖周期不變,只改變晶閘管的導通時間,就可以改變脈沖寬度對電機進行直流調速[10]。PWM信號可以通過單片機定時器進行程序編程輸出,也可由專門的芯片產(chǎn)生。
執(zhí)行機構采用兩個直流減速電機,分別驅動一個動力車輪。直流減速電機具有扭矩大、震動小的特點,可通過脈寬調制對其進行輪速控制。
Keil4是通過C語言進行51單片機開發(fā)的常用軟件,是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng)。與匯編相比,C語言在功能、結構性、可讀性及可維護性上有明顯的優(yōu)勢。
根據(jù)74LS165的基本原理,在讀取一路數(shù)據(jù)時,應首先拉引腳。引腳拉高后首先讀取第一位,然后依次進行7次脈沖移位和讀取數(shù)據(jù)操作,以便獲取全部8位數(shù)據(jù)。當信號輸出為01110010B時,其對應時序如圖7所示。
圖7 時序圖
數(shù)據(jù)獲取尤為重要,為保證能夠及時地讀取到數(shù)據(jù),本文設計中將數(shù)據(jù)讀取程序放在定時器中斷中進行操作。圖8為數(shù)據(jù)獲取程序的邏輯框圖
圖8 數(shù)據(jù)獲取程序邏輯圖
由圖8可知,當程序允許讀取數(shù)據(jù)時,主控將74LS165芯片的引腳拉高,此時并行數(shù)據(jù)被置入寄存器,并且最高位已經(jīng)在輸出引腳輸出。讀取74LS165芯片輸出引腳的1bit數(shù)據(jù),并通過移位操作壓縮進入一個8bit的輸出緩存,如此循環(huán),直到把8位數(shù)據(jù)全部讀取并壓縮進緩存,最后將獲取的一個8bit數(shù)據(jù)進行存儲,并禁止數(shù)據(jù)讀取。需要解釋的是,禁止數(shù)據(jù)讀取是要等待本次數(shù)據(jù)被使用后,即需要新數(shù)據(jù)時,再進行下一輪的數(shù)據(jù)獲取,以避免過分占用定時器中斷,造成代碼運行效率低。
通過一片74LS165芯片可以獲取一行(8個)的反射式紅外傳感器的信號的數(shù)據(jù),那么通過4片芯片就可以獲取傳感器模塊的4行全部數(shù)據(jù),進而將所得數(shù)據(jù)組成一個信號狀態(tài)矩陣:
其中,元素值為0或1,對應著其對應坐標位置的傳感器獲取的信號狀態(tài)。
數(shù)據(jù)處理程序中主要進行軌道中線計算和特殊位置標記。軌道中線和小車物理中線ai4進行比較,可以得到小車中線和軌道中線的偏差?;诖?,通過算法驅動小車使軌道中線和小車中線重合,可以使小車按照軌道運行。其中,軌道中線計算算法具體如下。
定義從第一列到第8列的列標號為0~7,對每一行數(shù)據(jù)進行判斷,將其所有感應到軌道的n個對管的列標號相加,再整除n,即可得到所在行的中線列標,此時便可繪制出軌道中線軌跡。以一個3×8的矩陣為例,定義1表示相應的紅外傳感器檢測到軌道,0表示沒有檢測到軌道。第一行軌道中線的列標號應為第一行所有1的列標號之和除以第一行1的個數(shù)。則第一行的中線計算為同理可得第2、3行分別為3和4,計算得到的軌道中線位置如圖9中的異色標記所示。
圖9 計算得到的軌道中線位置
此外,數(shù)據(jù)處理中對左邊線ai0、右邊線ai7等特殊位置進行標記。當ai0或ai7中存在檢測到軌道的狀態(tài)數(shù)據(jù)時,就做出標記。
算法中,輸出PWM值由3個PWM參量的線性疊加調節(jié):(1)基礎速度v1;(2)兩輪絕對差速v2;(3)與軌道偏離程度負相關的速度v3。δn表示第n行的中線偏差。中線偏差是指軌道中線與小車物理中線的絕對差值。
v1為兩輪的共有量,是一個常量:
它是一個維持電機啟動轉速的基礎值,起到輔助驅動電機的作用。v2是與δ1正相關的量,其算法式為:
其中,k1為相關系數(shù)。
δ'是與軌道偏離程度負相關的基礎速度量,也是兩輪的公有值,在不同的路況下起到調節(jié)整體車速的作用,其算法式為:
其中,k2為相關系數(shù),δ'=δ1-δ4。
以第1行的中線相對于物理中線的位置為方向標志,將該方向一側的輪稱為“副輪”,另一側則為“主輪”。假設此時中線在物理中線右側,說明小車此時是向左側偏離軌道,此時左輪就為修正車身的“主輪”,右輪就為“副輪”?!爸鬏啞陛敵鯬WM值為:
“副輪”輸出PWM值為:
根據(jù)軌道情況可以通過調節(jié)系數(shù)調試到較佳運行狀態(tài)。
實驗環(huán)境中的測試軌道是在室內潔凈的白色地板上用1cm寬的黑色電氣膠帶鋪設而成,地板可以反射傳感器發(fā)射的紅外信號,電氣膠帶可以吸收傳感器發(fā)射的紅外信號,室內光線良好。軌道中包含直道、弧彎道、直角道、十字道、銳角道及鈍角道等實驗項目。其中,弧彎道曲率半徑為20cm,銳角道的角度為45°,鈍角道的角度為120°。
本文對評估小車性能涉及到的一些參數(shù)的定義具體如下。
第i行的左偏差δli:小車的第i行物理中線ai4左側所有檢測到軌道的傳感器所在列的列標號之和與所在行的物理中線列標號的絕對差值為第i行的左偏差δli。同理,第i行右偏差用δri表示。這里的“左”、“右”是以小車前進方向為“物理正前方”的參考方位。
偏差δ'':所有行的左偏差與右偏差的差的絕對值之和即為中線偏差。
通過成功率η:系統(tǒng)正常運行情況下,一次性通過相應實驗項目的概率。
本文所有偏差的原始數(shù)據(jù)均是通過代碼定時采集數(shù)據(jù),然后通過藍牙傳輸?shù)缴衔粰C,數(shù)據(jù)采樣速率為10 次 /s。
本文使用同一輛車進行了對比實驗。將本文小車改為4紅外對管的硬件配置和相應的傳統(tǒng)算法并調試到最佳狀態(tài)后作為實驗的參照組小車。對兩組小車以相同速度分別進行了50次測試,在各個關鍵項目中的主要性能如表1和表2所示。
表1 本文所設計小車性能測試
表2 傳統(tǒng)小車性能測試
表1和表2中,直角道、銳角道及鈍角道行駛路線測試項目中,“—”表示無此類測試數(shù)據(jù)。即該測試環(huán)境下不能或不需要采用中線偏差評估運行穩(wěn)定性。對比表1和表2可知,相對傳統(tǒng)智能循跡車,本文小車的運行平均偏差、項目通過成功率均顯著提高。其中,直道運行的平均偏差改善最大,降低了約95.6%,弧彎道和十字道也分別降低了90.4%、87.2%。關于項目通過成功率方面,本文小車比對傳統(tǒng)小車在銳角道的通過成功率方面提高最明顯,提高了90%。此外,十字道的通過成功率提高了30%,鈍角道的通過成功率提高了26%,直角道、弧彎道、直道的通過成功率分別提高了24%、8%和6%。這表明了本設計能夠有效提高智能循跡車的運行穩(wěn)定性和抗干擾能力。
本文提出一種新的智能循跡車設計方案,并完成了硬件設計和性能測試。該設計引入4×8的紅外反射式光電傳感器陣列,采用并轉串的設計思路并優(yōu)化硬件實現(xiàn)方法,實現(xiàn)道路識別數(shù)據(jù)的實時處理,并提升道路識別分辨能力。軟硬件測試對該設計的道路運行平均偏差和成功率指標進行了驗證。結果表明,相比傳統(tǒng)智能循跡車,該設計具有較強的運行穩(wěn)定性和抗干擾能力。