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