• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      應(yīng)用AVR 開(kāi)發(fā)智能移動(dòng)機(jī)器人的控制系統(tǒng)

      2010-07-25 07:16:24楊進(jìn)
      微型電腦應(yīng)用 2010年6期
      關(guān)鍵詞:子程序控制電路移動(dòng)機(jī)器人

      楊進(jìn)

      0 引言

      智能移動(dòng)機(jī)器人集成了機(jī)械、電子、計(jì)算機(jī)、自動(dòng)控制、人工智能等多學(xué)科的研究成果,在當(dāng)前機(jī)器人研究領(lǐng)域具有突出地位[1]。目前,基于集散控制理論的嵌入式分層控制方法,在機(jī)器人系統(tǒng)的開(kāi)發(fā)中廣泛應(yīng)用。其核心思想就是“集中管理、分散控制”,既要處理大量的信息,又要實(shí)時(shí)地控制系統(tǒng)的運(yùn)行。它可以滿(mǎn)足系統(tǒng)通用性強(qiáng)、系統(tǒng)組態(tài)靈活、控制功能完善、數(shù)據(jù)處理方便、安裝簡(jiǎn)單規(guī)范化、調(diào)試方便及運(yùn)行安全可靠的要求。

      ATmega8L微處理器是一款高性能、低功耗的8位AVR微處理器,采用先進(jìn)的RISC結(jié)構(gòu)[2]。ATmega8L具有:8K字節(jié)的系統(tǒng)內(nèi)可編程Flash,擦寫(xiě)壽命達(dá)10000次;512字節(jié)的EEPROM,擦寫(xiě)壽命達(dá)100000次;1K字節(jié)的片內(nèi)SRAM;兩個(gè)具有獨(dú)立預(yù)分頻器8位定時(shí)器/計(jì)數(shù)器,其中之一有比較功能;一個(gè)具有預(yù)分頻器、比較功能和捕捉功能的16位定時(shí)器/計(jì)數(shù)器;6路10位逐次比較式ADC(PDIP封裝);獨(dú)立振蕩器的實(shí)時(shí)計(jì)數(shù)器RTC;3通道PWM;兩個(gè)可編程的串行USART等[3]。

      本文中,采用ATmega8L微處理器,作為智能移動(dòng)機(jī)器人的控制核心,采用光電編碼器、光纖放大器、光電開(kāi)關(guān)等傳感器,作為信息反饋器件,基于嵌入式分層控制方法,設(shè)計(jì)出移動(dòng)機(jī)器人的控制系統(tǒng)。采用AVR-GCC編譯軟件[4]編程,實(shí)現(xiàn)該機(jī)器人在不為人干預(yù)的情況下,自動(dòng)找到運(yùn)行的路徑,并在行進(jìn)的過(guò)程中自動(dòng)避開(kāi)障礙物,體現(xiàn)出一定的智能性。同時(shí),通過(guò)遙控模塊,還可以實(shí)現(xiàn)人工遙控模式的運(yùn)行方式。下面將詳細(xì)介紹機(jī)器人控制系統(tǒng)的結(jié)構(gòu)重點(diǎn),并重點(diǎn)分析信息管理層的控制電路及機(jī)器人自動(dòng)尋跡功能的實(shí)現(xiàn)原理。

      1 智能移動(dòng)機(jī)器人控制系統(tǒng)的結(jié)構(gòu)

      移動(dòng)機(jī)器人的控制系統(tǒng),采用嵌入式分層控制[5]的系統(tǒng)結(jié)構(gòu):主、從控制器,都是采用ATmega8L微處理器;主控制器接收控制指令,并采集光纖放大器和光電開(kāi)關(guān)所反饋的環(huán)境信息,經(jīng)過(guò)一系列的邏輯處理,得到對(duì)應(yīng)的電機(jī)速度控制值;從機(jī)則接收主機(jī)所傳給的速度目標(biāo)值,并實(shí)時(shí)控制電機(jī)的轉(zhuǎn)動(dòng)速度;在兩級(jí)控制間,通過(guò)DMX512串行通信協(xié)議,實(shí)現(xiàn)數(shù)據(jù)準(zhǔn)確穩(wěn)定地傳輸。

      如圖1所示,左側(cè)結(jié)構(gòu)框圖為信息管理層的結(jié)構(gòu)。左側(cè)光纖放大器和右側(cè)光纖放大器分別反饋回一個(gè)模擬量信號(hào),該信號(hào)將隨所探測(cè)到的顏色變化而變化。ATmega8L微處理器,通過(guò)內(nèi)部10位模數(shù)轉(zhuǎn)換器采集這兩個(gè)信號(hào),并轉(zhuǎn)換成數(shù)字量。設(shè)定一個(gè)閥值,微處理器將對(duì)分別對(duì)高于和低于該閥值的信號(hào)賦予一個(gè)邏輯量,用于區(qū)別軌跡區(qū)域和背景區(qū)域,從而識(shí)別出運(yùn)行的軌跡。而光電開(kāi)關(guān)將發(fā)射紅外線,經(jīng)障礙物反射,被傳感器檢測(cè)到,從而發(fā)生開(kāi)關(guān)信號(hào)的變化,微處理器將根據(jù)邏輯陣列,確定障礙物相對(duì)機(jī)器人的方向,并調(diào)用避障子程序躲避該障礙物。另外遙控模塊將向主控制器傳遞遙控指令,主要包括速度的設(shè)置和運(yùn)行模式的切換等。

      圖1 機(jī)器人控制系統(tǒng)的結(jié)構(gòu)圖

      右側(cè)結(jié)構(gòu)圖為伺服控制層,存在一個(gè)速度控制環(huán)。伺服控制系統(tǒng)的執(zhí)行元件為直流旋轉(zhuǎn)電機(jī),系統(tǒng)的控制量是電機(jī)的轉(zhuǎn)速。反饋元件采用旋轉(zhuǎn)式光電編碼器,反饋信號(hào)為光電編碼器的脈沖信號(hào)(A、B兩相)。以ATmega8L微處理器作為計(jì)算控制單元,并在程序中設(shè)定速度采樣頻率為2K赫茲左右。在每個(gè)采樣周期內(nèi),微處理器計(jì)數(shù)編碼器反饋的脈沖數(shù)。通過(guò)比較A、B兩相脈沖狀態(tài)的變化并計(jì)數(shù)脈沖數(shù),得到實(shí)時(shí)的速度值,再與目標(biāo)速度數(shù)據(jù)比較,經(jīng)過(guò)離散PID調(diào)解器計(jì)算,求得對(duì)電機(jī)的控制字。該控制字將修改單片機(jī)輸出的PWM信號(hào)的占空比值,并通過(guò)OC1A和OC1B輸出兩路PWM信號(hào)。經(jīng)過(guò)對(duì)應(yīng)的兩路H橋驅(qū)動(dòng)電路放大后,改變了兩路電機(jī)的電樞電壓有效值,從而實(shí)現(xiàn)速度的閉環(huán)控制。

      2 控制電路

      圖2為信息管理層的控制電路。其中,系統(tǒng)供電為12伏直流電源,12伏電壓是作為電機(jī)的驅(qū)動(dòng)電壓,也是光電開(kāi)關(guān)的額定工作電壓。通過(guò)3端穩(wěn)壓塊LM7805獲得穩(wěn)定的5伏電壓,為ATmega8L微處理器提供額定的工作電壓。ATmega8L微處理器使用8M赫茲晶振作為時(shí)鐘源,采用上電復(fù)位方式。為作為控制核心的ATmega8L微處理器,通過(guò)PC0~PC3口接收光電開(kāi)關(guān)的開(kāi)關(guān)信號(hào)[6],獲得障礙物的信息;通過(guò)ADC4、ADC5引腳接收光纖放大器反饋的模擬量信號(hào),并轉(zhuǎn)換成數(shù)字量,從而獲得軌跡的信息;通過(guò)PB0、PB1和PC2~PC7八個(gè)I/O口接收遙控模塊傳遞下來(lái)的控制指令。并且,主微處理器通過(guò)RXD、TXD引腳和伺服控制層的從機(jī)實(shí)現(xiàn)串行通信,向伺服控制層發(fā)送電機(jī)速度目標(biāo)值,接收伺服控制層返回的電機(jī)運(yùn)行實(shí)時(shí)情況。另外,電路中設(shè)計(jì)有ISP接口,可以使用通用的AVR ISP編程器很方便地下載程序。

      3 智能尋跡控制

      本文所開(kāi)發(fā)的機(jī)器人,可以自動(dòng)尋找由特定顏色所描繪的軌跡。在控制電路中,兩個(gè)光纖放大器分別反饋一個(gè)模擬量信號(hào),并轉(zhuǎn)換成數(shù)字量。單次轉(zhuǎn)換的結(jié)果如下:

      式中,VIN為被選中引腳的輸入電壓,VREF為參考電壓。0x000代表模擬地電平,0x3FF代表所選參考電壓的數(shù)值減去1LSB[7]。

      電路中設(shè)計(jì)為ADC6和ADC7單端輸入,通過(guò)微處理器內(nèi)部定時(shí)/計(jì)數(shù)器0設(shè)定1毫秒的采樣時(shí)間,每隔一個(gè)采樣周期采集一路的信息。程序中首先需要T0和ADC做相應(yīng)的初始化。具體程序及注釋如下。

      1. T/C0 初始化:

      2. ADC初始化程序:

      圖3 定時(shí)器0比較中斷子程序流程圖

      定時(shí)/計(jì)數(shù)器0采用CTC工作模式,通過(guò)比較中斷準(zhǔn)確定時(shí)1ms。其比較中斷子程序完成光纖放大器信號(hào)的讀取和最初的數(shù)據(jù)處理任務(wù)。在CTC工作模式下,當(dāng)計(jì)數(shù)器0的數(shù)值TCNT0等于OCR0(值為0x7C)時(shí)計(jì)數(shù)器自動(dòng)清零。這個(gè)模式使得用戶(hù)很容易地控制比較匹配輸出的頻率,也簡(jiǎn)化了外部事件計(jì)數(shù)的操作。

      在定時(shí)器0比較中斷子程序中,軌跡的信息已被整理為T(mén)RACK變量的數(shù)值,其有效數(shù)據(jù)為T(mén)RACK的最低兩位。當(dāng)主程序初始化TRACK為0x00后,軌跡的信息只有四個(gè)數(shù)據(jù),分別是:0x00、0x01、0x02、0x03。其中0x01和0x02為剛剛偏離軌跡,0x01為左側(cè)偏離,0x02為右側(cè)偏離。數(shù)值0x03則表示機(jī)器人運(yùn)行在軌跡上。而數(shù)值0x00所代表的運(yùn)行狀態(tài)就不是那么直接能判斷的,需要和上一個(gè)采樣周期的狀態(tài)進(jìn)行比較,才能得出結(jié)論。在自動(dòng)尋跡子程序中還定義了一個(gè)靜態(tài)變量OLD_TRACK,用于保存上一個(gè)采樣周期的狀態(tài)。當(dāng)OLD_TRACK為0x01時(shí),則當(dāng)前的TRACK(0x00)表示嚴(yán)重偏離軌跡的左側(cè);當(dāng)OLD_TRACK為0x02時(shí),則當(dāng)前的TRACK(0x00)表示嚴(yán)重偏離軌跡的右側(cè)。

      在自動(dòng)尋跡子程序中,通過(guò)對(duì)TRACK變量的數(shù)值進(jìn)行邏輯判斷,從而確定機(jī)器人相對(duì)軌跡的方向,并輸出響應(yīng)的速度控制量給伺服控制層。如上面程序流程圖所示,當(dāng)TRACK發(fā)生變化時(shí),輸出也將改變。如果偏出軌跡左側(cè),則控制電機(jī)使機(jī)器人右轉(zhuǎn);如果偏出軌跡右側(cè),則控制電機(jī)使機(jī)器人左轉(zhuǎn);沒(méi)有偏出,則以設(shè)定好的速度前進(jìn)。

      圖4 自動(dòng)尋跡子程序流程圖

      4 實(shí)驗(yàn)

      按電路圖完成系統(tǒng)控制電路的制作。如圖5所示,機(jī)器人通過(guò)車(chē)載蓄電池供電,由兩塊控制電路板控制,一塊為按圖2所設(shè)計(jì)的信息控制電路,另一塊為伺服控制電路。使用WinAVR軟件按流程圖編寫(xiě)好程序后,通過(guò)ISP下載線將機(jī)器碼,分別下載到兩個(gè)ATmega8L微處理器中。在圖5中,a圖為機(jī)器人自動(dòng)沿黃色描繪的跡線運(yùn)動(dòng),b圖為機(jī)器人自動(dòng)沿著墻體運(yùn)行。

      圖5 機(jī)器人自動(dòng)運(yùn)行

      5 結(jié)論

      本文基于AVR微控制器開(kāi)發(fā)出一臺(tái)智能移動(dòng)機(jī)器人,實(shí)驗(yàn)結(jié)果顯示,機(jī)器人能夠可靠地自動(dòng)避開(kāi)障礙物并找到自己運(yùn)行的目標(biāo)。通過(guò)伺服驅(qū)動(dòng),機(jī)器人能平穩(wěn)較快速地前行。本文中的機(jī)器人,具有清晰的控制系統(tǒng)結(jié)構(gòu),而且開(kāi)發(fā)的成本低廉,所以該機(jī)器人的技術(shù),尤其適用開(kāi)發(fā)自動(dòng)化教學(xué)設(shè)備。同時(shí),該機(jī)器人技術(shù),還可以廣泛應(yīng)用于自動(dòng)設(shè)備的開(kāi)發(fā)。

      [1]徐國(guó)華,譚民.移動(dòng)機(jī)器人的發(fā)展現(xiàn)狀及其趨勢(shì)[J].機(jī)器人技術(shù)與應(yīng)用, 2001(3): 7-14.

      [2]徐玉,韓波,李平.基于 AVR 的舵機(jī)控制器設(shè)計(jì)[J].工業(yè)控制計(jì)算機(jī), 2004(11):38-40. Xu Yu,Han Bo,Li Ping,The Design of AVR Based Servo Controller[J], Industrial Control Computer, 2004(11):38-40.

      [3]http://www.atmel.com/, ATmega8芯片數(shù)據(jù)官方手冊(cè)[M].http://www.atmel.com/, ATmega8 Datasheet

      [4]馬潮,詹衛(wèi)前,耿德根. ATmega8原理及應(yīng)用手冊(cè)[M].第5版,北京:清華大學(xué)出版社, 2003:7-8

      [5]韓大鵬,韋慶.機(jī)器人控制器的一種模塊化設(shè)計(jì)方法[J].微計(jì)算機(jī)信息,2005(5):3-4.Han Da Peng,Wei Qing,A Design Method Via Modularization for Controllers of Mobile Robots[J], Microcomputer Information, 2005(5):3-4.

      [6]閻石.數(shù)字電子技術(shù)基礎(chǔ)(第四版),高等教育出版社,1998.11

      [7]沈文,Eagla lee,詹衛(wèi)前. AVR單片機(jī)C語(yǔ)言開(kāi)發(fā)入門(mén)指導(dǎo)[M].北京:清華出版社,2003.

      猜你喜歡
      子程序控制電路移動(dòng)機(jī)器人
      移動(dòng)機(jī)器人自主動(dòng)態(tài)避障方法
      2017款本田雅閣車(chē)控制電路(二)
      2014款雷克薩斯CT200h車(chē)控制電路(一)
      2018款別克GL8車(chē)控制電路(二)
      2016款邁騰B8L車(chē)控制電路(一)
      基于Twincat的移動(dòng)機(jī)器人制孔系統(tǒng)
      淺談子程序在數(shù)控車(chē)編程中的應(yīng)用
      子程序在數(shù)控車(chē)加工槽中的應(yīng)用探索
      西門(mén)子840D系統(tǒng)JOG模式下PLC調(diào)用并執(zhí)行NC程序
      極坐標(biāo)系下移動(dòng)機(jī)器人的點(diǎn)鎮(zhèn)定
      定西市| 台安县| 阳西县| 洞头县| 英吉沙县| 肥西县| 林甸县| 金溪县| 德阳市| 通州市| 姜堰市| 滁州市| 宣城市| 永嘉县| 建湖县| 胶南市| 东阳市| 芜湖县| 通州市| 正安县| 北碚区| 大冶市| 新巴尔虎左旗| 高碑店市| 山丹县| 清镇市| 隆回县| 双鸭山市| 星座| 城口县| 潼关县| 绩溪县| 兴安县| 襄汾县| 扎囊县| 通河县| 弥勒县| 吕梁市| 铜鼓县| 什邡市| 汕尾市|