李明亮,孫 寧
(南京林業大學 汽車與交通工程學院,南京210037)
隨著社會發展,汽車保有量不斷增加,越發嚴重的交通負荷問題使得智能交通和智能汽車成為研究熱點[1]。智能車可以說是智能汽車的微縮版,其中涉及的領域很多,包括計算機、人工智能、通訊等各個方面的技術[2]。智能車技術的發展使得車輛能夠適應更加復雜工作環境,同時避開障礙物,選擇合理的路徑安全穩定的行駛,在提高交通安全與效率方面有著重大意義[3]。
本文的智能車系統是基于飛思卡爾K60處理器,結合激光雷達RPLIDAR-A1識別道路障礙、電機控制車速實現差速轉向,最終可以在道路上自主行駛,并可以實現自動導航、智能避障、路徑規劃等功能。
本文設計的智能車系統由上位機和下位機組成,上位機主要為PC端的遙感控制模塊,用于給下位機智能車發送前進、后退及轉向等控制指令,上位機結構較為簡單,不做詳細介紹;下位機是由供電模塊、K60P144M150SF3控制模塊、顯示器模塊、WIFI模塊、雷達模塊構成。主控制器通過WIFI模塊接收上位機的控制指令來控制驅動模塊的工作,雷達模塊將收集的信息發送給主控制器并進行處理來規劃移動路徑并實現移動、躲避障礙物的功能,主控制器與顯示器直接相連,用于控制顯示器模塊的顯示。系統設計框圖如圖1所示。

圖1 系統設計框圖Fig.1 System design block diagram
本系統采用電壓為12 V的蓄電池供電,K60芯片、WiFi模塊及顯示模塊正常工作電壓為3.3 V的直流電壓,因此需要將蓄電池12 V電壓降低到3.3 V。此外,驅動模塊、雷達模塊需要5 V電壓供電,雷達舵機使用9 V電壓供電,蓄電池的12 V電壓可直接為電機供電,供電配置如圖2所示。在供電模塊的設計上,先通過MC7809將12 V電壓降低到9 V,再經過LM7805降壓到5 V為外接模塊供電,最后通過LM3940將5 V電壓降低到3.3 V為單片機供電。

圖2 供電配置圖Fig.2 Power supply configuration diagram
控制模塊以K60P144M150SF3芯片為控制核心,K60單片機強大的功能使控制系統具有結構簡單,運行速度快等特點[4]。K60采用2套電源系統,VDD是單片機數字電源,VDDA是模擬電源,VDD電源經過電感濾波之后再供給VDDA電源,起到抗干擾作用。MCU芯片使用多組電源引腳分別為內部電壓調節器、I/O引腳驅動、A/D轉換電路等模塊供電,內部電壓調節器為內核和振蕩器等供電。K60有A口26個,B口、C口各20個,D口16個,E口18個,共100個I/O引腳,且多數引腳具有多個功能。K60的時鐘電路也分為2個部分,一個是芯片的主晶振,用于產生芯片和外設所需要的工作時鐘;另一個是實時時鐘RTC的時鐘電路,實時時鐘提供一套計數器,在系統上電和關閉操作時對時間進行測量,RTC消耗的功率非常低[5]。復位電路默認狀態下,復位引腳RESET通過一個4.7 K的電阻上拉到3.3 V電源,處于高電平狀態,此時不會復位;當按下按鍵時,復位引腳與地接通,處于低電平,此時芯片復位。K60系列芯片使用的是ARM Cortex-M4內核,該內核內部集成了JTAG接口,通過JTAG接口可以實現程序下載和調試,K60豐富的內部資源利于智能車功能擴展及系統調試,故選擇K60作為控制器。K60單片機最小系統原理圖如圖3所示。

圖3 K60最小系統原理圖Fig.3 K60 system schematic diagram
ESP8266是樂鑫公司開發的一款高性能UARTWIFI(串口-無線WIFI)模塊,主頻高達80 MHz,模塊自帶TCP/IP協議棧,且集成度高,兼容性好,功能強大[6]。WIFI模塊負責數據的接收與轉發,通過UART接口與單片機連接。ESP8266芯片中包含:
(1)2.4 GHz接收器:將RF信號降頻,變成正交基帶信號,用2個高分辨的高速ADC將正交基帶信號轉為數字信號。同時,無線電接收器集成了RF濾波器、自動增益控制(AGC)、DC偏移補償電路和基帶濾波器,以適應不同的信號頻道;
(2)2.4 GHz發射器:將正交基帶信號升頻至2.4 GHz,使用大功率CMOS功率放大器驅動天線。使用數字校準進一步改善了功率放大器的線性,從而在802.11 b模式下達到+19.5 dBm的輸出功率,在802.11 n模式下達到+16 dBm的輸出功率[7]。
WiFi模塊通過21、22通訊引腳與單片機相連,ESP8266高度片內集成,因此需極少的外部電路,WiFi模塊及外圍電路如圖4所示。ESP8266芯片提供了一種有效且穩定的操控手段,因此本設計選用ESP8266模塊作為WiFi模塊實現對智能小車的無線遙控。

圖4 WiFi模塊及外圍電路Fig.4 WiFi module and peripheral circuit
驅動模塊由兩個L298N芯片組成,每個L298N芯片可以直接控制兩個電機,兩個芯片控制智能車的四個車輪,智能車采用四輪差速的轉向方式,轉向更加靈活[8],驅動模塊及外圍電路如圖5所示。L298N由主控芯片設定的I/O輸入電平所控制,改變輸入電平的高低就可以驅動電機進行正反轉,操作簡單、穩定性好,可以滿足直流電機的大電流驅動條件[9],電機運動方式受使能端A/B所控制,L298N驅動A/B控制邏輯見表1。L298N芯片輸入電壓有兩個,VSS為邏輯電壓,提供邏輯電路的電源;VS用于供給電機,根據電機的額定電壓選擇12 V電壓供電。

圖5 驅動模塊及外圍電路Fig.5 Driver module and peripheral circuit

表1 L298N驅動A/B控制邏輯Tab.1 L298N drives A/B control logic
雷達模塊使用的是激光雷達RPLIDAR-A1,通過測量障礙物到智能車的距離,根據左右距離信息確定智能車的轉向,再控制智能車的轉向運動實現自動避障功能。兩個雷達分別安裝在智能車的前端和后端,可以保障智能車在前進后退過程中都能有效避開障礙物。該雷達采用了激光三角測距技術,配合SLAMTEC研發的高速的視覺采集處理機構,可進行每秒高達8 000次以上的測距動作[10]。每次測距動作都包括發射經過調制的紅外激光信號、視覺系統采集反射的激光信號、內部DSP處理器解算3個過程。解算完成后生成的目標物體與RPLIDAR-A1的距離和夾角值將實時從通訊接口中輸出[11]。同時RPLIDAR A1的測距核心在電機帶動下順時針旋轉,實現對周圍環境全方位的掃描測距。從通訊接口輸出的周圍環境位置信息傳輸至單片機內進一步處理,用于控制智能車的驅動模塊,達到智能轉向、控制避障的功能[12],同時單片機可以通過控制輸入電機MOTOCTL引腳的PWM信號來控制雷達轉速。雷達模塊如圖6所示。

圖6 雷達模塊Fig.6 Radar module
顯示模塊選用的是13.3英寸液晶顯示屏,屏幕高寬比為16∶9,分辨率為1920×1080。顯示屏用于顯示時間、車速及各模塊狀態參數等。屏幕顯示模塊與單片機相連,單片機控制顯示屏的顯示,顯示模塊連接示意圖如圖7所示。

圖7 顯示模塊連接示意圖Fig.7 Display module connection diagram
智能車系統軟件部分主要包括上位機與智能車之間通過ESP8266通訊連接、K60芯片控制智能車避障運動兩部分。智能車系統上電后,系統初始化,并與上位機連接,連接后上位機控制下位機驅動電機轉動,開啟雷達模塊??刂颇K接收到雷達模塊發出避障指令后,控制驅動模塊進行差速轉向避障,未接收到避障指令則保持上位機指令運動。下位機程序流程圖如圖8所示。

圖8 下位機程序流程圖Fig.8 Console computer program flow chart
使用激光雷達RPLIDAR-A1測量障礙物到智能車之間的距離,根據距離和角度信息來確定智能車的轉向,通過控制模塊來控制驅動模塊實現差速轉向,實現避障功能。
(1)驅動程序設計。控制器上電后,電機驅動模塊進行初始化,先設置IN1和IN2,確定電機轉動方向,然后對使能端輸入PWM脈沖實現調速,使能端ENA、ENB為高電平時有效。
(2)數據采集程序設計。完成硬件初始化后,使能芯片中斷功能,此時若有中斷源觸發中斷,則程序跳入中斷程序。本系統中斷為串口中斷,上位機經由WiFi模塊與控制器通信,可以修改系統參數控制驅動程序。
(3)數據處理程序設計。激光雷達掃描獲取周圍環境數據,經雷達內部的DSP處理器進行實時計算,通過計算得到的距離值以及當前的夾角信息將再從通訊接口中輸出到控制器,控制器通過VFH算法實施避障決策。VFH算法是向量區間柱圖法的簡稱,即使用柱狀圖描述智能車周圍障礙物,該方法先構建出周圍環境的局域柵格地圖,再根據占用柵格地圖的單元值計算障礙物概率直方圖,最后根據直方圖對每個通道計算代價,選擇最低代價的通道進行方向導航。
ESP8266模塊共有有3種工作模式,選用AP模式即可滿足智能車與上位機之間的通訊。AP模式下,ESP8266模塊作為熱點,可以實現上位機與模塊通信[13],模塊與K60控制模塊之間相連,從而實現上位機通過局域網對下位機的無線控制。ESP8266常用的AT指令見表2。

表2 ESP8266常用AT指令Tab.2 ESP8266 common AT instructions
智能車系統設計中所需設置AP模式指令控制:
AT+RST //重啟生效
AT+CWMODE=2 //設置WiFi模式
AT+CWSAP=<ESP8266>,<12345678>,<1>,<3> //配置AP參數
AT+CIPMUX=1 //啟動多連接
AT+CIPSERVER=1 //建立服務器
通過串口發送上述指令開啟ESP8266的WiFi,開啟后上位機即可連接上ESP8266模塊,控制模塊即可通過ESP8266與上位機進行通信。
本文是基于K60芯片搭配PRLIDAR-A1激光雷達,利用VFH算法實現智能車避障功能,同時通過ESP8266模塊與上位機通信控制智能車移動,能夠實現遠程遙控和在較復雜環境下進行實時平滑避障。