<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 醫(yī)療電子 > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)的自動巡線輪式機(jī)器人控制系統(tǒng)設(shè)計(jì)

          基于單片機(jī)的自動巡線輪式機(jī)器人控制系統(tǒng)設(shè)計(jì)

          ——
          作者:作者:關(guān)慧貞,邱鐵,葉希貴 時(shí)間:2007-01-26 來源:《電子查詢網(wǎng)》 收藏

          1 引言

          輪式移動機(jī)器人機(jī)器人研究領(lǐng)域的一項(xiàng)重要內(nèi)容.它集機(jī)械、電子、檢測技術(shù)與智能控制于一體。在各種移動機(jī)構(gòu)中,輪式移動機(jī)構(gòu)最為常見。輪式移動機(jī)構(gòu)之所以得到廣泛的應(yīng)用。主要是因?yàn)槿菀卓刂破湟苿铀俣群鸵苿臃较?。因此.有必要研制一套完整的輪式機(jī)器人系統(tǒng)。并進(jìn)行相應(yīng)的運(yùn)動規(guī)劃和控制算法研究。筆者設(shè)計(jì)和開發(fā)了基于5l型單片機(jī)的自動巡線輪式機(jī)器人控制系統(tǒng)。

          本文引用地址:http://www.ex-cimer.com/article/21508.htm

          2 控制系統(tǒng)總體設(shè)計(jì)

          機(jī)器人控制系統(tǒng)由主控制電路模塊、存儲器模塊、光電檢測模塊、電機(jī)及舵機(jī)驅(qū)動模塊等部分組成,控制系統(tǒng)的框圖如圖1所示。

          3 主控制模塊設(shè)計(jì)

          3.1 cpld設(shè)計(jì)

          在機(jī)器人控制系統(tǒng)中.需要控制多個(gè)電動機(jī)和行程開關(guān).還要進(jìn)行光電檢測.如果所有的任務(wù)都由at89s52型單片機(jī)來完成.cpu的負(fù)擔(dān)就會過重。影響系統(tǒng)的處理速度。因此擴(kuò)展1個(gè)cpld.型號為epm7128。它屬于.max7000系列器件。包括2個(gè)通用1/0口.2個(gè)專用i/o口,專用i/o口可作為每個(gè)宏單元和輸入輸出引腳的高速控制信號(時(shí)鐘、清除和輸出使能等),電動機(jī)的。pwm信號也由其產(chǎn)生。

          epm7128的引腳排列如圖2所示。mlp—m4p引腳的輸出為pwm脈寬調(diào)制信號,m1fb—m4fb引腳為電機(jī)的方向控制信號,p00一p07接單片機(jī)的po口,100一1015為擴(kuò)展的2個(gè)通用i/o口,sil—s17引腳為行程開關(guān)輸入信號,li11一li17引腳為光電探頭輸入信號。cpld的編程用vhdl語言,產(chǎn)生1路pwm信號的部分程序源代碼如下:

          單片機(jī)采用24mhz的晶體振蕩器,ale信號的頻率fale=f16=6mhz,最終輸出pwm信號的引腳mlp的頻率為:


          調(diào)節(jié)這個(gè)信號的占空比可以使直流電動機(jī)獲得o-255級的轉(zhuǎn)速。

          3.2 機(jī)器人運(yùn)行參數(shù)存儲器的擴(kuò)展

          機(jī)器人運(yùn)行路徑和動作可以根據(jù)比賽情況的不同而發(fā)生變化,這樣,每改變1次運(yùn)行參數(shù)就必須對單片機(jī)的flash進(jìn)行1次擦寫。為了解決這一問題.?dāng)U展了程序參數(shù)存儲器,用來存放機(jī)器人的運(yùn)行路徑和動作參數(shù).?dāng)U展電路如圖3所示。

          其中ic1為24lc08b,是i2e總線的串行e2prom存儲器,最多能夠存儲lk字節(jié)的數(shù)據(jù)。ic2為max3232型電平轉(zhuǎn)換器,其內(nèi)部有1個(gè)電源電壓變換器,可以將計(jì)算機(jī)的電平轉(zhuǎn)換為標(biāo)準(zhǔn)ttl電平,實(shí)現(xiàn)計(jì)算機(jī)與單片機(jī)之間通過串行口傳輸數(shù)據(jù),使單片機(jī)完成對24/lc08b的數(shù)據(jù)存儲操作。單片機(jī)運(yùn)行時(shí),直接從24lc08中讀取機(jī)器人的運(yùn)行參數(shù),控制機(jī)器人運(yùn)行。

          4 光電檢測模塊設(shè)計(jì)

          4.1 光電檢測過程

          設(shè)計(jì)光電檢測模塊是為了讓機(jī)器人能夠檢測地面上的白色引導(dǎo)線。光電檢測電路主要包括發(fā)射部分和接收部分,其原理如圖4所示。

          發(fā)射部分的波形調(diào)制采用了頻率調(diào)制方法。由于發(fā)光二極管的響應(yīng)速度快,其工作頻率可達(dá)幾mhz或十幾mhz,而檢測系統(tǒng)的調(diào)制頻率在幾十至幾百khz的范圍內(nèi),能夠滿足要求。光源驅(qū)動主要負(fù)責(zé)把調(diào)制波形放大到足夠的功率去驅(qū)動光源發(fā)光。光源采用紅外發(fā)光二極管,工作頻率較高,適合波形為方波的調(diào)制光的發(fā)射。

          接收部分采用光敏二極管接收調(diào)制光線,將光信號轉(zhuǎn)變?yōu)殡娦盘?。這種電信號通常較微弱,需進(jìn)行濾波和放大后才能進(jìn)行處理。調(diào)制信號的放大采用交流放大的形式,可使調(diào)制光信號與背景光信號分離,為信號處理提供方便。調(diào)制信號處理部分對放大后的信號進(jìn)行識別,判斷被檢測對象的特性。因此,此模塊的本質(zhì)是將“交流”的、有用的調(diào)制光信號從“直流”的、無用的背景光信號中分離出來,從而達(dá)到抗干擾的目的。

          4.2 光電探頭

          光電探頭安裝在機(jī)器人底盤前部,共設(shè)置了5個(gè)檢測點(diǎn)。從理論上講,檢測點(diǎn)越多、越密,識別的準(zhǔn)確性與可靠性就越高,但是硬件的開銷與軟件的復(fù)雜程度也相應(yīng)的增加。采用該巡線系統(tǒng)保證了檢測的精確度,節(jié)約了硬件的開銷。發(fā)光二極管發(fā)出的調(diào)制光經(jīng)地面反射到光敏二極管。光敏二極管產(chǎn)生的光電流隨反射光的強(qiáng)弱而線性變化。把這種變化檢測出來,就可以判斷某一個(gè)檢測點(diǎn)是否在白色引導(dǎo)線的上方,從而判斷機(jī)器人和白色引導(dǎo)線的相對位置。

          5 電機(jī)驅(qū)動模塊

          機(jī)器人的驅(qū)動件主要是電機(jī)和舵機(jī),都可以采用pwm進(jìn)行調(diào)速與控制。根據(jù)脈沖編碼器的反饋信號,對機(jī)器人的運(yùn)動狀態(tài)進(jìn)行實(shí)時(shí)控制。直流伺服電機(jī)的控制原理如圖5所示。調(diào)節(jié):pwm的信號就能夠快速調(diào)節(jié)舵機(jī)的轉(zhuǎn)角,從而實(shí)現(xiàn)機(jī)器人的方向控制。

          6 結(jié)束語

          基于5l型單片機(jī)的自動巡線輪式機(jī)器人控制系統(tǒng)運(yùn)行平穩(wěn)可靠,抗干擾能力強(qiáng),不僅滿足了機(jī)器人大賽的設(shè)計(jì)要求,同時(shí)也為智能機(jī)器人搭建了良好的控制平臺。



          關(guān)鍵詞:

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();