《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于AT89C52的機器人在復(fù)雜路線下的自主尋跡系統(tǒng)
基于AT89C52的機器人在復(fù)雜路線下的自主尋跡系統(tǒng)
EEworld
摘要: 考慮到實用性和性價比,采用AT89C52單片機作為機器人的控制芯片,。AT89C52是美國Atmel公司生產(chǎn)的低電壓,、高性能CMOS 8位單片機,片內(nèi)含8 KB的可反復(fù)擦寫的只讀存儲器(PEROM)和256B的隨機存取數(shù)據(jù)存儲器(RAM),,32個I/O口線,3個16位定時/計數(shù)器,,1個全雙工串行通行口,。器件采用Atmel公司的高密度、非易失性存儲技術(shù)生產(chǎn),,與標(biāo)準(zhǔn)MCS51指令系統(tǒng)及8052產(chǎn)品引腳兼容,。
Abstract:
Key words :

  引言

  智能尋跡機器人是一種被廣泛研究的機器人,,而且國內(nèi)外都有許多重要的比賽都以尋跡機器人為核心展開。

  所謂的復(fù)雜路線,,即由小半徑彎道,、各種角度折道、直道等組成的不規(guī)則導(dǎo)引線,,它是相對由大半徑彎道組成,、過渡平滑的簡單路線而言的。筆者所設(shè)計的尋跡機器人小車,,以AT89C52單片機為控制芯片,,采用自制的3個紅外光電傳感器,以簡單的設(shè)計,、較低的成本實現(xiàn)了復(fù)雜路線下機器人的自主尋跡,。

  1 硬件及電路

  1.1 控制芯片

  考慮到實用性和性價比,采用AT89C52單片機作為機器人的控制芯片,。AT89C52是美國Atmel公司生產(chǎn)的低電壓,、高性能CMOS 8位單片機,片內(nèi)含8 KB的可反復(fù)擦寫的只讀存儲器(PEROM)和256B的隨機存取數(shù)據(jù)存儲器(RAM),,32個I/O口線,,3個16位定時/計數(shù)器,1個全雙工串行通行口,。器件采用Atmel公司的高密度,、非易失性存儲技術(shù)生產(chǎn),與標(biāo)準(zhǔn)MCS51指令系統(tǒng)及8052產(chǎn)品引腳兼容,。

  1.2 傳感器模塊

  作為尋跡機器人的“眼睛”,,選擇合適的傳感器是關(guān)鍵。目前市面上可選用的傳感器主要有CCD傳感器和紅外光電傳感器兩種,。近年來CCD傳感器技術(shù)已趨成熟,,在近幾屆“飛思卡爾”杯智能車大賽上,采用CCD傳感器的智能車越來越多,,并取得了不錯的成績,。不過,CCD傳感器價格較高,體積較大,數(shù)據(jù)處理相當(dāng)復(fù)雜,因此在按既定路線行走的尋跡機器人設(shè)計中,紅外光電傳感器以其體積小,、價格低,、數(shù)據(jù)處理簡單而顯得更有優(yōu)勢。

  紅外光電傳感器由1個紅外發(fā)射管和1個光敏二極管組成,。工作時,,紅外發(fā)射管發(fā)射的紅外光被被測表面反射回來,光敏二極管接收被反射光,。由于被測表面的材質(zhì)不同,,反射率也不一樣,。當(dāng)被測表面為白色時,反射光較強,,光敏二極管將導(dǎo)通;反之,,被測表面為黑色時,光敏二極管將截止,??紤]到外界環(huán)境光照等干擾因素,輸出的電壓值有一定的波動范圍,,若直接輸給單片機,,可能導(dǎo)致檢測判斷錯誤。因此,,需要將輸出電壓通過比較器(LM324)與預(yù)置的閾值電壓比較,,然后得出一個高低電平輸給單片機。閾值電壓通過試驗測量得出,,其電路如圖1所示,。其中LED為傳感器工作指示燈,R1為閾值電壓調(diào)節(jié)電阻,。

  

傳感器電路圖

  圖1 傳感器電路圖

  根據(jù)上述電路,,自制了3個簡易的紅外光電傳感器。經(jīng)測試表明,,性能良好,,有效檢測距離為1~4 cm,滿足機器人尋跡的要求,。

  1.3 驅(qū)動模塊

  驅(qū)動機器人行走的2個電機需要不同的轉(zhuǎn)速來實現(xiàn)轉(zhuǎn)彎,。選用的驅(qū)動芯片為L293D,它包含4個輸出通道,,最大輸出峰值電流為1.2 A,,能同時驅(qū)動2個直流電機工作;其信號輸入端和使能端接收到來自單片機的信號,控制電機的通斷以及正,、反轉(zhuǎn),,還可以通過向使能端輸入不同占空比的方波信號來調(diào)整電機轉(zhuǎn)速 (PWM方式)。

  如圖2所示,,IN端口接控制信號,,OUT端口接電機的兩端,EN端口接使能信號,。一組IN端口輸入為高/低或低/高電平時,,能實現(xiàn)電機的正/反轉(zhuǎn)。一組IN端口輸入均為高或低電平時,,電機將停轉(zhuǎn),。EN使能端為高電平時,相應(yīng)端口輸入信號有效;反之,則輸入信號無效,。在EN端輸入PWM波,,通過調(diào)整 PWM波的占空比,即可實現(xiàn)電機的無級調(diào)速,。

  

 電機驅(qū)動電路

 

  圖2 電機驅(qū)動電路

  2 尋跡控制

  機器人尋跡控制示意圖如圖3所示,,機器人采用前輪驅(qū)動后輪輔助的三輪差動式行走方式。車體前部兩輪均為主動輪,,由兩個電機分別驅(qū)動,,利用它們的轉(zhuǎn)速差來控制機器人運動方向;后輪為從動萬向輪,僅起著支撐車體的作用,。車底板前部以車體中心線為軸線對稱放置著3個自制的紅外光電傳感器,,作為機器人的尋跡傳感器。

  

 

  圖3 尋跡控制示意圖

  機器人尋跡場地中除了黑線,,其他區(qū)域均為白色,。當(dāng)傳感器正下方為黑線時,輸出“0”狀態(tài),,當(dāng)其為白色區(qū)域時,,輸出“1”狀態(tài)。因此,,理論上3個傳感器輸出的組合狀態(tài)會有8種,,如表1所列。每一種組合狀態(tài)都對應(yīng)著一種機器人下一步的行走動作,,共有前進(jìn),、左轉(zhuǎn)、快速左轉(zhuǎn),、右轉(zhuǎn),、快速右轉(zhuǎn)、原地旋轉(zhuǎn),、停止 7種動作,。

  表1

  

 

  本機器人有著雙級轉(zhuǎn)彎的設(shè)計,即普通轉(zhuǎn)彎和快速轉(zhuǎn)彎,。當(dāng)機器人對黑線的偏離量比較小時,,使用普通轉(zhuǎn)彎,即兩個驅(qū)動輪都向前運動,,速度一大一小,,依靠兩輪的速度差來實現(xiàn)轉(zhuǎn)彎;而當(dāng)機器人偏離黑線較遠(yuǎn)時,使用快速轉(zhuǎn)彎,,即兩個驅(qū)動輪一個向前運動,,一個向后運動,,這樣能迅速實現(xiàn)轉(zhuǎn)彎。普通轉(zhuǎn)彎用于大半徑彎道,、大角度折道,,而快速轉(zhuǎn)彎則用于小半徑彎道和直角銳角折道等非平滑過渡路線。對于非封閉路線,,還設(shè)計了原地旋轉(zhuǎn)的動作,,來實現(xiàn)原路返回:一旦機器人小車走完全程,3個傳感器將均檢測到白色區(qū)域,,輸出組合狀態(tài)“111”,,此時一輪全速前進(jìn),一輪全速后退,,小車原地旋轉(zhuǎn),,直到掉過頭來傳感器檢測到黑線為止。

  3 程序設(shè)計

  程序設(shè)計時,,采用匯編語言編程,。其思路為:第1步,系統(tǒng)初始化后,,讀取單片機P2口的值,,然后對其P2.0、P2.1,、P2.2按位取與,,得到傳感器模塊的組合值。第2步,,將得到的組合值與預(yù)定的值比較,,若相等則執(zhí)行相應(yīng)的動作,否則繼續(xù)比較,,直到獲得正確的動作,。比較完全部動作后,轉(zhuǎn)到第1步重新掃描傳感器的狀態(tài)值,。

  為了進(jìn)一步提高系統(tǒng)的安全性和可靠性,還需增加異常處理算法,。可能出現(xiàn)的異常情況有:過小彎道或小角度折道時,,機器人還來不及轉(zhuǎn)過彎來,,就已經(jīng)完全偏離黑線。這種情況下,,3個傳感器都輸出“1”,,檢測不到黑線,若不及時處理,機器人將無法繼續(xù)尋跡,。針對該情況,,設(shè)計了原地旋轉(zhuǎn)動作來找回預(yù)定路線,不過原地旋轉(zhuǎn)有順,、逆時針之分,,因此還得區(qū)分開來。改進(jìn)后編程的思路為:每次讀取P2口值之前,,將其上一次的傳感器組合值存入某個寄存器,當(dāng)出現(xiàn)組合值為 “111”的情況時,,立即查詢上一次的值,,根據(jù)該值,可以判斷出機器人是從哪一側(cè)偏離黑線的,,從而進(jìn)行順或逆時針原地旋轉(zhuǎn),。其主要程序如下:

  ……;系統(tǒng)初始化

  SENSOR: MOVA,P2

  ANLA,#07H;讀P2口值,對P2.0,、P2.1,、P2.2按位取與

  CJNEA,#07H,NEXT;如組合值為111,直接轉(zhuǎn)到動作判斷程序,,否則轉(zhuǎn)到NEXT

  LJMPDATA_PROCESS

  NEXT:MOVR5,A;將本次傳感器組合值賦給R5

  LJMPDATA_PROCESS

  DATA_PROCESS: CJNE A,#07H,D1;對組合值判斷,,確認(rèn)為常規(guī)動作還是旋轉(zhuǎn)動作

  LJMP ROTATE

  D1:……;繼續(xù)常規(guī)動作判斷

  ……

  ROTATE: MOV A,R7 ;旋轉(zhuǎn)判斷,將上一次傳感器組合值賦給A

  CJNE A,#06H,R1;對上一次傳感器組合值判斷,,決定順逆旋轉(zhuǎn)

  LJMPCLOCKWISE

  R1:……;繼續(xù)順逆判斷

  ……

  CLOCKWISE:……;順時針旋轉(zhuǎn)動作

  LJMP DELAYS

  DELAYS:MOV A,R5

  MOV R7,A;將本次傳感器組合值賦給R7

  LCALL DELAY;調(diào)用DELAYS子程序進(jìn)行延時

  LJMP SENSOR ;重新掃描傳感器狀態(tài)

  END;程序結(jié)束

  結(jié)語

  根據(jù)上述設(shè)計思路,,我們制作出尋跡機器人并進(jìn)行了測試。測試場地如圖4所示,,黑色導(dǎo)引線寬度為3 cm,,黑線周圍區(qū)域均為白紙覆蓋。測試結(jié)果表明:該尋跡機器人能在此復(fù)雜路線下平穩(wěn),、順利地沿著黑線走完全程,,并在終點沿原路返回,達(dá)到了預(yù)期的目標(biāo)。這為進(jìn)一步研究復(fù)雜環(huán)境下的自動行走機器人提供了參考,。

  

機器人尋跡測試圖

 

  本文的創(chuàng)新點為:使用3個自制的紅外光電傳感器,,以簡單的設(shè)計和較少的硬件實現(xiàn)了復(fù)雜路線下機器人的尋跡。而基于該機器人雙級轉(zhuǎn)彎的設(shè)計思想,,可以增加傳感器數(shù)量,、組成傳感器陣列來實現(xiàn)多級轉(zhuǎn)彎,從而對機器人的自主尋跡有著更為精確的控制,。

  參考文獻(xiàn)

  [1] 韓毅,,張雪峰.一種低成本尋跡機器人的實現(xiàn)[J].微計算機信息,2008,52:233235.

  [2] 朱益斌,,胡學(xué)龍,,朱亞鋒,等.自主式尋跡機器人小車的設(shè)計[J].國外電子測量技術(shù),2006,,25(7):4042.

  [3] 何立民.MCS51系列單片機應(yīng)用系統(tǒng)設(shè)計[M].北京:北京航空航天大學(xué)出版社,,2003.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。