劉文泉,朱春燕
(1.西北工業(yè)大學(xué)自動(dòng)化學(xué)院,陜西西安,710072;2.西安工業(yè)大學(xué)北方信息工程學(xué)院,陜西西安,710200)
智能循跡小車主要由STC89C52RC單片機(jī)開發(fā)板、HJIR1循跡模塊、L298N驅(qū)動(dòng)模塊、電機(jī)模塊、電源模塊等組成,圖1是智能循跡小車系統(tǒng)組成。采用STC89C52單片機(jī)I/O口控制L298N驅(qū)動(dòng)模塊,來控制四個(gè)直流電機(jī)的運(yùn)動(dòng)形態(tài),完成規(guī)定黑色線循跡控制。
圖1 智能循跡小車控制系統(tǒng)組成圖
智能小車采用HJ-IR1光電循跡傳感器,圖2是紅外發(fā)射管紅外光線發(fā)射到黑色線時(shí),由于黑色對(duì)紅外光線的吸收高,因此反射回紅外接收管的紅外光線相對(duì)減少,此時(shí)I/O口輸出高電平,如果紅外發(fā)射管反射到其它路面則I/O口輸出低電平。
圖2 黑色障礙物光路圖
STC89C52單片機(jī)的最小系統(tǒng),主要擴(kuò)展包括:供電電路、復(fù)位電路和時(shí)鐘電路。
光電循跡傳感器電路如圖3所示。當(dāng)發(fā)射管發(fā)出的紅外線遇到黑線時(shí),黑線吸收了紅外線,導(dǎo)致反射回來的紅外線很少,所以光敏三極管不會(huì)導(dǎo)通,從電路中可以看出遇到黑線時(shí)輸出端輸出AOUT模擬量在5V,通過比較器比較在輸出DOUT數(shù)字量高電平1給單片機(jī)。
圖3 循跡傳感器電路圖
電機(jī)的驅(qū)動(dòng)電路如圖4所示,采用L298N驅(qū)動(dòng)芯片帶動(dòng)兩個(gè)直流電動(dòng)機(jī)進(jìn)行運(yùn)轉(zhuǎn),選用電機(jī)是抗干擾碳刷TT減速馬達(dá),抗干擾碳刷到電動(dòng)機(jī)的作用是改變DC電機(jī)的電流方向。
2.3.1 H橋驅(qū)動(dòng)電路分析
電動(dòng)機(jī)控制電路的雙H橋,包括八個(gè)三極管和兩個(gè)馬達(dá)。在電機(jī)運(yùn)行時(shí),根據(jù)三極管的導(dǎo)通情況來控制電機(jī)的電流方向。H橋電機(jī)驅(qū)動(dòng)電路有三種狀態(tài),下面作一路電機(jī)的分析。
圖4 電機(jī)驅(qū)動(dòng)電路
狀態(tài)一:首先ENA是使能端,是控制剎車使用的,IN1、IN2是控制電機(jī)的正轉(zhuǎn)和反轉(zhuǎn)。當(dāng)輸入高電平1進(jìn)入使能端、IN1和IN2輸入低電平0時(shí),ENA和IN1的信號(hào)通過兩個(gè)與門電路給三極管T1輸送一個(gè)低電平0,而給三極管T2輸送一個(gè)高電平1,三極管T2導(dǎo)通而三極管T1不導(dǎo)通。所以電機(jī)沒有電流進(jìn)入,從而直流電機(jī)不工作。
狀態(tài)二:使能端還是給高電平1讓其使能工作,然后給IN1輸入高電平1,IN2輸入低電平0,使得三極管T2和T3不導(dǎo)通,而三極管T1和T4導(dǎo)通,這樣使電機(jī)反轉(zhuǎn)。
狀態(tài)三:分別給ENA、IN1、IN2輸入高電平1、低電平0、高電平1,其使得三極管T2和T3導(dǎo)通,三極管T1和T4不導(dǎo)通,電機(jī)正轉(zhuǎn)。
所以通過一路電機(jī)的分析我們可以得出四路電機(jī)的工作狀態(tài),在編寫程序的時(shí)候怎樣給芯片定義高低電平?jīng)Q定了小車的運(yùn)動(dòng)狀態(tài)。
2.3.2 小車運(yùn)動(dòng)控制邏輯
小車在L293D驅(qū)動(dòng)芯片控制下可以得到電機(jī)控制邏輯:當(dāng)使能端ENA為高電平時(shí),如果給引腳IN1輸入低電平而給引腳IN2輸入為高電平,則電機(jī)正轉(zhuǎn);如果引腳IN1輸入高電平而引腳IN2輸入低電平,則電機(jī)反正轉(zhuǎn);IN1和IN2都輸入低電平時(shí),電機(jī)停止。表1是小車的運(yùn)動(dòng)邏輯。
表1 小車運(yùn)動(dòng)邏輯
設(shè)計(jì)采用C語言編譯。該方案使用軟件設(shè)計(jì)的模塊化結(jié)構(gòu)。光電循跡小車的主程序流程如圖5所示。
圖6所示為小車的狀態(tài),紅色代表傳感器,黑色代表循跡路線,直行時(shí)傳感器的電平為00100 。當(dāng)單片機(jī)讀到P1口的低四位為00100時(shí),就執(zhí)行直行函數(shù)。
圖5 主程序設(shè)計(jì)流程圖
小車的向右偏移的四種狀態(tài)。四種狀態(tài)則分別對(duì)應(yīng)程序里面四種函數(shù):
若P1口低四位狀態(tài)=01100,小車輕微向左偏離軌道,則執(zhí)行向左微轉(zhuǎn)函數(shù);
若P1口低四位狀態(tài)=01000,小車中度向左偏離軌道,則執(zhí)行向左中轉(zhuǎn)函數(shù);
若P1口低四位狀態(tài)=11000,小車嚴(yán)重向左偏離軌道,則執(zhí)行向左大轉(zhuǎn)函數(shù);
若P1口低四位狀態(tài)=10000,小車馬上向左偏離軌道,則執(zhí)行向左死轉(zhuǎn)函數(shù)。
圖6 小車向右偏移
小車的向左偏移的四種狀態(tài)。四種狀態(tài)則分別對(duì)應(yīng)程序里面四種函數(shù):
若P1口低四位狀態(tài)=00110,小車輕微向右偏離軌道,則執(zhí)行向右微轉(zhuǎn)函數(shù);
若P1口低四位狀態(tài)=00010,小車中度向右偏離軌道,則執(zhí)行向右中轉(zhuǎn)函數(shù);
若P1口低四位狀態(tài)=00011,小車嚴(yán)重向右偏離軌道,則執(zhí)行向右大轉(zhuǎn)函數(shù);
若P1口低四位狀態(tài)=00001,小車馬上向右偏離軌道,則執(zhí)行向右死轉(zhuǎn)函數(shù)。
圖7 小車實(shí)物圖
在安裝好小車之后首先要檢查電源線、信號(hào)線、元器件引腳之間有無短路等情況。以小車前進(jìn)為例,通電之后觀察小車輪胎的轉(zhuǎn)向,如果一個(gè)或者兩個(gè)輪胎都反轉(zhuǎn),則接線錯(cuò)誤,需要調(diào)整接線位置;如果輪胎不轉(zhuǎn),則說明接線沒有導(dǎo)通,要重新接線檢測,重新接線之后還不能轉(zhuǎn)動(dòng),則說明直流電機(jī)壞了或者程序出現(xiàn)錯(cuò)誤,可以通過換電機(jī)進(jìn)行調(diào)整。小車原地打轉(zhuǎn)或者前進(jìn)時(shí)候沖出跑道,不能正常循跡,可以通過調(diào)節(jié)紅外傳感器的可調(diào)電阻,改變傳感器靈敏度,及傳感器距離地面的高度。安裝調(diào)試完成之后實(shí)物圖如7所示。在軟件調(diào)試過程中,利用ISP軟件調(diào)試,支持計(jì)劃刻錄編譯和調(diào)試軟件WAVE 6000。
本課題研究的智能小車的循跡系統(tǒng),能夠?qū)崿F(xiàn)按照預(yù)定軌道沿著黑色標(biāo)記線運(yùn)動(dòng)。保證光電傳感器的正常靈敏的工作,使小車不受到外界干擾而偏離黑線運(yùn)動(dòng);并保留了擴(kuò)展功能,方便以后的擴(kuò)展和進(jìn)一步的開發(fā)。