人工智能機器人---分析設(shè)計報告_第1頁
人工智能機器人---分析設(shè)計報告_第2頁
人工智能機器人---分析設(shè)計報告_第3頁
人工智能機器人---分析設(shè)計報告_第4頁
人工智能機器人---分析設(shè)計報告_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、課程:計算機組成原理人工智能機器人分析設(shè)計報告院系:安徽工程大學(xué)機電學(xué)院專業(yè):計算機與軟件工程系班級:軟件1409組長:崔祥祥組員:吳潔羽 毛恒 張金彪 劉偉佳 胡輝 閆冰潔 鄭文杰時間: 2016-3-25姓名職責(zé) 崔祥祥總體規(guī)劃設(shè)計 胡輝 閆冰潔 鄭文杰模塊軟件 吳潔羽 毛恒 張金彪 劉偉佳功能分析目錄功能分析31.1 控制系統(tǒng)最小單元31.2諾依曼體系工作原理51.2.1馮諾依曼體系結(jié)構(gòu)有以下特點:51.2.2硬件總體結(jié)構(gòu)51.2.2CPU與存儲器的連接61.3語音模塊71.3.1LD3320語音模塊71.4PWM控制81.4.1 定時器+中斷產(chǎn)生PWM81.5相關(guān)程序 (以下代碼僅作說

2、明使用,本項目并不涉及該單片機)13第二章 總體軟件162.1Keil162.2STC_ISP172.3兩款軟件的主要作用18第三章 模塊軟件193.1 圖形化控制軟件193.2單個舵機運動實例:20功能分析1.1 控制系統(tǒng)最小單元該系統(tǒng)最小系統(tǒng)分為電路,模塊,諾依曼體系工作原理三個部分。 我們著重講的是運算器,控制器,存儲器,輸入輸出系統(tǒng)的協(xié)作工作部分。1.2諾依曼體系工作原理1.2.1馮諾依曼體系結(jié)構(gòu)有以下特點:計算機處理的數(shù)據(jù)和指令一律用二進制數(shù)表示;指令和數(shù)據(jù)不加區(qū)別混合存儲在同一個存儲器中;順序執(zhí)行程序的每一條指令;計算機硬件由運算器、控制器、存儲器、輸入設(shè)備和輸出設(shè)備五大部分組成。

3、馮諾依曼體系結(jié)構(gòu)的計算機必須具有如下功能:把需要的程序和數(shù)據(jù)送至計算機中;必須具有長期記憶程序、數(shù)據(jù)、中間結(jié)果及最終運算結(jié)果的能力;能夠完成各種算術(shù)、邏輯運算和數(shù)據(jù)傳送等數(shù)據(jù)加工處理的能力;能夠根據(jù)需要控制程序走向,并能根據(jù)指令控制機器的各部件協(xié)調(diào)操作;能夠按照要求將處理結(jié)果輸出給用戶。1.2.2硬件總體結(jié)構(gòu)1.2.2CPU與存儲器的連接中央處理器CPU:地址線20位 數(shù)據(jù)線8位,運算和控制功能內(nèi)部RAM:128K,選用4片32K*8位存儲器內(nèi)部ROM:16K 選用1片16K*8位存儲器定時/計數(shù)器:兩個16位的定時/計數(shù)器,實現(xiàn)定時或計數(shù)功能。串行口:一個全雙工串行口。時鐘電路:可產(chǎn)生時鐘脈

4、沖序列并行口:提供若干并行接口,供編程或拓展使用1.3語音模塊1.3.1LD3320語音模塊支持SPI接口和并行接口的非特定語音識別模塊,板載咪頭和有源晶振,方便在電子產(chǎn)品中實現(xiàn)語音識別、聲控和人機對話功能。產(chǎn)品特性:高準(zhǔn)確度和實用的語音識別效果。非特定人語音識別技術(shù):不需要用戶進行錄音訓(xùn)練??蓜討B(tài)編輯的識別關(guān)鍵詞列表:只需要把識別的關(guān)鍵詞以字符串的形式傳送進芯片,即可以在下次識別中立即生效。比如,用戶在51等MCU的編程中,簡單地通過設(shè)置芯片的寄存器,把諸如你好這樣的識別關(guān)鍵詞的內(nèi)容動態(tài)地傳入芯片中,芯片就可以識別這樣設(shè)定的關(guān)鍵詞語了。支持用戶自由編輯50條關(guān)鍵詞:在同一時刻,最多在50條關(guān)

5、鍵詞語中進行識別,終端用戶可以根據(jù)場景需要,隨時編輯和更新這50條關(guān)鍵詞語的內(nèi)容。參數(shù):工作電壓:3.3V省電模式電流:1uA1.4PWM控制1.4.1 定時器+中斷產(chǎn)生PWM 在機器人機電控制系統(tǒng)中,舵機控制效果是性能的重要影響因素。舵機可以在微機電系統(tǒng)和航模中作為基本的輸出執(zhí)行機構(gòu),其簡單的控制和輸出使得單片機系統(tǒng)非常容易與之接口。 舵機是一種位置伺服的驅(qū)動器,適用于那些需要角度不斷變化并可以保持的控制系統(tǒng)。其工作原理是:控制信號由接收機的通道進入信號調(diào)制芯片,獲得直流偏置電壓。它內(nèi)部有一個基準(zhǔn)電路,產(chǎn)生周期為20ms,寬度為1.5ms的基準(zhǔn)信號,將獲得的直流偏置電壓與電位器的電壓比較,獲

6、得電壓差輸出。最后,電壓差的正負輸出到電機驅(qū)動芯片決定電機的正反轉(zhuǎn)。當(dāng)電機轉(zhuǎn)速一定時,通過級聯(lián)減速齒輪帶動電位器旋轉(zhuǎn),使得電壓差為0,電機停止轉(zhuǎn)動。 舵機的控制要求 舵機的控制信號是PWM信號,利用占空比的變化改變舵機的位置。一般舵機的控制要求如圖所示。單片機實現(xiàn)舵機轉(zhuǎn)角控制 可以使用FPGA、模擬電路、單片機來產(chǎn)生舵機的控制信號,但FPGA成本高且電路復(fù)雜。對于脈寬調(diào)制信號的脈寬變換,常用的一種方法是采用調(diào)制信號獲取有源濾波后的直流電壓,但是需要50Hz(周期是20ms)的信號,這對運放器件的選擇有較高要求,從電路體積和功耗考慮也不易采用。5mV以上的控制電壓的變化就會引起舵機的抖動,對于機

7、載的測控系統(tǒng)而言電源和其他器件的信號噪聲都遠大于5mV,所以濾波電路的精度難以達到舵機的控制精度要求。 也可以用單片機作為舵機的控制單元,使PWM信號的脈沖寬度實現(xiàn)微秒級的變化,從而提高舵機的轉(zhuǎn)角精度。單片機完成控制算法,再將計算結(jié)果轉(zhuǎn)化為PWM信號輸出到舵機,由于單片機系統(tǒng)是一個數(shù)字系統(tǒng),其控制信號的變化完全依靠硬件計數(shù),所以受外界干擾較小,整個系統(tǒng)工作可靠。 單片機系統(tǒng)實現(xiàn)對舵機輸出轉(zhuǎn)角的控制,必須首先完成兩個任務(wù):首先是產(chǎn)生基本的PWM周期信號,本設(shè)計是產(chǎn)生20ms的周期信號;其次是脈寬的調(diào)整,即單片機模擬PWM信號的輸出,并且調(diào)整占空比。 當(dāng)系統(tǒng)中只需要實現(xiàn)一個舵機的控制,采用的控制方

8、式是改變單片機的一個定時器中斷的初值,將20ms分為兩次中斷執(zhí)行,一次短定時中斷和一次長定時中斷。這樣既節(jié)省了硬件電路,也減少了軟件開銷,控制系統(tǒng)工作效率和控制精度都很高 具體的設(shè)計過程:例如想讓舵機轉(zhuǎn)向左極限的角度,它的正脈沖為2ms,則負脈沖為20ms-2ms=18ms,所以開始時在控制口發(fā)送高電平,然后設(shè)置定時器在2ms后發(fā)生中斷,中斷發(fā)生后,在中斷程序里將控制口改為低電平,并將中斷時間改為18ms,再過18ms進入下一次定時中斷,再將控制口改為高電平,并將定時器初值改為2ms,等待下次中斷到來,如此往復(fù)實現(xiàn)PWM信號輸出到舵機。用修改定時器中斷初值的方法巧妙形成了脈沖信號,調(diào)整時間段的

9、寬度便可使伺服機靈活運動。 為保證軟件在定時中斷里采集其他信號,并且使發(fā)生PWM信號的程序不影響中斷程序的運行(如果這些程序所占用時間過長,有可能會發(fā)生中斷程序還未結(jié)束,下次中斷又到來的后果),所以需要將采集信號的函數(shù)放在長定時中斷過程中執(zhí)行,也就是說每經(jīng)過兩次中斷執(zhí)行一次這些程序,執(zhí)行的周期還是20ms。軟件流程如圖產(chǎn)生PWM信號的軟件流程 如果系統(tǒng)中需要控制幾個舵機的準(zhǔn)確轉(zhuǎn)動,可以用單片機和計數(shù)器進行脈沖計數(shù)產(chǎn)生PWM信號。 脈沖計數(shù)可以利用51單片機的內(nèi)部計數(shù)器來實現(xiàn),但是從軟件系統(tǒng)的穩(wěn)定性和程序結(jié)構(gòu)的合理性看,宜使用外部的計數(shù)器,還可以提高CPU的工作效率。實驗后從精度上考慮,對于FU

10、TABA系列的接收機,當(dāng)采用1MHz的外部晶振時,其控制電壓幅值的變化為0.6mV,而且不會出現(xiàn)誤差積累,可以滿足控制舵機的要求。1.5相關(guān)程序 (以下代碼僅作說明使用,本項目并不涉及該單片機)偽代碼程序名:輸出固定頻率的PWM波晶振:11.00592 MHz CPU 功能:P20口輸出周期為1ms(1000HZ),占空比為%80的PWM波#define uint unsigned int#define uchar unsigned charsbit PWM1=P20;/接IN1 控制正轉(zhuǎn)sbit PWM2=P21;/接IN2 控制反轉(zhuǎn)uchar time;void main() TMOD=0

11、x01;/定時器0工作方式1 TH0=0xff;/(65536-10)/256;/賦初值定時 TL0=0xf7;/(65536-10)%256;/0.01ms EA=1;/開總中斷 ET0=1;/開定時器0中斷 TR0=1;/啟動定時器0 while(1) void delay(uint z) uint x,y; for(x=z;x0;x-) for(y=500;y0;y-);void tim0() interrupt 1 TR0=0;/賦初值時,關(guān)閉定時器 TH0=0xff;/(65536-10)/256;/賦初值定時 TL0=0xf7;/(65536-10)%256;/0.01ms TR0

12、=1;/打開定時器 time+; if(time=100) time=0;/1khz if(time=20) PWM1=0;/點空比%80 else PWM1=1; PWM2=0;程序說明:1、關(guān)于頻率的確定:對于11.0592M晶振, PWM輸出頻率為1KHZ,此時設(shè)定時器0.01ms中斷一次,時中斷次數(shù)100次即為1KHZ( 0.01ms*100=1ms,即為1000HZ)此時, 定時器計數(shù)器賦初值為TH0=FF,TL0=F7。2、關(guān)于占空比的確定:此時我們將來time的值從0100之間進行改變,就可以將占空比從%0%100之間進行變化,上面程序中time=20時 PWM1=0; else

13、 PWM1=1;意思就是%20的時間輸出低電平,%80的時間輸出高電平,即占空比為%80。如需得到其它占空比,如%60,只需將time的值改為40即可。(程序為if(time=40) PWM1=0;else PWM1=1;)當(dāng)然編寫程序時也可以定義一個標(biāo)志位如flag,根據(jù)flag的狀態(tài)決定輸出高平還是低電平,假設(shè)定義flag=1的時候輸出高電平,用一個變量去記錄定時器中斷的次數(shù),每次中斷就讓記錄中斷次數(shù)的變量+1,在中斷程序里面判斷這個變量的值是否到了 n ,如果到了說明高電平的時間夠了,那么就改變flag為0,輸出低電平,同時記錄中斷變量的值清零,每次中斷的時候依舊+1,根據(jù)flag=0的

14、情況跳去判斷記錄變量的值是否到了 n 如果到了,說明PWM的低電平時間夠了,那么就改flag=1,輸出改高電平,同時記錄次數(shù)變量清零,重新開始,如此循環(huán)便可得到你想要的PWM波形.第二章 總體軟件2.1Keil從這個項目本身考慮,必須是可編程的,所以采用keil可以生成.hex結(jié)尾的文件 Hex 全稱 (Intel HEX)文件是由一行行符合Intel HEX文件格式的文本所構(gòu)成的ASCII文本文件。在Intel HEX文件中,每一行包含一個HEX記錄。這些記錄由對應(yīng)機器語言碼和/或常量數(shù)據(jù)的十六進制編碼數(shù)字組成。Intel HEX文件通常用于傳輸將被存于ROM或者EPROM中的程序和數(shù)據(jù)。大

15、多數(shù)EPROM編程器或模擬器使用Intel HEX文件。2.2STC_ISP燒制程序說明:當(dāng)然以上軟件的使用的前提是使用一款支持的單片機,但是項目的要求不可以使用單片機,所以我們整體項目是理論性的。2.3兩款軟件的主要作用Keil uVision3是程序編譯軟件,比如你寫的單片機的匯編程序或者C程序,由這個軟件翻譯成.HEX的16進制的機器代碼,如果沒有這個的話,你就要自己去編排,早期的單片機編程器里有機器語言的,后來全部使用這種翻譯程序了.STC-ISP是STC系列單片機的燒寫程序,就是把你之前生存的那個.HEX文件發(fā)送給單片機,有單片機的ISP程序?qū)懭氲絾纹瑱C內(nèi)部,形成單片機的可執(zhí)行程序.

16、第三章 模塊軟件3.1 圖形化控制軟件類似于下面這款軟件可以直接操作舵機偏轉(zhuǎn)角度,并將相應(yīng)指令生成文件,可以下載到控制器。3.2單個舵機運動實例: #5 P1600 S750 通道5將以750us/秒的速度移動到1600us位置。為了更好的理解速度這個概念,舉個例子,當(dāng)舵機從-90度到0度時,脈沖寬度為1ms時間即1000us,也就是說1000us脈沖寬度舵機就會轉(zhuǎn)90度,那么100us/秒的速度就表示舵機花10秒的時間就可以轉(zhuǎn)到90度,2000us/秒的速度就表示舵機花0.5秒的時間就可以轉(zhuǎn)到90度。公式:運行時間(秒)=脈沖寬度(us)/速度(us/秒)。 #5 P1600 T1000 通

17、道5將在1秒內(nèi)從任何位置移動到1600us位置。舵機群運動實例: #5 P1600 #10 P750 T2500 通道5移動到1600us位置,通道10移動到750us的位置,2個都同時在2500us內(nèi)完成,這個命令能協(xié)調(diào)多個舵機的速度,即使2個舵機的初始位置相差很遠,都可以使他們同時開始轉(zhuǎn)動并同時停止到指定位置上。這條命令非常適合人形雙足機器人多舵機同時運動,可自動協(xié)調(diào)所有舵機的速度,完成復(fù)雜步態(tài)的同步。 你可以使用該命令進行速度和時間組合,組合必須根據(jù)下面的規(guī)則:1所有通道的開始和結(jié)束將同時完成。2如果某個通道指定了速度,那么它將不會快于指定速度(可以根據(jù)需要調(diào)節(jié)移動速度)。3如果某個通道指定了時間,那么它將在指定的時間移動到指定位置(可根據(jù)需要調(diào)節(jié)移動時間)。 #5 P160

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論