朱偉枝,楊亞萍,蔡杰明
(廣東理工學院,廣東肇慶 526100)
近年來,車輛變得越來越普及,交通狀況卻愈加惡劣,交通安全事故常有發生,很大程度上由于駕駛員疲勞駕駛、不正當駕駛、惡劣的駕駛環境等因素導致的,伴隨著高新技術的發展,智能的自動駕駛技術可以有效避免該類問題的出現。自動駕駛技術不僅可以減少駕駛員駕駛時間,還可以通過信息化技術規劃路徑,減少交通擁堵,減少安全事故的發生[1-2]。智能小車作為自動化行駛研究的基礎,對智能小車的研究也有利于自動化車輛的發展[3]。20世紀50年代,美國巴雷特電子公司研發出自動導車系統,其后微軟、谷歌以及IBM也連續推出自己公司設計出的新型智能小車。而國內對這方面的研究是從20世紀80年代開始的,國內各大高校和科研領域的各大機構都引起了重視,在檢測與識別的技術研究中取得了很多新的突破[4]。
智能小車的設計研究要綜合到多領域知識的融合,并且隨著研究程度逐漸加深,其拓展利用到的技術也會更多。本文采用目前主流的STM32[5-6]系列單片機作為智能小車的控制器,通過循跡[7]和避障[8]模塊的輔助,提供了一套能夠實現斜坡定點停車后再次起步以及平直過雙邊橋這兩項功能的設計方案,對自動駕駛技術的研究和發展具有積極的意義。
本文將STM32主控芯片選為智能小車的核心處理器,在此基礎上在外部加載硬件模塊和連接線路。主控制器連接UNO轉接板以及電機驅動模塊,通過UNO轉接板作為媒介,連接紅外避障與紅外循跡傳感器,實現小車避障以及循跡功能。計算機編程控制程序通過錄入轉接板后傳輸到主板,實現路徑規劃以及電機PWM值的調控進而調節車速和實現差速功能。電源模塊主要為整個硬件模塊電路提供足夠的電源,保證電路能在正常電壓工作[9]。
主板使用STM32F103RCT6處理器芯片,以Cortex-M3作為內核,最高工作頻率為72 MHz,內置48 kb的靜態隨機存儲器,其內部板載相關的應用主要有直接內存存取、STM32定時器、模數轉換器、控制總線和UART等外圍設備。
循跡功能的原理是通過利用光線在白色與黑色區域反射系數的不同,小車可以由此分辨出黑色循跡線的相對位置。當循跡線筆直位于兩循跡傳感器之間時,紅外發射管發出的紅外光線不會被黑色線吸收,可以順利地經過地面反射,此時接收管便可以接收到折射回來的紅外線,輸出低電平信號,此時智能小車保持直行。當一側循跡傳感器檢測到黑色循跡線,紅外發射器發出的紅外光線大部分將會被黑色線吸收,此時輸出端輸出高電平信號,這樣便能檢測到黑色循跡線的相對位置,使車身沿著黑線行駛。
避障模塊組成原理是通過傳感器內部的發射二極管發射出紅外光線,當紅外線遇到障礙物時,光線反射,此時接收二極管便能接收到反射回來的紅外線,這時輸出低電平信號,光信號轉化為電信號并且反饋給芯片模塊,主控芯片通過設定的避障程序,控制電機運轉從而使得智能小車能進行避障動作。
實現驅動各電機運轉的核心是L298N芯片,可以對4個電機進行基本調控,左后輪與右后輪電機的正反接決定車輪轉向,而前左輪和前右輪不僅能控制其正反接,還可以通過調節電容改變其電機轉速,從而實現差速功能。
循跡程序主要分為兩個部分,一是紅外傳感器的檢測狀態,二是基本運動速率的控制。當左、右傳感器都檢測到白色區域的時候,智能小車執行前進run()函數;當左邊傳感器檢測到白色區域,右邊傳感器檢測到黑色區域時,意味著智能小車當前往左偏,需要執行右轉turnringht()函數;當左邊傳感器檢測到黑色區域,右邊傳感器檢測到白色區域時,意味著智能小車當前往右偏,需要執行左轉turnleft()函數;當左右傳感器都檢測到黑色區域時,意味著智能小車經過十字交叉路口,需要直接通過,因此執行前進run()函數。當系統接收到執行停止信號時,智能小車執行停止stop()函數,否則繼續執行循跡程序。圖1所示為循跡程序設計流程圖。
圖1 循跡程序流程
本文主要是通過左、右避障傳感器的檢測狀態來控制智能小車執行功能程序。當左、右2個傳感器均沒有檢測到前方有信標物時,智能小車執行循跡程序;當只有右傳感器檢測到前方有信標物時,智能小車執行斜坡定點停車再起步程序,先在當前位置停止4 s,然后再起步執行循跡命令;當只有左傳感器檢測到前方有信標物時,智能小車開始執行過雙邊橋程序,根據內部設定的路徑規劃,先停下2 s,然后直走到雙邊橋路口,再左轉把車身調整為直線,保持車身筆直一直通過雙邊橋。當左右傳感器均檢測前方到障礙物,或者系統接收到執行停止信號時,智能小車執行停止stop()函數,否則繼續執行避障檢測程序。圖2所示為實現這兩個功能的程序流程圖。
圖2 功能實現程序流程
本文在實際驗證時主要是通過使用C語言來編寫程序。第一個功能是執行斜坡定點停車再起步,前半段路程主要是通過循跡功能實現從平地行駛至設定場地的斜坡中,在半坡的指定停車點中放置信標物,智能小車利用避障模塊傳感器檢測信標物,核心控制器接收到反饋信號,并向電機驅動芯片發出指令,從而控制電機停轉,由于車輪與坡道面的摩擦,智能小車能夠停在半坡上。要實現半坡停下再次起步,主要是通過運行避障程序,使其在停下3~4 s后再次起步,如圖3所示。
圖3 斜坡定點停車再起步
圖4 過雙邊橋
完成斜坡定點停車再起步后,智能小車繼續沿著循跡軌道走,開始執行第二個功能。過雙邊橋主要是通過規劃要走的路徑來實現,在橋的起點處放置信標物,由紅外傳感器檢測到信號,控制芯片實現編定好的路徑規劃程序,控制各電機驅動完成任務,如圖4所示。
本次設計的以STM32為控制器的智能小車,通過循跡和避障模塊的輔助,完成了實現使智能小車行駛到斜坡上的指定位置定點停車并再次起動,并接著通過狹窄的雙邊橋這兩項功能的任務。在自動駕駛技術的實際應用中,根據具體的需求改變傳感器的組合以及路徑規劃的算法,可以實現無人駕駛的自動化計劃。智能小車涉及到的知識和學科領域廣泛,對其研究不僅使得科學技術得到進步,還能使得人們生活更豐富更便利,對在軍事、物流等領域都起著重要作用。