高 文,陳 佩
(1.西安航空學院 電子工程學院,西安710000;2.西安智容傳動技術有限公司,西安710000)
近些年隨著人工智能技術的快速發展,無人自動駕駛技術也變得越來越炙手可熱[1]。同時,隨著人們日常生活智能化程度的增強,具有智能控制系統的小車、機器人層出不窮。現在具有巡線、避障、遠程操控等功能的智能小車,能夠在人類無法工作的環境下進行工作,如排雷、偵查、救援及生命探測等;在生活中也有較廣的應用領域,比如作為餐廳的送餐服務員、家庭的掃地機器人;在科學研究領域可作為外星球科研探索使用[2-5]。
本文設計一種基于STM32的智能無線充電循跡小車,在傳統的小車上增加了無線充電的功能,能夠解決傳統小車充電不方便的問題,并且進行電能的智能管理,可實現自動停車充電,充電后的自動運行,具有快捷、方便及高效運行等優點,具有良好的市場前景。
根據對智能移動小車的功能需求分析[6],搭建的系統結構框圖如圖1所示。其中包括控制器模塊(STM32F103C8T6)、循跡電路模塊、電機驅動模塊、顯示模塊(OLED)、無線充電發射模塊、無線充電接收模塊、超級電容以及電機。整個系統遵循模塊化設計原則,有利于后續的開發升級。

圖1 系統整體結構框圖Fig.1 Block diagram of system structure
整個系統工作原理:①初始狀態小車處于充電站位置,當開關打開,如果系統電壓過低或徹底無電,小車將停止運行,停留在充電站自行進行充電;②經過充電,當系統電壓達到工作電壓,則控制器STM32F103C8T6 開始工作,檢測系統電壓,并啟動定時器開始計時充電時間,當系統電壓和充電時間都滿足預設條件后,小車開始運行;③運行過程中循跡電路將檢測的結果反饋給控制器,控制器根據反饋結果決定小車的運行狀態,輸出2組PWM 脈寬調制波分別控制小車的轉向和直流電機的速度來實現小車的按軌跡運行。在行進過程中,控制器一直監控系統電壓(超級電容電壓)并進行實時顯示;④在運行過程中,控制器進行整個電量的智能管理,當電壓值低于設定的預警值時,小車繼續運行至檢測到的第一個充電站,自動停止進行充電,然后根據充電的情況再決定下一步的運行。在整個過程中,不僅要實現循跡的運行,包含速度、方向及轉彎燈處理,還要通過電源檢測達到小車的智能化管理。
設計采用STM32F103C8T6 作為系統的主控芯片,STM32F103 相較于其他類型主控芯片如STC51、MPS430 等具有外設資源豐富、性價比高的優點。
電機的穩定工作是整個小車正常運行的基本保證。電機驅動部分配合核心控制芯片實現對各電機啟動、停止、運行速率以及運行方向的控制。設計選用TOSHIBA 半導體公司研發生產的TB6612FNG芯片作為電機運行的驅動芯片,該芯片能夠雙通道輸出,功耗也較其他相同規格的電機驅動芯片更小,在小型電機的控制系統電路中廣泛使用[7]。
TB6612FNG是基于MOSFET的H 橋集成電路,與晶體管H 橋驅動器相比,效率大大提高。TB6612FNG可同時驅動2個電機,并可提供啟動峰值電流高達2 A的連續脈沖,同時無需外加散熱片,外圍電路簡單。TB6612FNG的PWM 信號輸出頻率可至100 kHz,電機的調速范圍較大。電機驅動電路如圖2所示。

圖2 電機驅動電路Fig.2 Motor drive circuit
循跡電路是小車的“眼睛”,可保證小車按照預定軌跡行進。設計通過4組紅外傳感器的檢測結果作為控制電機運動的判斷條件,通過算法處理達到穩定循跡運行的功能。具體使用TCRT5000 紅外傳感器加LM393 比較器構成,當電路檢測到黑色軌跡部分則輸出高電平,反之輸出低電平。具體電路如圖3所示。

圖3 循跡電路Fig.3 Tracking circuit
本系統采用超級電容作為小車的主要儲能部件,經處理后為控制系統以及電機提供所需電源。小車系統需要穩定的3.3 V 供電,考慮到電容放電時的電壓是隨時間變化的,對電容電壓進行變換,使用TPS63020 芯片構成的Buck-Boost 升降壓電路,保證將1.8 V~5.5 V的電容電壓轉換為穩定的3.3 V。具體電路如圖4所示。

圖4 Buck-Boost 升降壓電路Fig.4 Buck-Boost circuit
無線充電運用電磁感應原理為小車的超級電容進行充電[8],其結構如圖5所示。

圖5 無線充電電路Fig.5 Wireless charging circuit
具體原理:首先發射端接入直流電源,通過全橋電路生成方波交流電壓,控制開關管的頻率改變方波的周期[9-10],當電壓加載到LC 諧振電路上會生成交流電,經過線圈的作用會產生高頻變化的磁場。其次將二次側線圈放入,會在二次側產生感應電壓。感應電壓經過整流、穩壓、變壓后給超級電容充電。發射端的電路如圖6所示。接收端電路如圖7所示。

圖6 發射端電路Fig.6 Transmitter circuit
控制算法是智能小車的靈魂,決定了智能小車的穩定性和快速性[11]。本系統從控制角度分析,小車有5 路輸入(紅外循跡返回值)2個輸出(電機的PWM),而5 路紅外循跡返回值組合決定了小車的位置值,小車系統控制即轉變為1個輸入量2個輸出量。為保證小車循跡運行過程中的平穩,采用閉環的PID控制算法,PID算法具有原理簡單、易于實現、穩定可靠及結構改變靈活等優點,具體在本系統的控制模型如圖8所示。

圖7 接收端電路Fig.7 Receiver circuit

圖8 PID控制系統原理圖Fig.8 Schematic diagram of PID control system
PID控制算法是以比例、微分、積分來進行控制的。可分為位置式和增量式2種。位置式PID的輸出與過去的所有狀態有關,對每一次的誤差進行累加,計算量較大,當控制器出現問題時,對系統的穩定性影響太大。和位置式PID控制不同,增量式PID控制將當前時刻的控制量和上一時刻的控制量做差,以差值為新的控制量,是一種遞推式的算法,針對智能小車系統采用增量式PID控制更加適合,增量式PID控制算法的理論基礎為

將其離散化后:

前后項相減:

式中:KP為比例控制參數;Ki為積分控制參數;KD為微分控制參數。
在實際系統運用中,將紅外傳感器返回值作為誤差項,經PID 程序運算后,改變電機PWM的占空比參數,調整小車的轉向。具體如表1所示。

表1 返回值及誤差Tab.1 Return value and error
從表1可以看出當返回值為00100時,誤差值為0,認為小車處于循跡線的正中央運行,當偏左或偏右時返回變為01000 或00010,根據此返回值判定對應的誤差值進行控制。需注意當返回值為00000時,意味著上一次返回值可能是10000,也可能是00001;如果返回值是10000,則小車運行第一個傳感器和第二個傳感器之間或者是在第一個傳感器右邊;如果是00001 則小車在最后一個傳感器的左邊。
根據式(3)可以寫出PID算法代碼:

智能小車上電后,各傳感器和功能電路采集相關信息送至STM32 單片機,單片機根據采集的相應信息調用相關的程序進行數據處理,處理后控制相應的模塊進行執行。智能小車系統的主程序流程如圖9所示。

圖9 主程序流程Fig.9 Main program flow chart
將超級電容的殘余電量放至0 V,在充電電壓/電流(5 V/1 A)的情況下,選用不同限流電阻進行充電測試,結果如表2所示。

表2 充電時長測試Tab.2 Charging duration test
在整個智能無線充電循跡小車的運行過程中,需要實時監控小車的總電量(超級電容電壓)。同時將超級電容電壓顯示在OLED 屏上利于小車和使用人員的信息交互。實際是通過電源檢測監控電路檢測超級電容兩端的電壓值,經處理后進入STM32的ADC端口,通過內部的換算和程序處理最終顯示在OLED 屏上。實際測試結果如圖10所示。OLED顯示系統監測的電壓值,萬用表的數值為直接在超級電容兩端測得的實際數據。

圖10 顯示電壓值與實測值Fig.10 Display voltage value and measured value
實測結果表明ADC 讀取與OLED 顯示的電壓與實測誤差在0.01 V,符合設計要求。
整定調節器參數的方法基本可分為理論計算整定法和工程整定法。工程整定法無需知道系統過程的數學模型,直接進行現場整定,方法簡單、計算簡便、易于操作[12]。本文采用工程整定法的湊試法確定PID的比例、積分及微分參數。首先確定KP值,將Ki、KD的參數設置為0。將KP從0 逐漸增大,直到小車出現振蕩,再反向從振蕩開始減小到小車停止振蕩,運行平穩。確定KP后則依照上述原理確定Ki、KD。經過反復調試當KP=10;Ki=0.5;KD=0.1,采用循跡難度較大的圓形跑道,小車能夠平穩的循跡運行,實際循跡運行照片如圖11所示。

圖11 小車循跡運行照片Fig.11 Photo of the car tracking
本文介紹了一種基于STM32的智能無線充電循跡小車,系統采用無線充電技術,運行中通過實時電量的監控實現智能管理,可自動停車充電。在行進過程中根據循跡傳感器的返回數值經增量式PID算法后控制小車左右驅動輪的PWM 信號輸出。經多次測試,小車能夠較平穩地循跡高速行駛,具有較高的應用前景和研究價值。