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