劉遠(yuǎn)明,李道霖,韓緒鵬
(三峽電力職業(yè)學(xué)院電力工程系,湖北宜昌443000)
循跡小車是目前較為普遍的一項(xiàng)智能小車制作競賽,該制作要求小車能尋著一條黑色軌跡前進(jìn)直到終點(diǎn),用達(dá)到終點(diǎn)的時間決定競賽成績。到達(dá)終點(diǎn)的時間越短,成績越好。在整個設(shè)計(jì)過程中,循跡小車的尋跡電路是循跡小車的一個關(guān)鍵部件,傳統(tǒng)的設(shè)計(jì)采用光電傳感器[1-3]作為尋跡器件。然而,光電傳感器對環(huán)境的光線變化比較敏感,不適合在露天環(huán)境和光照比較強(qiáng)的地方開展活動。通過反復(fù)試驗(yàn)和嘗試,作者提出把金屬感應(yīng)傳感器[4]用于循跡小車替代光電尋跡電路,用帶不干膠的金屬鋁箔膠帶貼在地面替代黑色軌跡線條,循跡小車尋著鋁箔膠帶軌道前進(jìn),無需光線介入,大大增加了尋跡小車活動的環(huán)境適應(yīng)性。
感應(yīng)式循跡小車是由單片機(jī)控制系統(tǒng)、尋跡電路、電動機(jī)驅(qū)動電路等幾部分組成。
金屬感應(yīng)傳感器電路在小車中實(shí)現(xiàn)金屬鋁箔路軌的感應(yīng)尋跡功能,該電路是用金屬探測電路[2]改進(jìn)得到的,電路如圖1所示。圖中,電感線圈L、電容C1、C2、C3,三極管VT1等組成了一個典型的電容三點(diǎn)式振蕩電路,振蕩電路產(chǎn)生的正弦波信號經(jīng)VT2放大后,由VD1、VD2、C6等進(jìn)行倍壓整流、濾波,使三極管VT3的基極獲得了一定幅度的基極電壓而導(dǎo)通,其集電極輸出低電平,后級NE555電路構(gòu)成的施密特觸發(fā)電路[5]因其2腳電平小于1/3VCC,其輸出端3腳輸出1電平。若把電感線圈L靠近金屬物體,線圈的變化磁場會在金屬物體內(nèi)感應(yīng)出渦流而產(chǎn)生鐵損,線圈的Q質(zhì)下降,電路振蕩減弱直至停止振蕩。作用在VT3基極上的電壓消失,三極管VT3由導(dǎo)通變?yōu)榻刂?,其集電極輸出高電平,該電平使后級NE555的6腳電平大于2/3VCC,其輸出端3腳的電平由1跳變?yōu)?,把這個信號送給單片機(jī)I/O端口,單片機(jī)就可以通過檢測該端口的信號變化,了解循跡小車的運(yùn)行狀態(tài),給出相應(yīng)的控制指令。在該電路中,調(diào)整可調(diào)電阻RP的電阻大小可改變電路的正反饋幅度,使振蕩電路剛好處于振蕩的臨界點(diǎn)上,可調(diào)節(jié)傳感器感應(yīng)到金屬物體的靈敏度。通過精確調(diào)節(jié)RP,可使相應(yīng)金屬感應(yīng)傳感器的靈敏度達(dá)到10 mm以上。
圖1 金屬傳感器電路Fig.1Metallic sensor circuit
整個循跡小車的設(shè)計(jì)采用51單片機(jī)[6]構(gòu)建控制系統(tǒng),電路圖如圖2所示,該電路由電源電路、ISP下載接口、電動機(jī)驅(qū)動電路接口、AT89S51單片機(jī)等幾部分組成。把單片機(jī)的P3.4,P3.5,P3.6端口作為傳感器的輸入端口,從金屬感應(yīng)傳感器電路原理分析中可以看出,當(dāng)傳感器靠近金屬物體時,傳感器輸出為低電平,無金屬物體時,輸出為高電平,P3.7口直接接地,方便以后尋跡程序的編寫。
圖2 單片機(jī)控制電路Fig.2MCU control circuit
機(jī)器人采用兩個減速電動機(jī)分別帶動左右兩個動力輪,實(shí)現(xiàn)前進(jìn)、后退、轉(zhuǎn)彎等功能。電動機(jī)的驅(qū)動電路選用小直流電動機(jī)專用驅(qū)動芯片L293D,它能同時驅(qū)動2個減速電機(jī),最大輸出峰值電流達(dá)1 A,該芯片與單片機(jī)連接如圖3所示。
圖3 電動機(jī)驅(qū)動電路Fig.3Motor drive circuit
感應(yīng)式循跡小車底盤結(jié)構(gòu)如圖4,底盤左右兩輪都為動力輪,分別由兩個減速電動機(jī)驅(qū)動,后面的小輪為隨動輪,隨著兩個動力輪的運(yùn)行而運(yùn)行。3個金屬感應(yīng)傳感器的電感線圈并排安裝在機(jī)器人的前面,距地面約5毫米左右的距離,正常運(yùn)行時,讓中間的一個傳感器位于道路的正上方,處于檢測到金屬物體的狀態(tài),傳感器輸出為0電平,旁邊兩個傳感器在道路兩邊,沒有檢測到金屬物體,輸出為1電平,3個傳感器的輸出端與單片機(jī)對應(yīng)端口連接,電平輸出信號就是單片機(jī)端口的輸入信號。
圖4 循跡機(jī)器人底盤示意圖Fig.4Schematic diagram of tracking robot
在循跡小車尋著鋁箔膠帶軌道運(yùn)行的過程中,會出現(xiàn)正常運(yùn)行,右邊偏離軌道,左邊偏離軌道等各種情況,按照上面?zhèn)鞲衅鞯脑O(shè)置,循跡小車在正常行駛時,傳遞到單片機(jī)端口的電平信號是101,由于事先已將單片機(jī)的P3.7口接地,因此,傳遞給單片機(jī)P3口的高4位電平信號為0101,當(dāng)循跡小車從右邊偏離軌道時,左邊和中間的傳感器會同時檢測到金屬體,此時,3個傳感器的輸出狀態(tài)為100,單片機(jī)P3口的高4位電平信號為0100,定義這種偏離為右偏,如果繼續(xù)右偏,中間的傳感器會從右邊離開軌道,此時,只有左邊的傳感器檢測到金屬體,此時單片機(jī)端口的電平信號為0110,把這種偏離定義為嚴(yán)重右偏。用這種方法,可以定義機(jī)器人7個尋跡狀態(tài),把這些狀態(tài)對應(yīng)的電平信號用BCD碼表示,并以此排序,得到端口對應(yīng)的尋跡狀態(tài)編碼表,如表1所示。
表1 尋跡狀態(tài)編碼表Tab.1Coding table of tracing status
循跡小車由左右兩只電動機(jī)驅(qū)動,實(shí)現(xiàn)前進(jìn)、后退、轉(zhuǎn)彎等各種運(yùn)動,控制信號由單片機(jī)P2口的低4位給出。對循跡小車的轉(zhuǎn)彎控制采用一輪停止,一輪運(yùn)行的方法實(shí)現(xiàn),用轉(zhuǎn)彎的時間來控制循跡小車轉(zhuǎn)彎的幅度,同樣是左轉(zhuǎn),轉(zhuǎn)彎1 s和轉(zhuǎn)彎2 s轉(zhuǎn)彎的幅度是不一樣的,后者轉(zhuǎn)彎的幅度大,把轉(zhuǎn)彎幅度大的叫“急轉(zhuǎn)”,如“右急轉(zhuǎn)”,“左急轉(zhuǎn)”,以區(qū)別轉(zhuǎn)彎幅度小的左轉(zhuǎn),右轉(zhuǎn)等。結(jié)合表1,針對各種可能的尋跡狀態(tài),制定出控制方案如表2所示。
表2 循跡小車控制方案表Tab.2Control program table of self-tracking car
根據(jù)單片機(jī)系統(tǒng)圖、表1和表2,把電動機(jī)控制參數(shù)和延時參數(shù)以壓縮BCD碼的形式組合為一個字節(jié),控制參數(shù)放高4位,延時參數(shù)放低4位,整理后,可得到單片機(jī)信號端口和控制端口對應(yīng)關(guān)系的編碼表,如表3所示,可在此基礎(chǔ)上進(jìn)行尋跡機(jī)器人的程序設(shè)計(jì)。
在循跡小車運(yùn)行過程中,不斷讀取P3口的狀態(tài)值,取出高4位,將結(jié)果存入累加器A中,然后用查表的方法,取出對應(yīng)的組合參數(shù)表值,在讀出的表值中,高4位為控制電動機(jī)運(yùn)行的參數(shù),低4位為電機(jī)運(yùn)行的延時參數(shù),把高4位和低4位數(shù)從字節(jié)中分離出來,將高4位數(shù)送入P2口對循跡小車運(yùn)動狀態(tài)進(jìn)行控制,將低4位值賦予延時子程序的R0,延時時間為R0×T(ms),T是單位時間,需根據(jù)循跡小車的速度性能確定,用以控制各運(yùn)行狀態(tài)的運(yùn)行時間。另外,在循跡小車尋跡過程中,常會出現(xiàn)循跡小車出軌的情況,一旦循跡小車脫離尋跡軌道,往往意味著尋跡失敗,因此需在程序中增加挽救措施,讓循跡小車在發(fā)現(xiàn)自己脫軌后,立即后退,回到軌道線繼續(xù)運(yùn)行。根據(jù)以上設(shè)計(jì)思路,循跡小車的控制流程圖如圖5所示。
表3 組合參數(shù)編碼表Tab.3Coding table of combination parameters
圖5 循跡小車控制流程圖Fig.5Control flow chart of self-tracking car
…………
KS:
MOV P3,#0FFH
MOV DPTR,#S4
S0:JB P1.0,$;聲控啟動
S1:
MOV P2,#09H;前進(jìn)
MOV A,P3;讀P3到A
ANL A,#0F0H;取高4位數(shù)據(jù)
MOV 40H,A;保存到內(nèi)存40H中
NOP;稍候
NOP
NOP
MOV A,P3;再讀P3口
ANL A,#0F0H
CJNE A,40H,S1;和上次結(jié)果比較,不同就返回重來
SWAP A;交換高低4位,取尋跡結(jié)果
圖中x為輸入層,給定一個序列xt=(x1,x2,……xt,xt+1)輸入到RNN細(xì)胞中,根據(jù)式(1)、式(2)可計(jì)算出一個隱藏層序列st和一個輸出序列yt。
MOV R4,A
MOVC A,@A+DPTR;查表取出對應(yīng)組合參數(shù)
MOV R3,A;組合參數(shù)先存入R3中
ANL A,#0FH;取出低4位延時參數(shù)
MOV 41H,A;延時參數(shù)先存放到41H中
MOV A,R3
SWAP A
MOV P2,A;控制參數(shù)送P2口
JZS0;壓橫線,停止運(yùn)行
MOV R0,41H;延時參數(shù)送R0中
ACALL YS;調(diào)用延時子程序
AJMP S1
YS:
ACALL YS10MS
DJNZ R0,YS
RET
YS10MS:;延遲10 ms
MOV R1,#250
S3:
MOV R2,#20
DJNZ R2,$
DJNZ R1,S3
RET
S4:
DB 0AH,15H,91H,1AH,85H,91H,8AH,61H;
END
為提高傳統(tǒng)循跡小車的運(yùn)行可靠性,文章提出感應(yīng)式循跡小車的設(shè)計(jì)方法,且詳細(xì)地闡述了該設(shè)計(jì)的主要組成:循跡小車的硬件及電路、循跡小車的循跡控制和單片機(jī)的程序?qū)崿F(xiàn)。
按照本文所提出的新方法,作者成功地設(shè)計(jì)和制作了感應(yīng)式循跡小車的樣品,樣品實(shí)際測試結(jié)果表明:基于新方法設(shè)計(jì)的小車運(yùn)行平穩(wěn),在長時間工作中沒有出現(xiàn)脫軌現(xiàn)象,循跡小車的運(yùn)行與環(huán)境光的強(qiáng)弱沒有關(guān)系,小車的整體性能較好。
[1]劉群,鄭丹瑩,劉鳴.紅外反射式傳感器的自尋跡小車的設(shè)計(jì)[J].實(shí)驗(yàn)科學(xué)與技術(shù),2007,5(5):154-156.LIUQun,ZHENGDan-ying,LIUMing.Designofautosearching cra with reflected infrared sensors[J].Experiment Science&Technology,2007,5(5):154-156.
[2]單以才,李奇林,秦劍華,等.基于紅外傳感器的自主循跡小車控制算法設(shè)計(jì)與實(shí)現(xiàn)[J].機(jī)床與液壓,2010,38(14):79-81.SHANYi-cai,LIQi-lin,QINJian-hua,etal.Designand realization of self-tracking vehicle’s control algorithm based on infrared sensor[J].Machine Tool&Hydraulics,2010,38(14):79-81.
[3]王子輝,葉云岳.基于CMOS傳感器的智能循跡小車圖像識別技術(shù)研究[J].傳感技術(shù)學(xué)報(bào),2009,22(4):484-488.WANG Zi-hui,YE Yun-yue.Research on image acquisition of self-tracing car based on CMOS camera sensor[J].Chinese Journal of Sensors and Actuators,2009(24):484-488.
[4]王偉.金屬探測器原理及其應(yīng)用[J].礦冶,1996,5(4):78-83.WANG Wei.The Principle and application of metal detectors[J].Mining&Metallurgy,1996,5(4):78-83.
[5]陳永甫.多功能集成電路555經(jīng)典應(yīng)用實(shí)例[M].北京:電子工業(yè)出版社,2009.
[6]邵貝貝.單片機(jī)嵌入式應(yīng)用的在線開發(fā)方法[M].北京:清華大學(xué)出版社,2009.