劉芳 張田田 牛夢豪


摘 要:智能小車綜合利用傳感器、人工智能、自動控制、視覺計算、體系結構設計等多項技術,是計算機科學、模式識別和智能控制技術發展到一定高度的產物,也是未來智能汽車的發展趨勢。本文介紹了一種基于STM32單片機的智能循跡避障小車硬件系統和軟件系統的設計。該智能小車以STM32單片機為主控芯片,采用紅外對管和超聲波傳感器作為檢測元件,使小車能按預定的軌道穩定行駛,能正確地識別路徑、避障。
關鍵詞:循跡避障;STM32F103ZET6;紅外對管傳感器;超聲波傳感器;舵機
智能小車是一種可以進行自主信息檢測、自主決策以及自主行駛的高度智能化設備,涉及的學科主要包括單片機原理、軟件編程、電機自動控制、數字電路、模擬電路,以及硬件設計、信息采集、信號處理技術和人工智能技術等等。本文基于STM32主控芯片設計的智能小車包括兩個單元,其一是循跡單元,其二是避障單元。主要利用循跡單元、避障單元的外圍硬件設備結合軟件控制,設計出一個較為完整的自主控制系統,使智能小車分別能夠按預設標線完成循跡行駛和自主避障行駛。
1 工作原理
智能循跡避障小車的控制系統主要由以下四個模塊組成:紅外對管模塊、超聲波模塊、舵機模塊、電機驅動模塊。循跡小車的控制原理是將紅外對管傳感器固定在小車前端,實時采集道路信息,將采集到的信息傳輸到STM32處理器,處理器根據預設的程序調整小車電機的轉速進而使小車可以按照預先規劃好的路線行駛實現循跡。避障小車的控制原理是將超聲波傳感器固定在舵機上并置于小車前端,由STM32處理器根據設定的程序調整超聲波測量角度,測量小車與障礙物的距離,從而實現避障功能。
2 硬件設計
(1)主控制器單元。該智能循跡小車的主控制器單元采用STM32F103ZET6單片機,使用的是時鐘頻率為72MHz的ARM Cortex系列處理器。單片機的PB1、PB2端口用于循跡時紅外傳感器的輸入;PA2、PA3端口分別用于避障時超聲波傳感器的輸入和輸出;PB0端口用于舵機的輸入控制;PA4、PA5、PA6、PA7分別用于電機的正反轉控制。
(2)循跡單元。循跡單元是智能小車的重要組成部分,本設計采用的是具有反射功能的單光束紅外傳感器。傳感器兩個探頭分別為紅外線發射管和紅外線接收管。發射管發出紅外光線,傳感器根據接收管接收到紅外線的多少判斷黑線的位置。根據黑色吸光原理,當照射到黑線時,反射回來的光線較少,接收管不導通,輸出端輸出高電平。當照射到白色表面時,反射回來的光線較多,接收管導通,輸出端輸出低電平。單片機根據紅外對管傳感器輸出的信號來控制車輪轉向,從而實現小車的循跡功能。此小車循跡模塊由一個STM32主控板和兩個紅外傳感器模塊板組成,通過杜邦線將紅外傳感器模塊板與主控板板連接,實現信號傳入。兩個傳感器獨立工作,互不干擾,傳感器的數量與安裝位置沒有固定限制,可結合現場調試效果確定,以能使小車自主順暢運行為準,紅外傳感器模塊板工作電壓為3.3-5V。兩個紅外端口分別對應單片機的PB1、PB2口。
(3)避障單元。①超聲波模塊。本設計采用的是超聲測距波避障,其測距過程如下。首先,與TRIG相連的IO輸出一個不少于10us高電平觸發測距;緊接著,模塊自動向某一方向發射8個 40khz的方波;發射的同時,打開程序中所用的定時器并檢測與ECHO相連的IO口電位,當有信號返回時,ECHO輸出高電平,此時關閉定時器,讀取定時器的計時時間即為超聲波從發出信號到在空中傳播,再到接收到返回信號的總時間。
小車與障礙物的距離:
式中,d為超聲波避障模塊與物體之間的距離,c為空氣中超聲波沿直線傳播的速度,t總為五次傳感器測量的時間和,n為測量次數。本設計中采取連續測量5次求平均值的方法來減小測量誤差。
②舵機模塊。從PB0端口輸入舵機的控制信號,并產生周期為20ms的脈寬調制信號,0.5ms-2.5ms的脈沖寬度變化對應舵機0-180°的偏轉角變化,兩者變化基本上呈線性關系。通過控制單片機I/O輸入端,產生具有一定脈寬的信號并發送至舵機,使舵機輸出對應偏角直到處理器提供另一個脈寬信號再改變輸出的轉角。在此過程中無論外界對對舵機施加的力矩如何改變,舵機轉角都不會改變,直至主控模塊所發送下一個脈沖信號,舵機角度才會發生相應改變。
3 軟件設計
通過完成各模塊的初始化來實現智能小車軟件的設計,并實現運行過程中的自主控制。傳感器將采集到的信息以數字信號的形式傳遞到單片機輸入引腳。單片機依據此信號進行判斷處理,以實現智能車的正常行駛。這些過程均需要通過軟件設計來實現。本設計的控制系統軟件設計基于Keil μVision 5編譯環境,使用C語言完成程序編寫。
其中,傳感器對應小車的運動形式如下表:
4 結語
本設計通過采用STM32F103Z6芯片的A/D轉換、GPIO口、串行口通信等內部集成的一些功能完成了硬件的設計及軟件的開發,成功地實現了智能小車的循跡、避障功能。本文提出的基于STM32的智能循跡小車可應用在中小學生的興趣教育等領域。通過制作循跡避障的智能小車,可以很好地掌握STM32開發板的編程原理,同時鍛煉了大學生將綜合理論知識應用到實踐中的能力和團隊協作的能力。
參考文獻:
[1]李帥男.基于STM32的循跡避障智能小車的設計[J].數字技術與應用,2018,36(08):163-164.
[2]王楠,查志敏.基于STM32單片機的智能搬運小車設計[J].大慶師范學院學報,2017,37(06):14-17.
[3]駱第含,趙子豪,岳有山.智能小車的發展現狀與趨勢[J].河南科技,2017(23):92-93.