關(guān) 閉

新聞中心

EEPW首頁 > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 一種智能機(jī)器人系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)

一種智能機(jī)器人系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)

作者: 時(shí)間:2011-07-05 來源:網(wǎng)絡(luò) 收藏

本文引用地址:http://butianyuan.cn/article/161868.htm

  3.1 控制總體軟件結(jié)構(gòu)

  軟件主要由應(yīng)用軟件、內(nèi)核、服務(wù)、驅(qū)動(dòng)程序等組成。其構(gòu)成示意圖如圖2.


  圖2中硬件平臺(tái)是指核心控制模塊及其外圍擴(kuò)展模塊,如視頻采集模塊、語音采集模塊等;驅(qū)動(dòng)程序是指系統(tǒng)對LCD、直流電機(jī)、攝像頭模塊、語音采集模塊等程序;內(nèi)核是指嵌入式操作系統(tǒng),本系統(tǒng)采用的是μC/OS-Ⅱ操作系統(tǒng);系統(tǒng)服務(wù)是指圖形界面μC/GUI和文件系統(tǒng)等;應(yīng)用程序是指為完成控制系統(tǒng)所規(guī)劃的任務(wù)等程序。

  3.2 基于μC/GUI的界面

  μC/GUI是嵌入式應(yīng)用中通用的圖形軟件,是為帶LCD的圖形應(yīng)用系統(tǒng)提供高效的圖形用戶接口而的,它不依賴于處理器和LCD控制器。μC/GUI在多任務(wù)環(huán)境下工作與在單任務(wù)環(huán)境下工作性能同樣卓越,任何尺寸大小的顯示設(shè)備,不管是物理的或是虛擬的,只要具備LCD控制器和處理器,都可以運(yùn)用μC/GUI.μC/GUI產(chǎn)品包中包含有所有的源代碼。實(shí)際上,在所有的嵌入式圖形用戶接口中,μC/GUI提供的源代碼是最整潔最統(tǒng)一的。μC/GUI提供的所有服務(wù)都以該模塊相關(guān)的前綴開始(如:GUI,WM),這將易于理解應(yīng)用程序中與μC/GUI相關(guān)的函數(shù)。同時(shí),μC/GUI所有的服務(wù)都有很明晰的分類:GUI表示二維圖形,GUI_AA表示反鋸齒等。

  中間件μC/GUI界面應(yīng)用程序向用戶提供了豐富的API接口函數(shù),為窗口提供了方便。在設(shè)計(jì)中,為了繪制一幅背景圖片,首先使用位圖轉(zhuǎn)換工具把bmp格式的位圖轉(zhuǎn)換成μC/GUI支持的C文件,供μC/GUI函數(shù)調(diào)用。然后根據(jù)μC/GUI提供的API函數(shù)設(shè)計(jì)系統(tǒng)界面。用到的API函數(shù)主要有位圖顯示函數(shù)、窗口創(chuàng)建函數(shù)、窗口客戶區(qū)句柄獲取函數(shù)、按鈕創(chuàng)建函數(shù)、文本框創(chuàng)建函數(shù)和滑動(dòng)進(jìn)度條創(chuàng)建函數(shù)等。設(shè)計(jì)的界面最終在8英寸LCD液晶屏上顯示。本系統(tǒng)設(shè)計(jì)的窗口主要由兩個(gè)子窗口組成:上方窗口主要用于視頻顯示,可以通過觸摸屏點(diǎn)擊開始或結(jié)束,視頻數(shù)據(jù)將自動(dòng)存入規(guī)劃好的內(nèi)存圖像存儲(chǔ)區(qū),以便進(jìn)一步處理利用,并可選擇機(jī)所處環(huán)境的特定算法程序,且運(yùn)行相應(yīng)的程序;下方的窗口工具條主要完成機(jī)現(xiàn)場音頻數(shù)據(jù)的收集、播放及停止采集,錄制的音頻信息將自動(dòng)存入規(guī)劃好的內(nèi)存音頻數(shù)據(jù)存儲(chǔ)區(qū)Sound_Buffer中,而播放的音頻數(shù)據(jù)放在內(nèi)存Play_Buffer中,它們采用的都是內(nèi)存映射技術(shù)。

  3.3 用戶任務(wù)設(shè)計(jì)

  基于μC/OS-Ⅱ的任務(wù)管理機(jī)制,根據(jù)系統(tǒng)的功能要求,劃分為6個(gè)系統(tǒng)任務(wù),并設(shè)置每個(gè)任務(wù)的優(yōu)先級(jí),如表1所示。

  (1)Motor_Drive_Task——定時(shí)中斷節(jié)拍進(jìn)行計(jì)時(shí),在任務(wù)循環(huán)塊中,接收圖像處理控制算法中形成的電機(jī)驅(qū)動(dòng)參數(shù),即Image_Analyze_Task任務(wù)中產(chǎn)生的電機(jī)驅(qū)動(dòng)參數(shù),更新PWM輸出,完成機(jī)所需運(yùn)動(dòng)軌跡姿態(tài)的調(diào)整,隨后掛起自身。

  (2)Image_Analyze_Task——獲取在內(nèi)存循環(huán)隊(duì)列中的圖像數(shù)據(jù),在任務(wù)循環(huán)塊中檢測圖像信號(hào)量。如果沒有在一定時(shí)期內(nèi)進(jìn)行任務(wù)調(diào)度,則掛起自身;若有則對獲取內(nèi)存循壞隊(duì)列中的圖像數(shù)據(jù)進(jìn)行分析處理,得出電機(jī)驅(qū)動(dòng)參數(shù)并發(fā)送該信息至消息隊(duì)列中,然后釋放圖像信號(hào)量,再掛起自身。

  (3)Sound_Record_Task——用于采集、存儲(chǔ)機(jī)器人周圍環(huán)境聲音信息數(shù)據(jù)到聲音隊(duì)列中。

  (4)Sound_Play_Task——定時(shí)從內(nèi)存聲音播放存儲(chǔ)處,即Play_Buffer中提取數(shù)據(jù)放到隊(duì)列中進(jìn)行播放。

  (5)Image_Collect_Task——建立窗口界面,在任務(wù)循壞塊中檢測圖像信號(hào)量。如果沒有在一定時(shí)期內(nèi)進(jìn)行任務(wù)調(diào)度,則掛起自身;如果檢測到圖像信號(hào)量,則采集一幅圖像到圖像存儲(chǔ)循壞隊(duì)列中,采集完成,再釋放圖像信號(hào)量,掛起自身。

  (6)GUI_Update_Task——按照μC/GUI手冊規(guī)定,當(dāng)其使用窗口回調(diào)機(jī)制,建議把它設(shè)為最低優(yōu)先級(jí)別的任務(wù),用來更新回調(diào)信息,并且該任務(wù)必須,且要定期調(diào)用。



評(píng)論


相關(guān)推薦

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

關(guān)閉