陳 智
(蘭州信息科技學院 計算機與人工智能學院,甘肅 蘭州 730300)
為滿足當前智能小車在工業、農業及日常生活中的應用需求,本文以STM32芯片為核心,設計了一種智能循跡避障系統,并應用于智能小車運動控制。該系統利用循跡模塊準確識別運行軌跡,利用避障模塊檢測前方障礙物,并通過驅動模塊控制小車前進、后退、轉彎,實現自動循跡和避障功能。
系統采用STM32芯片作為主控制器,通過驅動模塊完成小車的前進、后退、轉彎等動作。小車具有2個強磁抗干擾直流減速電機,并配備萬向輪。當2個直流減速電機的轉向、轉速一致時,完成前進動作;當左電機轉速大于右電機轉速時,完成右轉動作;當右電機轉速大于左電機轉速時,完成左轉動作。光電循跡模塊用于檢測地面上的黑線,主控制器根據循跡模塊檢測結果,實時調整小車運動軌跡,確保小車沿著黑線移動。紅外避障模塊用于檢測前方障礙物,主控制器根據避障模塊檢測結果,控制小車避開障礙物。智能小車采用鋰電池供電,并配有穩壓電路。系統方案如圖1所示。

圖1 系統方案
主控制器采用STM32F103C8T6芯片,是一款基于Cortex-M3內核的32位處理器,具有性能高、功耗低的優點。STM32F103C8T6最小系統如圖2所示,根據循跡模塊和避障模塊檢測結果,控制驅動模塊調節2個直流減速電機,進而實現對小車的運動控制。

圖2 STM32F103C8T6最小系統
電機驅動采用L298 N芯片,是雙通道H橋式電機驅動器,能夠直接驅動左、右2個直流減速電機[1]。電機驅動電路如圖3所示。電機控制方式采用脈沖寬度調制(Pulse Width Modulation,PWM),實現方向和速度的控制。IN1—IN4為邏輯控制信號,ENA、ENB為PWM控制信號,OUT1—OUT4為輸出信號。

圖3 電機驅動電路
當IN1、IN2(或IN3、IN4)輸入高電平時,OUT1(或OUT3)輸出高電平,OUT2(或OUT4)輸出低電平,實現電機正轉;反之,當IN1、IN2(或IN3、IN4)輸入低電平時,OUT1(或OUT3)輸出低電平,OUT2(或OUT4)輸出高電平,實現電機反轉。通過調節ENA、ENB的PWM信號,進而實現電機調速。
常見的循跡方式有光電循跡和電磁循跡。其中,光電循跡利用光電傳感器對顏色變化的敏感性,可因為應用于智能車的路徑檢測[2-3]。本文中的智能小車目標應用場合軌跡為黑色,黑色與周圍環境顏色形成較大對比度,故采用紅外光電傳感器循跡更易實現控制。循跡基本過程如下:2對紅外光電傳感器組成陣列,持續發射紅外線,因為黑色對紅外線的吸收相對較多,所以反射回光電傳感器的紅外線相對減少,傳感器將這種光電信號變化反饋給主控制器,然后,主控制器通過定時中斷調節PWM波形,從而閉環控制2路電機轉速,實現自動循跡。
避障模塊采用紅外光電傳感器,傳感器發射模塊負責發射紅外線,傳感器接收模塊負責接收紅外線。當小車前方有障礙物,且障礙物出現在設定避障距離范圍內時,接收模塊將反射回來的紅外線轉換為電信號并反饋給主控制器處理。主控制器通過調節2個直流電機進而實現避障功能。
循跡程序流程如圖4所示。循跡模塊的目的是讓小車能夠準確識別并沿著地面上的黑線行駛。循跡程序不斷讀取左、右兩側光電傳感器檢測的數據,當左側傳感器檢測到地面黑線時,說明小車整體向右偏移,此時調整小車向左運動;反之,當右側傳感器檢測到地面黑線時,說明小車整體向左偏移,此時調整小車向右運動。主控制器根據光電傳感器陣列檢測的數據,通過驅動模塊實時調節2個直流電機的轉速,從而使智能小車沿著黑色軌跡行駛。

圖4 循跡程序
避障程序流程如圖5所示,紅外光電傳感器不斷發射和接收紅外線,判斷前方是否有障礙物。如果沒有障礙物,小車繼續直行;如果有障礙物,且障礙物在小車避障距離范圍之內,則小車制動,并向右或向左轉一定角度,繼續判斷是否有障礙物,然后重復該過程,實現自動避障功能。行駛速度、避障距離、旋轉角度等參數均可設置。

圖5 避障程序
圖6為實際測試跑道,在循跡模式下,小車能夠沿著黑色軌跡平穩行駛,實現自動循跡功能。將避障探測距離設置為30 cm,選取2個不同大小的障礙物,尺寸分別為10 cm×10 cm和15 cm×15 cm,分別放置距小車直線距離為0.5 m、1.0 m、2.0 m的位置,測試小車避障的響應距離和響應速度。表1為小車避障測試結果,結果表明系統能夠實現一定的避障功能。

表1 避障測試結果

圖6 循跡測試結果
本文以STM32芯片為核心,設計了一種智能循跡避障系統,并應用于智能小車運動控制。實驗測試結果顯示,智能小車能夠快速準確識別軌跡,自動沿著軌跡方向穩定行駛,并有效避開障礙物。本文設計內容既可作為嵌入式綜合訓練實踐項目,也可作為大學生相關科創、競賽等活動的基礎參考方案。