色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于LPC2104的爬壁機(jī)器人控制系統(tǒng)設(shè)計(jì)

          基于LPC2104的爬壁機(jī)器人控制系統(tǒng)設(shè)計(jì)

          作者: 時(shí)間:2005-04-11 來源:網(wǎng)絡(luò) 收藏

          摘要:首先,簡要介紹四足微型爬壁的機(jī)構(gòu)部分,然后詳細(xì)介紹四足微型爬壁的硬件,以及實(shí)時(shí)多任務(wù)操作系統(tǒng)μC/OS-II在Philips公司32位ARM處理器上的移植和控制軟件的。

          關(guān)鍵詞:微型爬壁 μC/OS-II ARM

          引言

          近年來,隨著微機(jī)電系統(tǒng)(MEMS)技術(shù)的發(fā)展和微小型移動機(jī)器人應(yīng)用領(lǐng)域的不斷拓展,出現(xiàn)了這樣一種需求,即用微型爬壁機(jī)器人代替人工進(jìn)行各種極限作業(yè),如公安消防中使用微型爬壁機(jī)器人進(jìn)行縱橫交織;上下連通的大樓通風(fēng)管道進(jìn)行災(zāi)情現(xiàn)場考察;敵情偵察;或進(jìn)入空間狹窄的核工業(yè)管道群之間進(jìn)行外管壁的檢測和維修等。微型摒棄壁機(jī)器人具有廣泛的應(yīng)用前景,在國家自動科學(xué)基金和上海市啟明星的聯(lián)合資助下,筆者開發(fā)了并聯(lián)腿機(jī)構(gòu)的四足微型爬壁機(jī)器人。

          1 機(jī)構(gòu)簡介

          本文所的微型爬壁機(jī)器人(長10cm,寬4cm,高4cm)采用四足對稱結(jié)構(gòu),隨機(jī)構(gòu)采用并聯(lián)機(jī)構(gòu)(也稱并行三連桿機(jī)構(gòu)),吸附裝置采用仿生高分子粘性材料經(jīng)切削加工制成的貼性吸盤。每一條腿有三個自由度,分別通過三個微型直流電機(jī)配合微型線杠螺母機(jī)構(gòu)直接驅(qū)動。圖1中,電機(jī)1驅(qū)動腿機(jī)構(gòu),使其實(shí)現(xiàn)左、右轉(zhuǎn)動;電機(jī)2驅(qū)動機(jī)器人小腿,實(shí)現(xiàn)向前、向后邁步;電機(jī)3驅(qū)動機(jī)器人大腿,實(shí)現(xiàn)大腿的抬起、放下運(yùn)動。協(xié)調(diào)控制四條腿上的12個直流電機(jī),就可以使微型爬壁機(jī)器人實(shí)現(xiàn)前進(jìn)、倒退和轉(zhuǎn)彎等各種運(yùn)動。

          2 硬件設(shè)計(jì)

          該微型爬壁機(jī)器人采用12個微型電機(jī)驅(qū)動,4個接觸傳感器,4個壓力傳感器,以后還要增加用于壁障的紅外傳感器和用于采集現(xiàn)場信號的微型攝像頭,所以對主控制器的要求較高。設(shè)計(jì)中,最終選定Philips公司最新開發(fā)的32位ARM7TDMI-S內(nèi)核的低軾耗ARM處理器作為主控制器。LPC2104具有以下特性:

          *128KB片內(nèi)Flash程序存儲器,帶ISP和IAP功能;

          *16KB靜態(tài)RAM;

          *向量中斷控制器;

          *仿真跟蹤模塊支持實(shí)時(shí)跟蹤;

          *標(biāo)準(zhǔn)ARM測試/調(diào)試接口,兼容現(xiàn)有工具;

          *雙UART,其中一帶有調(diào)制解調(diào)器接口;

          *高速I2C串行接口,400kb/s;

          *SPI串行接口;

          *2個定時(shí)器分別具有4路捕獲/比較通道;

          *多達(dá)6路輸出的PWM單元;

          *實(shí)時(shí)時(shí)鐘;

          *看門狗定時(shí)器;

          *通用I/O口;

          *CPU操作頻率可達(dá)60MHz;

          *兩個低功耗模式,空閑和掉電;

          *通過外部中斷,將處理器從掉電模式中喚醒;

          *外設(shè)功能可單獨(dú)使能/禁止實(shí)現(xiàn)功耗最優(yōu)化;

          *片內(nèi)晶振的操作頻率范圍10~25MHz;

          *處內(nèi)PLL允許CPU可以在超過整個晶振操作頻率范圍的情況下使用。

          微型爬壁機(jī)器人控制系統(tǒng)的原理框圖如圖2所示,選用LPC2104作為嵌入式控制器。為提高系統(tǒng)效率和降低功耗,功放驅(qū)動電路采用雙極性H-橋型脈寬調(diào)整方式PWM的集成電路L293D。L293D采用16引腳DIP封裝,其內(nèi)部集成了雙極型H-橋電路,所有的開量都做成n型。這種雙極型脈沖調(diào)寬方式具有很多優(yōu)點(diǎn),如電流連續(xù);電機(jī)可四角限運(yùn)行;電機(jī)停止時(shí)有微振電流,起到“動力潤滑”作用,消除正反向時(shí)的靜摩擦死區(qū):低速平穩(wěn)性好等。L293D通過內(nèi)部邏輯生成使能信號。H-橋電路的輸入量可以用來設(shè)置馬達(dá)轉(zhuǎn)動方向,使能信號可以用于脈寬調(diào)整(PWM)。另外,L293D將2個H-橋電路集成到1片芯片上,這就意味著用1片芯片可以同時(shí)控制2個電機(jī)。每1個電機(jī)需要3個控制信號EN12、IN1、IN2,其中EN12是使能信號,IN1、IN2為電機(jī)轉(zhuǎn)動方向控制信號,IN1、IN2分別為1,0時(shí),電機(jī)正轉(zhuǎn),反之,電機(jī)反轉(zhuǎn)。選用一路PWM連接EN12引腳,通過調(diào)整PWM的占空比可以調(diào)整電機(jī)的轉(zhuǎn)速。選擇一路I/O口,經(jīng)反向器74HC14分別接IN1和IN2引腳,控制電機(jī)的正反轉(zhuǎn)。為了節(jié)省LPC2104的I/O口資源,選用2片74LS138和IN2引腳,控制電機(jī)的正反轉(zhuǎn)。為了節(jié)省LPC2104的I/O資源,選用2片74LS138譯碼器對I/O口進(jìn)行擴(kuò)展,每片分別選用3路I/O作為輸入信號和1路I/O作為片選信號,這樣就可以將8路I/O口擴(kuò)展或16路I/O口。如前所述,因?yàn)橹弊㈦姍C(jī)采用PWM調(diào)速,這樣每1個電機(jī)至少需要1路PWM,12個電機(jī)需要12路PWM,而LPC2104只有6路PWM輸出,所以選用2片電平鎖存器74LS373使12個電機(jī)分成2組共用6路PWM信號。

          接觸傳感器由外層管和內(nèi)部超彈性線構(gòu)成,內(nèi)外兩層通過硅管隔開。當(dāng)內(nèi)線和外層接觸時(shí),開關(guān)關(guān)閉。通過這種方法,接觸傳感器向LPC2104發(fā)送信號,借此來控制吸盤的方向。

          從壓力傳感器來模擬信號經(jīng)A/D轉(zhuǎn)換器轉(zhuǎn)換成數(shù)字信號,LPC2104通過壓力傳感器來的信號來判斷吸盤是否安全的吸附在墻壁上。

          LPC2104還可以通過串口RS232和上位機(jī)進(jìn)行通信。

          3 控制系統(tǒng)軟件設(shè)計(jì)

          微型爬壁機(jī)器人控制系統(tǒng)軟件選用嵌入式實(shí)時(shí)多任務(wù)操作系統(tǒng)μC/OS-II。它是一個源代碼公開、可移植、可固化、可裁剪、占先式的實(shí)時(shí)多任務(wù)操作系統(tǒng)。其絕大部分源碼是用ANSI C寫的,移植方便,且運(yùn)行穩(wěn)定可靠。目前,它已經(jīng)在幾十種從8位到64位的微處理器、微控制器上實(shí)現(xiàn)了成功的移植。下面首先介紹μC/OS-II在LPC2104上的移植過程,然后介紹微型爬壁機(jī)器人控制軟件的設(shè)計(jì)。

          3.1 μC/OS-II在LPC2104上的移植

          移植μC/OS-II,主要包括:設(shè)置堆棧的增長方面,聲明3個宏(開中斷、關(guān)中斷和任務(wù)切換),聲明10個與編譯器相關(guān)的數(shù)據(jù)類型;用C語言編寫6個與操作系統(tǒng)相關(guān)的函數(shù)(任務(wù)堆棧初始化函數(shù)和5個鉤子函數(shù));用匯編語言編寫4個與處理器相關(guān)的函數(shù)。

          用匯編語言編寫的4個與處理器相關(guān)的函數(shù)如下:

          ①OSStartHighRdy()用于在調(diào)度中使最高優(yōu)先級的任務(wù)處于就緒態(tài)并開始執(zhí)行;

          ②OSCtxSw()完成任務(wù)級的上下文切換;

          ③OSIntCtxSw()完成中斷級任務(wù)切換,其過程與OSCtxSw()類似,只是在執(zhí)行中斷服務(wù)子程序后可能使更高優(yōu)先級的任務(wù)處于就緒態(tài);

          ④OSTickISR()是系統(tǒng)節(jié)拍中斷服務(wù)子程序。

          3.1.1 OS_CUP.H的移植

          μC/OS-II不使用C語言中的short、int、long等數(shù)據(jù)類型的定義,因?yàn)樗鼈兣c處理器類型有關(guān),隱含著不可移值性,所以代之以移值性強(qiáng)的整數(shù)數(shù)據(jù)類型,這樣,既直觀又可移值。

          圖2

          在μC/OS-II中,使用OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()開中斷和關(guān)中斷來保護(hù)臨界段代碼。ARM處理器核的用戶模式和執(zhí)行Thumb代碼時(shí),不能改變處理器的開中斷位I。為了兼容各種模式,使用軟中斷指令SWI使處理器進(jìn)入管理模式和ARM指令狀態(tài),即使用SWI 0x02關(guān)中斷,使用SWI 0x03開中斷。

          ΜC/OS-II使用結(jié)構(gòu)常量OS_STK_GROWTH指定堆棧的增長方式,0表示堆棧從低地址往高地址增長,1表示堆棧從高地址往低地址增長。雖然ARM處理器核對于兩種方式支持,但ADS的C語言編譯器僅支持一種方式,即從高地址往低地址增長,并且必須是滿遞減堆棧,所以O(shè)S_STK_GROWTH的值為1。以上內(nèi)容在文件OS_CPU.h中做如下定義。

          Typedef unsigned char BOOLEAN;/*布爾變量*/

          Typedef unsigned char INT8U; /*無符號8位整型變量*/

          Typedef signed char INT8S;/*有符號8位整型變量*/

          Typedef unsigned short INT16U;/*無符號16位整型變量*/

          Typedef signed short INT16S;/*有符號16位整型變量*/

          Typedef unsigned int INT32U;/*無符號32位整型變量*/

          Typedef signed int INT32S;/*有符號32位整型變量*/

          Typedef float FP32;/*單精度浮點(diǎn)數(shù)(32位長度)*/

          Typedef double FP64;/*雙精度浮點(diǎn)數(shù)(64位長度)*/

          Typedef INT32U OS_STK;/*堆棧是32位寬度*/

          _swi(0x02) void OS_ENTER_CRITICAL(void);/*關(guān)中斷*/

          _swi(0x03) void OS_EXIT_CRITICAL(void); /*開中斷*/

          #define OS_STK_GROWTH 1/*堆棧由高地址向低地址增長*/

          3.1.2 OS_CPU_A.ASM文件的移值

          OS_CPU_A.ASM文件要實(shí)現(xiàn)在多任務(wù)啟動函數(shù)中調(diào)用OSSTartHightRdy(),任務(wù)切換函數(shù)OSCtxSw(),中斷任務(wù)切換函數(shù)OSIntCtxSw()和時(shí)鐘節(jié)拍服務(wù)函數(shù)OSTickISR()這4個匯編函數(shù)的改寫。上層任務(wù)調(diào)度部分不需要任何改動。具體移值見網(wǎng)站www.dpj.com.cn。

          3.2 系統(tǒng)任務(wù)劃分及調(diào)度

          3.2.1 系統(tǒng)任務(wù)劃分

          嵌入式實(shí)時(shí)系統(tǒng)中的任務(wù)不同于前后臺系統(tǒng)中的子程序模塊,任務(wù)是處理機(jī)按程序處理數(shù)據(jù)的過程,是個動態(tài)的概念。一般,一個任務(wù)對應(yīng)于一段獨(dú)立的主程序。它可以調(diào)用各種子程序,并使用各種系統(tǒng)資源如中斷、外設(shè)等,以完成某種預(yù)定的功能,且允許多個任務(wù)并行運(yùn)行。嵌入式系統(tǒng)任務(wù)劃分,是將系統(tǒng)中所有要處理的事情劃分為一個個相對獨(dú)立的任務(wù)模塊,所有待處理的任務(wù)模塊按順序建立一個個的任務(wù),并分配任務(wù)的優(yōu)先級。在主程序中,所需要做的工作只是建立這些模塊的任務(wù),然后每次執(zhí)行就緒任務(wù)隊(duì)列中優(yōu)先級最高的任務(wù)。根據(jù)微型爬壁機(jī)器人控制系統(tǒng)的性能指標(biāo)和技術(shù)要求,對可系統(tǒng)進(jìn)行如下的任務(wù)劃分:前進(jìn)、后退、左轉(zhuǎn)彎、右轉(zhuǎn)彎、串行通信、數(shù)據(jù)采樣與數(shù)據(jù)處理等任務(wù)。

          3.2.2 任務(wù)調(diào)整

          μC/OS-II的任務(wù)調(diào)度是按優(yōu)先級進(jìn)行的,根據(jù)各任務(wù)的實(shí)時(shí)性要求及重要程度,分別置它們的優(yōu)先級為10、9、5、6、12、11,其中0、1、2、3、OS_LOWEST_PRIO3、OS_LOWEST_PRIO3、OS_LOWEST_PRIO2、OS_LOWEST_PRIO1、OS_LOWEST_PRIO0這幾個優(yōu)先級保留以被系統(tǒng)使用。優(yōu)先級號越低,任務(wù)的優(yōu)先級越高。

          為了在后臺實(shí)時(shí)檢測同步信號的變化,及時(shí)產(chǎn)生相應(yīng)的事件,可直接利用嵌入式微控制器所提供的各種中斷,通過對中斷服務(wù)處理程序傳遞信號量,來喚醒等待同步信號的任務(wù),使這個任務(wù)從掛起狀態(tài)到就緒狀態(tài),送到CPU執(zhí)行,從而達(dá)到實(shí)時(shí)處理的目的。

          在多任務(wù)系統(tǒng)中,消息、信號是系統(tǒng)能夠在各個任務(wù)之間通信最常用的手段,其中,使用信號量是協(xié)調(diào)多任務(wù)最簡單有效的手段。在μC/OS-II中,一個任務(wù)或者中斷服務(wù)子程序,通過事件控制塊來向另外的任務(wù)發(fā)信號。當(dāng)微型爬壁機(jī)器人啟動之后,首先通過接觸傳感器和壓力傳感器檢測4只吸盤是否很好的與壁面吸合;同時(shí),通過紅外傳感器檢測前面是否有障礙物。如果一切正常就發(fā)送信號量給直線前進(jìn)任務(wù),直線前進(jìn)任務(wù)接受到信號量開始運(yùn)行,通過協(xié)調(diào)控制12個電機(jī)并配合相應(yīng)傳感器使爬壁機(jī)器人沿直線運(yùn)行。當(dāng)紅外傳感器檢測到前面有障礙物時(shí),會進(jìn)入中斷程序,在中斷程序中發(fā)送信號給停止任務(wù),停止任務(wù)接收以信號量后運(yùn)行。首先使機(jī)器人停下來調(diào)整好姿勢確保機(jī)器人四足吸在壁面上,然后發(fā)送信號量喚醒左轉(zhuǎn)或者右轉(zhuǎn)任務(wù),控制機(jī)器人繞過障礙物。以后還可以給微型爬壁機(jī)器人配備微型攝像頭,對目標(biāo)現(xiàn)場進(jìn)行實(shí)時(shí)數(shù)據(jù)采集??傊?,在微型爬壁機(jī)器人的控制系統(tǒng)中,信號、消息不斷傳遞,使得各個任務(wù)不斷切換運(yùn)行,整個系統(tǒng)得以正確運(yùn)轉(zhuǎn)工作。

          4 未來的工作

          因?yàn)槲⑿团辣跈C(jī)器人的關(guān)鍵技術(shù)是基于微機(jī)械電子技術(shù)、微驅(qū)動器技術(shù)、微傳感器技術(shù)、高分子材料技術(shù)等方面,所以只有在這些方面有所突破,微型爬壁機(jī)器人才能走向?qū)嵱没?。所設(shè)計(jì)的微型爬壁機(jī)器人目前只能采用半閉環(huán)控制,因?yàn)槲⑿碗姍C(jī)沒有理想的位置反饋傳感器,所以目前只能通過反復(fù)和實(shí)驗(yàn)測出各位置的時(shí)間,然后通過時(shí)間來控制微型電機(jī)的轉(zhuǎn)動位置,在以后的研究工作中,我們希望能在微型傳感器方面有所突破。



          評論


          相關(guān)推薦

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

          關(guān)閉