天津職業(yè)技術(shù)師范大學工程實訓(xùn)中心 劉衛(wèi)華 戴健雄
引言:本文設(shè)計將傳統(tǒng)智能循跡小車系統(tǒng)和開源電子設(shè)計Arduino結(jié)合設(shè)計智能循跡小車系統(tǒng),并通過PID算法實現(xiàn)智能調(diào)節(jié)。論文介紹了設(shè)計的思路和一些用到的基本的原理及系統(tǒng)的硬件、軟件設(shè)計知識。
Arduino是一個基于開放源代碼的軟硬體平臺,構(gòu)建于開放原始碼simple I/O介面版,并且具有使用類似Java,C語言的Processing/Wiring開發(fā)環(huán)境。Arduino能通過各種各樣的傳感器來感知環(huán)境,通過控制燈光、電機和其他的裝置來反饋、影響環(huán)境。板子上的微控制器可以通過Arduino的編程語言來編寫程序,編譯成二進制文件,燒錄進微控制器。對Arduino的編程是利用Arduino編程語言和Arduino開發(fā)環(huán)境來實現(xiàn)的。基于Arduino的項目設(shè)計,可以只包含Arduino軟件平臺,也可以結(jié)合Arduino相應(yīng)的硬件電路設(shè)計。
設(shè)計微型小車,能在如圖1所示的參數(shù)測試場景中實現(xiàn)自動循跡或紅外搖控控制。
圖1 測試場景及參數(shù)
根據(jù)要求,硬件應(yīng)全面兼容Arduino,并具有通信和下載接口,具有光電傳感器能感知地面黑線,具有可控驅(qū)動電機,具有紅外搖控接收裝置,具有一定的人機接口,LED指示和按鍵等。
根據(jù)小車的功能,設(shè)計的系統(tǒng)方框圖2所示。
圖2 系統(tǒng)方框圖
為了實現(xiàn)的微型化,以及充分發(fā)揮Arduino開放性,在功能框圖的基礎(chǔ)上增加了串口、ISP下載口、紅外線接收、按鍵及兩個LED指示燈,并對標準的Arduino電路進行了簡化,取消外圍晶振電路和復(fù)位電路。主控芯片使用了AVR ATMEGA8L,低電壓單片機。光電傳感器使用了SANYO光電反射管SIP-315-34。本小車沒有倒退動作,所以不需要電機的反轉(zhuǎn)。為了實現(xiàn)的轉(zhuǎn)彎等動作,要求通過改變控制信號的高低電平比例(即PWM)來控制電機的轉(zhuǎn)速。為了實現(xiàn)小車的紅外功能,并充分利用主控芯片的資源,增加一只一體化紅外接收頭NB0038;將RXD和TXD及地線通過排針引出,可通過專門的USB轉(zhuǎn)TTL串口線與小車進行通信;增加了一個按鍵和兩個LED指示電路,用于電路調(diào)試及功能指示。
下面將介紹如何使小車實現(xiàn)自主循跡,并具有一定的智能性。
設(shè)計的主程序流程圖如圖3所示。
圖3 主程序流程圖
為了實現(xiàn)走直線以及轉(zhuǎn)彎等動作,這就要求小車的兩個電機轉(zhuǎn)速可調(diào)。使用PWM(脈沖寬度調(diào)節(jié))的技術(shù),通過改變脈沖高電平的比例(占空比)來改變等效有效值。在Arduino中我們使用AnalogWrite(pin,Value)來實現(xiàn)數(shù)字IO口PWM輸出,輸出的PWM信號頻率大約400Hz。 本設(shè)計中pin取值為9和10分別對應(yīng)電機1和2,Value設(shè)置輸出的信號占空比,范圍0-255,0對應(yīng)電機停轉(zhuǎn),255為最快轉(zhuǎn)速。
本設(shè)計中,使用脈沖光來排除環(huán)境光線的干擾,并按順序掃描來防止傳感器之間的相互干擾。微控制器先關(guān)閉LED并掃描傳感器,采樣輸出電壓,打開LED并且再次采樣輸出電壓。兩次采樣的差值作為LED的光敏電流和環(huán)境光線被排除后的輸出電壓。其余的傳感器也按上述順序進行掃描。流程圖如圖4所示。
通過相同的方法分別采集了傳感器在黑線和白紙上的值,分別存入mySensB和mySensW數(shù)組。將被跟蹤的線的位置是與中心值對比,定位誤差同比例、積分、差分濾波器一起被處理來生成控制命令,控制左右輪使小車按軌跡快速行駛。
圖4 傳感器采集流程圖
系統(tǒng)測試過程中,采取順時針和逆時針兩個方向的測試方法,以此來檢測智能小車左右轉(zhuǎn)的效果。
經(jīng)過順時針、逆時針各10次,每次1圈的實際測試。系統(tǒng)在順時針運動時,主要執(zhí)行右轉(zhuǎn)和直行這兩種運動控制;在逆時針運動時,主要執(zhí)行左轉(zhuǎn)和直行這兩種運動控制。在每組測試過程中,逆時針的運動時間相對順時針的運動時間較長,則可大致得出結(jié)論:左轉(zhuǎn)控制的響應(yīng)時間慢于右轉(zhuǎn)控制。另外,起點位于彎道的運行時間要長于起點位于直道的運行時間。實物小車如圖5所示。
圖5 實物小車
本設(shè)計可用于電子、自動化等專業(yè)的實訓(xùn)課程訓(xùn)練,可以由學生參考本電路,設(shè)計電路板及機械等,也可提供設(shè)計好的智能小車平臺,實現(xiàn)Arduino平臺的編程學習、代碼算法學習以及應(yīng)用平臺進行競賽活動。