曾堯
(西華大學汽車與交通學院,成都 610039)
在計算機和網絡高速發展的現代社會,智能UI技術的普及與開發也已經逐漸步入正軌,其應用完善的速度也在快速提高。由于家庭乃至工作中智能化的程度越來越高,使得其應用范圍也從以前的工業擴展到當今生活的每一個角落。
與此同時,汽車行業在人、路、環境各個領域當中都出現了長足的進步,智能循跡小車簡單來講就是汽車理論結構與智能UI控制技術同時應用在一種機械設備上的產物,也是當今社會中的一個熱門領域。簡單來講,智能循跡小車就是智能UI的另一種形式,執行器從一般運動關節改變成了4個車輪,達到行駛時能控制方向與起停,相對于一些執行復雜工作的機器人更加簡單普遍,便于制作。其控制系統主要執行器是電動機與舵機[1]。
很多企業都不得不考慮智能替代人工,因為這將節約很大一部分成本。智能對于工業如此重要,本次的優化設計就是在學習了汽車構造的基礎上,通過對芯片控制的理解,設計一個自動循跡的智能小車,來實現小車的自動行駛。在具備識別道路的前提下,為汽車安全行駛提供了較為科學的模型,具有一定的指導意義。
采用STM32單片機為控制核心。使用了CCD線性傳感器對曝光度進行采集(單片機芯片內部會進行AD轉換),通過單片機處理后去控制轉向與驅動模塊,使其按照軌跡行駛[2]。STM32函數庫功能強大,調用方便。內置時鐘控制,使系統能簡單地實現循跡的控制及測速顯示,與一般單片機相同,都能使用C 語言編碼并且處理效率高、功率小,另外可附加電源模塊驅動電動機。
以單片機STM32為核心,通過CCD線性傳感器檢測路線曝光度,測量精準可靠,送入單片機處理后輸出電壓信號,送入舵機與減速直流電動機比較信號,采取轉向操作,動力模塊由外部電源提供。采取SD測速模塊輸入顯示模塊顯示,電路相對簡單,程序略微復雜,可操作性強,購買L298N電動機控制芯片價格便宜,且易制作。
TSL1401包含128個線性光電二極管,相關的電荷放大電路還能在積分開始和結束時給所有像素提供數據保持功能。操作時可以提供數據保持功能。控制端口可以使用邏輯電平,只需要一個連續輸入信號和一個時鐘信號。

圖1 系統框圖

圖2 TSL1401 PCB工作原理圖
此次設計采用定時器采樣,一個周期內128個光感點位選擇其中20~110的位置,以防止數據突變點引起誤差。在1個周期內,光感CCD傳感器發現blackline出現的線性數據組,并記錄該位置數據。通過定義中線midline=64,獲取差值err。從而采取PID模糊控制舵機轉向,直接提高直流電動機占空比以跟隨轉向[3]。
計算公式:對于采集到的ADC_DR數據值,在3.3 V輸出電壓下對應值應是4096的碼值,ADC_DR/當前電壓值=4096/3300。所以轉換關系為:Voltage=(ADC_DR×3300)/4096 mV。
此次設計舵機采用MG995舵機,轉角范圍為±30°,舵機控制采用反饋調節,由程序控制PID反饋調節,不存在實際控制硬件進行專門反饋調節,所以PID調節數據經過測試后設置,只為符合實際情況,并不是所有PID控制都為此數據。曝光度由小車運行初始采樣的曝光點強度決定,此誤差重新上電后可以恢復[4]。
本系統是通過控制舵機轉角實現小車前輪轉向,小車行駛時,具有一定的行駛速度,因此需要采取一定的誤差控制,即整個小車的轉角不能過大,影響小車正常行駛軌跡。小車的行駛軌跡由高處CCD光感采樣獲取,這樣可能導致整個轉角過程有著明顯的滯后特征。對行駛過程詳細分析可知,系統有慣性特征,小車既定速度會使采樣延遲。可以根據系統設置傳遞函數。
慣性環節的傳遞函數為G(s)=K/TIS。純滯后環節的傳遞函數為G(s)=e-τs。所以整個系統的傳遞函數為G(s)=(Ke1+ts)/(1+T1s)。式中:K為放大系數;τ為純滯后時間;T1為慣性時間常數。

表1 SL1401CCD終端功能

圖3 舵機控制PCB原理圖
TS是系統采樣得到的blackline值,可以從CCD傳感器AO口獲取。程序DTS(S)將TS轉換成單片機可以識別的數據類型。采樣過程中,e(k)是第k次blackline與設定值midline之差。STM32在執行完編好的運算程序后,通過線路送給執行器。電動機控制齒輪轉動,而齒輪轉過角度則由舵機運算得到,Δu(k)是第k次blackline數據比第k+1次blackline數據的增量。

圖4 Simulink轉向滯后仿真

圖5 轉角線性圖
具體小車參數采用m文件編寫,其中:m為小車質量,1818.2 g;Iz為轉動慣量,3885 g·cm2;L為小車的初始轉角(采用弧度制),3.048(即174°);a為前輪輪心到小車理論質心的距離,14.63 cm;b為后輪輪心到小車理論質心的距離,15.85 cm;k1為前輪轉向側偏剛度,62.618 N/rad;k2為后輪轉向側偏剛度,-110.185 N/rad;v是小車的行駛速度,22.35 cm/s。
該程序由CCD線性傳感器采集信號開始,把輸入的曝光度信號經過內部處理由AO口輸入STM32進行記錄。主程序如圖6所示。

圖6 主程序流程圖
經過處理后的blackline差值,作為PWM占空比值送入左右直流減速電動機,跟隨舵機轉向,定時采樣SD車速傳感器采樣數據后送入OLED顯示。同時外部電源通過穩壓電路為整個電動機供電,實現智能小車的循跡控制。
如圖7所示,傳感器采用紅外柵欄式光電測速傳感器,模式為傳統的脈沖計數,通過記錄中斷次數,判斷電動機轉動圈數,從而得到車輪轉過的距離。測速模塊的OUT 口鏈接MCU 的外部中斷口,每當有紅外射線導通就是一個外部緩沖。實際測試速度由OLED 屏幕顯示,SSD1306驅動電路包含128個字節可寫入寄存器。實測結果表明誤差為0.1 cm/s,符合設計要求。小車循跡運行照片如圖8所示。

圖7 運行時顯示車速

圖8 小車循跡運行照片
本系統是通過控制舵機轉角實現小車前輪轉向,小車行駛時具有一定的行駛速度,這就需要誤差控制,即整個小車的轉角不能過大,影響小車正常行駛軌跡,小車的行駛軌跡由高處CCD光感采樣獲取,這樣導致整個轉角過程有著明顯的滯后特征[5]。對行駛過程詳細分析可知,系統還有一個慣性特征。
改進方案首先將測量值提前,使用預估型PID調節,偏差值向后調節2個單位曝光值。其次,使用MG995驅動芯片根據采樣中線與黑線差值,差速調節左右后驅動電動機,根據轉向的方向調整小車后輪轉速,進行直線、左右轉彎行駛時基本能夠達到不脫離軌道邊緣線,提高了智能循跡小車的安全行駛可靠性能。