張輝,樊亞妮
(廣東第二師范學院 物理與信息工程系,廣東廣州 510303)
在我國歷年的全國大學生電子設(shè)計競賽中,智能小車控制類題目高頻次出現(xiàn)。2001年第五屆的C題——自動往返電動小汽車,2003年第六屆的E題——簡易智能電動車,2011年第十屆的C題——智能小車,2017年第十三屆的L題——自動泊車系統(tǒng),都出現(xiàn)了玩具智能電動小車[1]。這些命題一類是控制一輛智能小車實現(xiàn)自動循跡避障往返,或自動倒車入庫,或自動吹滅蠟燭。另一類題目要求兩輛智能小車相互追逐,交替領(lǐng)先,兼顧循跡避障,這種題目難度頗大。
第二類題目要求甲、乙兩輛小車在指定區(qū)域同時同向一前一后行進,并在規(guī)定區(qū)域?qū)崿F(xiàn)超車。分析該要求,智能小車必須具備兩種功能:一是智能循跡避障拐彎功能,使得小車在指定跑道行駛,不偏離軌道;二是在規(guī)定的超車道實現(xiàn)甲乙車位置互換,并且不得發(fā)生碰撞。全程不得人工干預,不得遙控,設(shè)計難度頗大。本文提出一種基于STC12C5A60S2微控制器的可行方案。
選用單片機STC12C5A60S2作為系統(tǒng)核心控制器;光電傳感器ST188用于探測路面黑白線并通過反射紅外線的變化判斷是黑線還是白線;L298N控制電動機左右輪的轉(zhuǎn)向;測距傳感器E18-D80NK-N用于判斷兩車的相對位置,從而決定是否需要超車及交替領(lǐng)跑。
單片機是一款16位的Flash單片機,有非常好的易用性,兼容8051單片機,具有LQFP、PDIP、PLCC、QFN等多種封裝結(jié)構(gòu)。圖1所示為PLCC架構(gòu)的外部引腳圖。通用輸入輸出I/O口復位后為準雙向口/弱上拉,與普通8051傳統(tǒng)I/O口兼容,可設(shè)置成四種模式:準雙向口/弱上拉,推挽/強上拉,僅為輸入/高阻,開漏,每個I/O口驅(qū)動能力均可達到20mA[2]。其內(nèi)部60KB的FLASH程序存儲器具有足夠大的空間存放用戶編寫的程序,相比于傳統(tǒng)的89系列,多了一個可自動重裝載的定時計數(shù)器,多了一個全雙工異步串行口UART,集成了3通道的PWM,集成了硬件看門狗,這些新增加的資源都為后面的設(shè)計提供了很好的硬件功能支持[3]。由于需要對小車的電動機進行PWM調(diào)速控制,這款單片機集成有PWM功能,可以省卻外加一塊PWM芯片,節(jié)省了成本和空間,降低了連線復雜度。系統(tǒng)采用大容量的12V/6800mAh鋰電池給電動機供電,另外通過電源電路轉(zhuǎn)換成5V給單片機供電。
2.2.1 循跡傳感器
循跡采用ST188傳感器來探測黑白線,其工作原理如圖2所示。當沒有物體反射紅外線,引腳1和2之間截止,沒有電流流過,4引腳輸出高電平,也就是電源電壓,LM324同相輸入端為高電平。當有物體反射紅外線時,引腳1和2之間導通有電流流過,引腳3和4之間的三極管CE引腳導通,相當于4引腳接地為低電平,LM324同相輸入端為低電平。這樣就能檢測出地面有無反射物體了。鑒于引腳3和4之間有較大的死區(qū)電壓,需要通過調(diào)節(jié)R3的阻值改變LM324的電壓比較值,增加ST188的測量靈敏度。為保證ST188的發(fā)射管靜態(tài)電流為典型值20mA,取典型發(fā)射二極管導通壓降值為1.25V,則在5V供電電壓下,與發(fā)射管串聯(lián)的電阻阻值為(5~1.25)V/20mA=187.5Ω,取標稱值 200Ω。

圖2 一路ST188光電傳感器模塊原理圖
五路ST188的光電傳感器放置在小車的底盤,位置如圖3所示。建議三角形排布,把一路傳感器放置于小車的最前方,便于提前獲取道路信息,及時做出姿態(tài)調(diào)整。另外的四路分別位于小車的兩側(cè),成三角形形狀。五個傳感器獲取的數(shù)據(jù)構(gòu)成一個字節(jié)的高5位,經(jīng)過施密特觸發(fā)器放大后濾波,反相送入STC12C5A60S2的P0口。

圖3 傳感器模塊安裝位置示意圖
2.2.2 測距傳感器
E18-D80NK作為小車的測距傳感器,本身具有發(fā)射和接收功能,并且只需要接三根線,接線簡單,價格低廉,安裝方便。其發(fā)射的紅外線經(jīng)調(diào)制器調(diào)制后發(fā)出;接收到的紅外光通過放大器放大后,解調(diào)輸出,可有效避免可見光的干擾。E18-D80NK測距傳感器最遠能檢測到80cm的距離。由于兩輛小車相互追逐距離不會相隔太遠,適用于該傳感器的檢測范圍。另外可以調(diào)節(jié)傳感器尾部的電位器阻值,以校準精度。實際中,可以利用該傳感器所測距離精確控制兩輛小車保持車距在跑道上向前行駛,到了規(guī)定的超車道再執(zhí)行超車動作。
紅外通信發(fā)射電路由晶振,反相器,電容,電阻構(gòu)成的455KHz的方波信號發(fā)生電路,經(jīng)脈沖分頻器74HC92六分頻為75.83KHz的脈沖信號,再經(jīng)過脈沖分頻器74LS92,六分頻成為75.83KHz的脈沖信號,再經(jīng)過D觸發(fā)器構(gòu)成的2分頻電路變成38KHz的防波信號。該信號與從單片機TX端輸出的串行數(shù)據(jù)一起送入與非門74HC00,從而控制復合三極管的開通與斷開,最終控制了紅外發(fā)射管的發(fā)射信息,以達到用TX串行數(shù)據(jù)信號直接調(diào)制載波,進行紅外數(shù)據(jù)傳輸?shù)哪康摹_@部分電路如圖4所示。紅外接收電路由HS0038A來完成,該模塊有三個端口,2號引腳接電源正Vcc,1號引腳接地,3號為數(shù)據(jù)接收端,通過10 kΩ電阻接上拉電源。如圖5所示。

圖4 紅外通信發(fā)射電路

圖5 紅外通信接收電路
施密特觸發(fā)器74HC1和L298構(gòu)成電動機控制模塊,用來調(diào)整小車的轉(zhuǎn)向,加速,減速等姿態(tài)控制.如圖6所示。L298是一種兩相和四相電機的專用驅(qū)動器,內(nèi)部有兩個全雙橋的H型驅(qū)動電路,不僅可以接受標準TTL信號,而且可以驅(qū)動46V、2A以下的電動機[4]。使用施密特觸發(fā)器74HC14是為了節(jié)省兩個輸入輸出端口,用使能端ENA和ENB來控制電機的啟停,也可以輸入PWM波控制電機的轉(zhuǎn)速[5]。L298的邏輯功能如表1所示。

圖6 電機驅(qū)動模塊示意

表1 L298的邏輯功能表
E18-D80NK-N是一款數(shù)字光電傳感器,屬于是NPN型光電開關(guān)[6]。當檢測到目標物體時,低電平輸出,正常狀態(tài)是高電平輸出。可外加一個1KΩ的上拉電阻連接到單片機的IO口上。具有較遠的探測距離,受可見光干擾小等特點。利用該傳感器,能精確控制兩小車的距離,使得在非超車段兩車一前一后正常行駛,超車段后車追趕上前車,交替領(lǐng)跑。
單片機P2口的高四位接電動機驅(qū)動芯片L298輸入端和使能端,P0口的高五位接五個循跡模塊。紅外通信模塊使用P1.0,P1.1和P3.1口。兩個電機由單片機的P2口高四位控制,其中P2.5為使能端ENA,P2.7為使能端ENB,均為低電平有效。設(shè)置電動機控制代碼如表2所示,其中的二進制代碼只需關(guān)心高四位數(shù)值即可。

表2 電機控制代碼
當小車行駛在黑線上,傳感器模塊分壓后獲得高電平,通過施密特反相觸發(fā)器送入CD4069反相器后得到高電平;反之,行駛在白線上獲得的信號為低電平。資源配置單片機P0口的高五位采集循跡傳感器信號,即P0.7~P0.3,循跡控制代碼如表3所示。

表3 循跡控制代碼
系統(tǒng)程序中主要是由三個判斷構(gòu)成,圖7所示流程圖對于前后兩車都適用。如果兩車進入超車段,需要后車超越前車,則前車在超車標志判斷后沿著內(nèi)線減速行駛,后車沿著外線原速行駛,達到超車目的。最后一個判斷是前車判斷已經(jīng)被后車超車,恢復原來的速度,以保證在非超車道,兩車一前一后相對距離不變行駛。程序設(shè)計利用外車道超車,以免兩車發(fā)生碰撞。程序采用模塊化設(shè)計法,把相對獨立的程序段寫成一個模塊進行調(diào)用。這樣易于編寫和調(diào)試,能夠把復雜任務分割成小任務,為設(shè)計提供方便。在Keil C軟件中編譯調(diào)試通過后固化到單片機,安裝到電路板上。部分程序列舉如下:



圖7 系統(tǒng)流程圖
為了實現(xiàn)靈活轉(zhuǎn)向,小車采用兩輪驅(qū)動控制方式。電源選擇大功率大容量的鋰電池,以提供強大的續(xù)航能力。各模塊電路盡量減少面積,五路循跡傳感器安裝在小車靠前的部位,單片機控制系統(tǒng)安裝在車身中部,電機驅(qū)動模塊安裝在電機附近。
調(diào)試時,需要手動給光電傳感器一個輸入信號,檢測輸出電平是否正常。給L298各個輸入端口加上電平,觀察電機的運轉(zhuǎn)情況是否正常。檢查小車能否前進、后退、停止和轉(zhuǎn)彎等。各項檢查都通過后,加載完整程序。
小車的相互追逐功能是在避障功能基礎(chǔ)上新增的一種競賽類型題目,全面考察選手的各方面技能。選手必須在熟悉循跡避障的基礎(chǔ)上,加入測距相互追逐功能,對選手是一個很大的挑戰(zhàn)。提出的設(shè)計思路經(jīng)驗證確實可行,但在精確性和實時性上有待提高,需要不斷優(yōu)化硬件電路和程序,以達到更好的效果。