悟空、悟能雙足機(jī)器人教程_第1頁
悟空、悟能雙足機(jī)器人教程_第2頁
悟空、悟能雙足機(jī)器人教程_第3頁
悟空、悟能雙足機(jī)器人教程_第4頁
悟空、悟能雙足機(jī)器人教程_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、創(chuàng)夢智能機(jī)器人BigBang Robots創(chuàng)夢智能機(jī)器人雙足競步悟空、悟能雙足機(jī)器人教程創(chuàng)夢智能機(jī)器人工程部2014.4.1目錄第一章:雙足競步悟空、悟能雙足機(jī)器人安裝教程3第二章:雙足競步悟空、悟能雙足機(jī)器人快速編程指南11第一節(jié):認(rèn)識單片機(jī) 11 第二節(jié):STC單片機(jī)介紹 13第三節(jié):程序代碼的編譯、糾錯及燒寫18 3.1程序代碼的編譯及糾錯18 3.1.1 keil軟件的安裝 18 3.1.2 keil 的執(zhí)行及程序編譯 21 3.2 燒寫軟件的使用 24第四節(jié):舵機(jī)簡介 26第五節(jié):PWM信號介紹 30第六節(jié):創(chuàng)夢控制板硬件功能介紹33第七節(jié):實例雙足程序詳解 38第八節(jié):如何快速會用

2、雙足程序 54第一章:雙足競步悟空、悟能雙足機(jī)器人安裝教程專用舵機(jī)頭頂板U型件連接板直角連接板狹窄足腳底板交叉足腳底板1交叉足腳底板2M2*6M2自攻絲M2螺母第一步:頭頂板與U型件連接第二步:U型件與U型件悟能交叉足: 悟空狹窄足:第三步: 腳底板的安裝悟空狹窄足: 悟能交叉足:第四步:第五步:第六步:第七步:第八步:第二章:雙足競步悟空、悟能雙足機(jī)器人快速編程指南第一節(jié):認(rèn)識單片機(jī)隨著電子產(chǎn)品的多樣化和普及,單片機(jī)已漸漸成為生活上不可的少的必需品了,從早上起床的電子鬧鐘,烹煮早餐的電磁爐定時及溫控裝置,上課、上班時吹冷風(fēng)用的Fuzzy控制器,學(xué)校電梯控制電路,家中的電視機(jī)的遙控器,計算機(jī)及

3、外圍的控制電路以及許多的玩具應(yīng)用等,這些電子產(chǎn)品內(nèi)部都含有一個單片機(jī)。因為單片機(jī)具有體積小、功能強(qiáng)大、編寫容易等優(yōu)點,自然就成為我們機(jī)器人中不可或缺的控制組件,這也可以減輕機(jī)器人的重量和縮小其體積,相對的,也減少對電池能量的消耗。接下來我們來了解單片機(jī)(微電腦)。微電腦具有和大腦一樣的中央處理器,以及存儲器,通過中央處理器去控制輸出輸入單元。1、中央處理單元用于指令的編碼及存取,依此來控制整個系統(tǒng)的運作,并同時執(zhí)行所有的算術(shù)與邏輯運算。中央處理器單元是微電腦的大腦,主要負(fù)責(zé)指令的提取、分析、執(zhí)行并將結(jié)果送至內(nèi)存,也能控制輸出輸入的動作,而中央處理單元每次所能處理的信號位數(shù)則代表該CPU的位數(shù),

4、如4位、8位、16位等、目前的微電腦已達(dá)到64位了。2、存儲器用來存儲數(shù)據(jù)及指令的地方,CPU要執(zhí)行的指令、順序及所需要的都存放在此,是微電腦的數(shù)據(jù)倉庫。存儲器又可分為:1)ROM只讀存儲器,是一種可讀不可寫的存儲器,在電路中,即使電源關(guān)閉其內(nèi)部的數(shù)據(jù)或程序也不會因此而消失的,下次開啟電源時,又可以再次執(zhí)行,所以也稱為非易失性存儲器。2)隨機(jī)存儲器RAM 內(nèi)部的數(shù)據(jù)可以隨時由電路或CPU讀取及存放,故其內(nèi)容隨時會因電源的關(guān)閉而消失,當(dāng)下次開啟電源時,CPU就得重新將數(shù)據(jù)寫入RAM中,所以又稱為易失性存儲器。 3、輸入/輸出單元(I/O Port)-連接外界及內(nèi)部之間的通道 CPU產(chǎn)生的各種信號

5、可以通過輸出單元到達(dá)外界,繼而控制各種外圍電路及設(shè)備。相反的,外圍電路及設(shè)備所要給CPU的信號,就得通過輸入單元,傳給CPU,這就是微電腦輸出/輸入單元的主要功能。第二節(jié):STC單片機(jī)介紹STC12C5A60S2單片機(jī)圖片上圖為48腳單片機(jī),常見的還有下面40腳直插型的單片機(jī)內(nèi)部結(jié)構(gòu)圖常接的復(fù)位電路和時鐘電路STC12C5A60S2單片機(jī)是宏晶科技生產(chǎn)的單時鐘/機(jī)器周期(1T)的單片機(jī),是高速/低功耗/超強(qiáng)干擾的新一代8051單片機(jī),指令代碼完全兼容傳統(tǒng)的8051,但速度快812.內(nèi)部集成MAX810專用復(fù)位電路,2路PWM,8路高速10位A/D轉(zhuǎn)換(250K/S,及25萬次/秒),針對點擊控

6、制,強(qiáng)干擾場合。1. 增強(qiáng)型8051 CPU, 1T單時鐘/機(jī)器周期,指令代碼完全兼容傳統(tǒng)80512. 工作電壓;STC12C5A60S2 系列工作電壓:5.5V-3.5V(5V單片機(jī)) STC12C5A60S2 系列工作電壓:3.6V-2.2V(3V單片機(jī))3. 工作頻率范圍:0-35MHz,相當(dāng)于普通8051的0-420MHz4. 應(yīng)用程序空間 8K/16K/20K/32K/40K/48K/52K/60K/62K字節(jié)5. 片上集成1280字節(jié)RAM6. 通過I/O口(36/40/44個),復(fù)位后為:準(zhǔn)雙向口/弱上拉(普通8051傳統(tǒng)I/O口)可以設(shè)置成四種模式:準(zhǔn)雙向口/弱上拉,強(qiáng)推挽/強(qiáng)

7、上拉,緊為輸入/高阻,開漏每個I/O驅(qū)動能力均可以達(dá)到20mA,但整個芯片最大不要超過120mA7. ISP(在系統(tǒng)可編程)/IAP(在應(yīng)用可編程),無需專用編程器,無需專用仿真器可以通過串口(P3.0/P3.1)直接下載用戶程序,數(shù)秒即可完成一片8. 有EEROM功能(STC12C5A60S2/AD/PWM無內(nèi)部EEPROM)9. 看門狗10. 內(nèi)部集成MAX810專用復(fù)位電路(外部晶振12M以下時,復(fù)位腳可直接1K電阻到地)11. 外部掉點檢測電路:在P4.6口有一個低壓門檻比較器5V單片機(jī)為1.33V,誤差為5%,3.3V單片機(jī)為1.31V誤差為3%12. 時鐘源:外部高精度晶體/時鐘,

8、內(nèi)部R/C振蕩器(溫漂為5%到10%以內(nèi))用戶在下載用戶程序時,可選擇使用內(nèi)部R/C振蕩器還是外部晶體/時鐘,常溫下內(nèi)部R/C振蕩器頻率為:5.0V單片機(jī)為:11M-17M 3.3V單片機(jī)為:8M-12M 精度要求不高時,可以選擇使用內(nèi)部時鐘但是因為有制造誤差和溫漂,以實際測試為準(zhǔn)13. 共4個16位定時器兩個與傳統(tǒng)8051兼容的定時器/計數(shù)器,16位定時器T0和T1,沒有定時器2,但是有獨立的波特率發(fā)生器做串行通訊的波特率發(fā)生器,再加上2路PCA模塊可實現(xiàn)2個16位定時器 14.3個時鐘輸出口,可以有T0的溢出在P3.4/T0輸出時鐘,可由T1的溢出在P3.5/T1輸出時鐘,獨立波特率發(fā)生器

9、可以在P1.0口輸出時鐘 15.外部中斷I/O口7路,傳統(tǒng)的下降沿中斷或低電平觸發(fā)中斷,并新增支持上升沿中斷的PCA模塊,Power Down模式可由外部中斷喚醒,INT0/P3.2,INT1/P3.3,TO/P3.4,T1/P3.5,RxD/3.0,CCP0/P1.3(也可以通過寄存器設(shè)置到P4.2),CCP1/P1.4(也可以通過寄存器設(shè)置到P4.3) 16.PWM(2路)/PCA(可編程計數(shù)器陣列,2路) 17.A/D轉(zhuǎn)換,10位精度ADC,共8路,轉(zhuǎn)換速速可達(dá)到250K/S(每秒鐘25萬次) 18.STC12C5A60S2系列有雙串口,后綴有S2標(biāo)志的才有雙串口,RxD2/P1.2(可

10、以通過寄存器設(shè)置到P4.2),TxD2/P1.3(可以通過寄存器設(shè)置到P4.3) 19.通過全雙工異步串行口(UART),由于STC12系列是高速的8051,可以再用定時器或PCA軟件實現(xiàn)多串口 20.工作溫度范圍:-40-+85(工業(yè)級)/0-75(商業(yè)級) 21.封裝:LQFP-48,LQFP-44,PDIP-40,PLCC-44,QFN-40第三節(jié):程序代碼的編譯、糾錯及燒寫3.1程序代碼的編譯及糾錯 3.1.1 keil軟件的安裝(1)在附帶的資料里面找到(keil4+破解+漢化)這個文件夾,點進(jìn)去然后雙擊C51v901.exe (2)接下來出來如圖所示的界面,點擊Next(3)在I

11、agree to前面的方框打鉤,再點擊Next(4)以后一直點擊Next,最后出來如下圖所示的界面就點擊finish就完成安裝了(5)下面最主要就是破解了,打開keil 4這個軟件,點擊file如圖所示的界面,選擇License Management(6)接著在下面界面中,把CID里面的數(shù)字復(fù)制下來,不要關(guān)閉這個界面(7)然后在Keil4+破解+漢化中找到KEIL_Lic.exe點擊打開,把剛才復(fù)制的CID碼粘貼到下面CID后面方框里,點擊Generate,接著會出來一串?dāng)?shù)字,把它復(fù)制下來然后粘貼到上圖New License ID Code(LIC)后面的方框,再點擊Add LIC就搞定了!再

12、把這個關(guān)掉就破解成功了!3.1.2 keil 的執(zhí)行及程序編譯 安裝編程軟件現(xiàn)在就是該怎么使用了?。?) 第一步就是新建工程,見下圖的界面點擊藍(lán)條選項就是新建工程,然后根據(jù)提示選擇程序保存位置,還有就是選擇芯片型號,如果沒有你需要的芯片型號,你可以添加或者選擇AT89C51這個型號的也是可以的?。?) 然后就要添加文件了,從file里面第一項就是添加,把自己下的程序打出來,在保存一下再添加到工程目錄下。(3) 現(xiàn)在就該編譯程序了,點擊,如果編譯沒通過下面方框會出來如圖所示的對話框,然后雙擊error c202回用箭頭指出錯誤的地方,根據(jù)錯誤修改就好(4) 如果沒有出錯,就對輸出選擇生成HEX文

13、件,點擊Flash然后選擇如圖所示的藍(lán)條(5) 得到如下圖的界面,(6) 上面的界面在選擇output得到下面界面,在Create HEX File前面打勾,點擊ok就行。然后重新編譯一下就可以生成HEX文件了。3.2 燒寫軟件的使用 燒寫軟件首先要用的硬件有STC ISP燒寫器,首先就得給該硬件安裝驅(qū)動,這個驅(qū)動的可以有驅(qū)動人生、360驅(qū)動、驅(qū)動精靈等都可以安裝。安裝完成就得看看驅(qū)動安裝怎么樣,查看電腦的設(shè)備管理器,安裝完成就會出現(xiàn)端口(COM2)不同電腦可能COM口不一樣,但是COM口編號要記下來。在附帶的資料里面找到STC-ISP下載軟件,將這個文件夾打開,打開如下圖所示,然后雙擊擊藍(lán)條

14、這個文件。接下來有幾個選項要選擇,首先是芯片型號的選擇這里是STC12C5A60S2然后就是端口的選著上面電腦的端口是COM2然后改成COM就好然后就是文件的選擇,點擊打開文件,選擇編譯好的文件的HEX文件然后就是下載了,可能會提示給MCU上電的,直接給單片機(jī)上電就好了!有的下載器有冷啟動就不會提示上電的!第四節(jié):舵機(jī)簡介微型伺服電機(jī)內(nèi)部結(jié)構(gòu):伺服電機(jī)(外形見圖1)內(nèi)部包括一只小型直流電機(jī);變速齒輪組;反饋可調(diào)電位器及電子控制板處理輸入的脈沖信號。舵機(jī)主要是由外殼、電路板、無核心馬達(dá)、齒輪與位置檢測器所構(gòu)成。其工作原理是由接收機(jī)發(fā)出訊號給舵機(jī),經(jīng)由電路板上的 IC判斷轉(zhuǎn)動方向,再驅(qū)動無核心馬達(dá)

15、開始轉(zhuǎn)動,透過減速齒輪將動力傳至擺臂,同時由位置檢測器送回訊號,判斷是否已經(jīng)到達(dá)定位。位置檢測器其實就是可變電阻,當(dāng)舵機(jī)轉(zhuǎn)動時電阻值也會隨之改變,藉由檢測電阻值便可知轉(zhuǎn)動的角度。一般的伺服馬達(dá)是將細(xì)銅線纏繞在三極轉(zhuǎn)子上,當(dāng)電流流經(jīng)線圈時便會產(chǎn)生磁場,與轉(zhuǎn)子外圍的磁鐵產(chǎn)生排斥作用,進(jìn)而產(chǎn)生轉(zhuǎn)動的作用力。依據(jù)物理學(xué)原理,物體的轉(zhuǎn)動慣量與質(zhì)量成正比,因此要轉(zhuǎn)動質(zhì)量愈大的物體,所需的作用力也愈大。舵機(jī)為求轉(zhuǎn)速快、耗電小,于是將細(xì)銅線纏繞成極薄的中空圓柱體,形成一個重量極輕的五極中空轉(zhuǎn)子,并將磁鐵置於圓柱體內(nèi),這就是無核心馬達(dá)。 為了適合不同的工作環(huán)境,有防水及防塵設(shè)計的舵機(jī);并且因應(yīng)不同的負(fù)載需求,舵

16、機(jī)的齒輪有塑膠及金屬之區(qū)分,金屬齒輪的舵機(jī)一般皆為大扭力及高速型,具有齒輪不會因負(fù)載過大而崩牙的優(yōu)點。較高級的舵機(jī)會裝置滾珠軸承,使得轉(zhuǎn)動時能更輕快精準(zhǔn)。滾珠軸承有一顆及二顆的區(qū)別,當(dāng)然是二顆的比較好。目前新推出的 FET 舵機(jī),主要是采用 FET(Field Effect Transistor)場效電晶體。FET 具有內(nèi)阻低的優(yōu)點,因此電流損耗比一般電晶體少。伺服電機(jī)的工作原理:伺服電機(jī)是一個典型閉環(huán)反饋系統(tǒng),其原理可由下圖表示:減速齒輪組由電機(jī)驅(qū)動,其輸出端帶動一個線性的比例電位器作位置檢測,該電位器把轉(zhuǎn)角坐標(biāo)轉(zhuǎn)換為一比例電壓反饋給控制線路板,控制線路板將其與輸入的控制脈沖信號比較,產(chǎn)生糾

17、正脈沖,并驅(qū)動電機(jī)正向或反向地轉(zhuǎn)動,使齒輪組的輸出位置與期望值相符,令糾正脈沖最終趨于為0,從而達(dá)到使伺服電機(jī)精確定位的目的。 標(biāo)準(zhǔn)的伺服電機(jī)有三條控制線。分別為:電源、地及控制。電源線與地線用于提供內(nèi)部的直流電機(jī)及控制電路所需的能源,電壓通常介于4V6V之間,該電源應(yīng)盡可能與處理系統(tǒng)的電源隔離(因為伺服馬達(dá)會產(chǎn)生噪音)。甚至小伺服電機(jī)在重負(fù)載時也會拉低放大器的電壓,所以整個系統(tǒng)的電源供應(yīng)的比例必須合理。伺服電機(jī)的電源引線:伺服電機(jī)電源引線三條線中橙色的線是控制線,連到控制芯片上。紅色的線是電源正極線,工作電壓是5V。 黑色的是地線。伺服電機(jī)的控制:伺服電機(jī)的控制端需輸入周期性的正向

18、脈沖信號,這個周期性脈沖信號的高電平時間通常在1ms2ms之間,而低電平時間應(yīng)在5ms到20ms之間,并不很嚴(yán)格。下表表示出一個典型的20ms周期性脈沖的正脈沖寬度與微型伺服馬達(dá)的輸出臂在180范圍內(nèi)轉(zhuǎn)動時與輸入脈沖的對應(yīng)關(guān)系:舵機(jī)的技術(shù)參數(shù):廠商所提供的舵機(jī)規(guī)格資料,都會包含外形尺寸(mm)、扭力(kg-cm)、速度(秒/60°)、測試電壓(V)及重量(g)等基本資料。扭力的單位是 kg-cm,意思是在擺臂長度 1 公分處,能吊起幾公斤重的物體。這就是力臂的觀念,因此擺臂長度愈長,則扭力愈小。速度的單位是 sec/60°,意思是舵機(jī)轉(zhuǎn)動 60°所需要的時間。 電

19、壓會直接影響舵機(jī)的性能,例如 Futaba S-9001 在 4.8V 時扭力為 3.9kg、速度為 0.22 秒,在 6.0V 時扭力為 5.2kg、速度為 0.18 秒。若無特別注明,JR 的舵機(jī)都是以 4.8V 為測試電壓,F(xiàn)utaba則是以 6.0V 作為測試電壓。所謂天下沒有白吃的午餐,速度快、扭力大的舵機(jī),除了價格貴,還會伴隨著高耗電的特點。因此使用高級的舵機(jī)時,務(wù)必搭配高品質(zhì)、高容量的鎳鎘電池,能提供穩(wěn)定且充裕的電流,才可發(fā)揮舵機(jī)應(yīng)有的性能。伺服電機(jī)使用的注意事項:伺服舵機(jī)轉(zhuǎn)角在0180°,當(dāng)高電平脈沖大于2.5ms,一般沒有自我保護(hù)的舵機(jī),都會使轉(zhuǎn)角超出正常的范圍,使

20、內(nèi)部直流電機(jī)處于堵轉(zhuǎn)狀態(tài),一兩分鐘就會使舵機(jī)發(fā)燙,甚至燒壞舵機(jī)。使用時,盡量讓舵機(jī)在-45°到45°之間轉(zhuǎn)動,這范圍內(nèi)舵機(jī)轉(zhuǎn)角也更精準(zhǔn)。第五節(jié):PWM信號介紹1、PWM信號定義PWM信號為脈寬調(diào)制信號,其特點在于他的上升沿與下降沿之間的時間寬度。具體的時間寬窄協(xié)議參考下列講述。我們目前使用的舵機(jī)主要依賴于模型行業(yè)的標(biāo)準(zhǔn)協(xié)議,隨著機(jī)器人行業(yè)的漸漸獨立,有些廠商已經(jīng)推出全新的舵機(jī)協(xié)議,這些舵機(jī)只能應(yīng)用于機(jī)器人行業(yè),已經(jīng)不能夠應(yīng)用于傳統(tǒng)的模型上面了。優(yōu)點是已經(jīng)產(chǎn)業(yè)化,成本低,旋轉(zhuǎn)角度大(目前所生產(chǎn)的都可達(dá)到185度);缺點是控制比較復(fù)雜。但是它是一款數(shù)字型的舵機(jī),其對PWM信號的

21、要求較低:(1) 不用隨時接收指令,減少CPU的疲勞程度;(2) 可以位置自鎖、位置跟蹤,這方面超越了普通的步進(jìn)電機(jī);其PWM格式注意的幾個要點:(1) 上升沿最少為0.5mS,為0.5mS-2.5mS之間;(2) 數(shù)字舵機(jī)下降沿時間沒要求,目前采用0.5Ms就行;也就是說PWM波形可以是一個周期1mS的標(biāo)準(zhǔn)方波;(3) 模擬舵機(jī),其要求連續(xù)供給PWM信號;它也可以輸入一個周期為1mS的標(biāo)準(zhǔn)方波,這時表現(xiàn)出來的跟隨性能很好、很緊密。我們采用的是8位STC12C5A60S2CPU,其數(shù)據(jù)分辨率為256,那么經(jīng)過舵機(jī)極限參數(shù)實驗,得到應(yīng)該將其劃分為250份。那么0.5mS-2.5Ms的寬度為2mS

22、 = 2000uS。2000uS÷250=8uS則:PWM的控制精度為8us我們可以以8uS為單位遞增控制舵機(jī)轉(zhuǎn)動與定位。舵機(jī)可以轉(zhuǎn)動185度,那么185度÷250=0.74度,則:舵機(jī)的控制精度為0.74度2PWM信號控制精度制定1 DWT = 8uS ; 250DWT=2mS時基寄存器內(nèi)的數(shù)值為:(#01H)01 (#0FAH)250。共185度,分為250個位置,每個位置叫1DWT。則:185÷250 = 0.74度 / DWTPWM上升沿函數(shù): 0.5mS + N×DWT 0uS N×DWT 2mS 0.5mS 0.5Ms+N×

23、;DWT 2.5mS3、舵機(jī)控制方法舵機(jī)的轉(zhuǎn)角達(dá)到185度,由于采用8位CPU控制,所以控制精度最大為256份。目前經(jīng)過實際測試和規(guī)劃,分了250份。具體劃分參見“PWM信號控制精度制定”。將0185分為250份,每份0.74度??刂扑璧腜WM寬度為0.5ms2.5ms,寬度2ms。2ms÷250=8us;所以得出:PWM信號高電平持續(xù)的時間 =度數(shù)/8s + 500s舵機(jī)角度= 0.74×NPWM = 0.5 + N×DWT;(DWT=8us)角度04590135185N062125187250PWM0.5ms1ms1.5ms2ms2.5ms第六節(jié):創(chuàng)夢控制板

24、硬件功能介紹除了機(jī)器人機(jī)體本身以外,還有很重要的一個部分就是機(jī)器人的控制器系統(tǒng)。創(chuàng)夢智能機(jī)器人生產(chǎn)的控制板具有很好的操作性。目前市面上使用最廣泛的是51系列單片機(jī),我們的控制板采用STC12C5A60S2單片機(jī),大部分元器件采用全表貼工藝。此控制板設(shè)計合理,擴(kuò)展了STC12C5A60S2系列單片機(jī)的六個端口以供雙足使用。電路板上面的主要元件:CPU: STC12C5A60S2, 48pinLQFP封裝IO口: 此電路板共擴(kuò)展6個IO口,給雙足六個舵機(jī)控制智能穩(wěn)壓: 該電路板采用LM2596可調(diào)穩(wěn)壓芯片,解決了舵機(jī)聯(lián)動電壓波動比較大的問題,還可以通過電位器調(diào)節(jié)改變舵機(jī)的供電電壓,這樣就可以使機(jī)器

25、人運行在一個最佳的電壓狀態(tài)下!一鍵快速啟動:本控制板加了一個啟動按鈕,就是在機(jī)器人在電源開啟狀態(tài)下,按下按鈕機(jī)器人快速動起來,這在比賽的時候不必停留一兩秒機(jī)器人才開始啟動!擴(kuò)展電源管理模塊:只要插上電源管理模塊可以實現(xiàn)低壓報警,電視實時監(jiān)控,不必?fù)?dān)心在電池電量不佳的情況下讓機(jī)器人運行!控制板原理圖:創(chuàng)夢雙足控制板實物圖:該控制板使用簡介:從上面圖片中可以看出該板子是專門為雙足機(jī)器人設(shè)計的,各個接口按鍵簡單介紹一下:首先是電源接口配備了PCB專用插孔,采用兩片鋰電供電;接著就是10P下載接口和專用下載器給該控制板下載程序,下載線也是采用專用10P線;然后還有就是程序啟動按鍵,它和單片機(jī)的P3.0

26、引腳接著,程序檢測低電平信號,有這個信號機(jī)器人立馬啟動;然后就是有就是六個舵機(jī)的接口,上面J1到J6分別就是六個舵機(jī),讓機(jī)器人背對自己,右手邊從上到下依次為:J1、J2、J3;然后左手邊從上到下依次為:J4、J5、J6??刂瓢迳厦鎸?yīng)的有:J1、J2、J3、J4、J5、J6。注意舵機(jī)白色是信號線,白色頭插在靠近芯片端,黑色端插在板子靠近外面!這里需要強(qiáng)調(diào)幾個注意:(1)7.4V電源的正負(fù)問題,一般情況下,紅色線是正極,黑色線是負(fù)極。(2)舵機(jī)接線統(tǒng)一遵守標(biāo)準(zhǔn):在控制板上靠內(nèi)側(cè)即靠近單片機(jī)的一端是控制信號線,中間是電源(穩(wěn)壓后正端),最外面的是地(GND)。電壓檢測模塊的簡介: 該電壓檢測模塊也

27、采用STC芯片控制,單片機(jī)自帶十位數(shù)模轉(zhuǎn)換,可以準(zhǔn)確的測出電池和舵機(jī)供電電壓,這個板子是專門為創(chuàng)夢雙足控制板設(shè)計的,能夠在使用機(jī)器人前使用知道電池的使用情況,避免了機(jī)器人在沒電的情況下造成機(jī)器人損壞!上面可調(diào)報警電壓根據(jù)自己實際情況調(diào)節(jié)所需的報警電壓!圖片如下:兩個連接圖片如下:第七節(jié):實例雙足程序詳解/* 創(chuàng)夢智能機(jī)器人公司文件名稱:robot_test.c文件內(nèi)容:狹窄足程序創(chuàng)建人 :創(chuàng)夢智能機(jī)器人創(chuàng)建時間:2014/4/16*/#include<reg60s2.h> /芯片頭文件 寄存器已經(jīng)修改#include<math.h> /數(shù)學(xué)函數(shù)#include<d

28、elay.h> /延時程序 通過示波器測試#define uchar unsigned char#define uint unsigned intuchar position8; /用于記錄8個舵機(jī)的位置uchar pick_up8; /kouchu8;各個io口輪流輸出是屏蔽其它位uchar arr8; /提供排序空間 paixu_ncha8=0;中間過度用 uchar t0bit=0; /定時器0周期相同標(biāo)志位uchar N; /關(guān)于掃尾值的參數(shù)uchar zsax=15; /14h,z 平面sa 修正參數(shù) uchar psax=10; /15h,p 平面sa 修正參數(shù)交互2ucha

29、r zsag=20; /16h,z 平面sa 過渡參數(shù)uchar psag=20; /17h,p 平面sa 過渡參數(shù)/*函數(shù)名稱:void low_level_500u函數(shù)功能:PWM信號低電平時間子程序,控制舵機(jī)PWM信號的低電平時間決定舵機(jī)轉(zhuǎn)動的速度 積分思想輸入 : time輸出 :無*/void low_level_500u(uint time) uint i; for(i=0;i<time;i+) delay500us(1);/*函數(shù)名稱:void t0_init函數(shù)功能:t0定時器初始化,用于舵機(jī)2.5ms定時輸入 :無 輸出 :無備注 :沒有開啟定時*/void t0_in

30、it(void) TMOD = TMOD & 0xf0; /初始化定時器1的計數(shù)方式為方式1 無用 TMOD = TMOD | 0x01; TH0=0xee; /晶振22.1184MHz,2.5Ms定時ee00 TL0=0x00; ET0=1; EA=1; t0bit=1;/*函數(shù)名稱:void low_level_t0函數(shù)功能:同周期定時器0設(shè)置及啟動程序,使每變化一個變化量的周期相同 給寄存器填值輸入 :THTL輸出 :無*/void low_level_t0(uint THTL) TH0=THTL>>8; /晶振22.1184MHz,2.5Ms定時ee00 TL0=T

31、HTL; t0bit=0; TR0=1;/*函數(shù)名稱:void T0_Interrupt(void) interrupt 1函數(shù)功能:定時器t0中斷服務(wù)函數(shù)函數(shù) 中斷一次填一次值 標(biāo)記一次一個2.5ms到了輸入 :輸出 :無*/void T0_Interrupt(void) interrupt 1 TH0=0xee; /晶振22.1184MHz,2.5Ms定時ee00 TL0=0x00; t0bit=1;/*函數(shù)名稱:init_cpu函數(shù)功能:單片機(jī)初始化程序輸入 :無輸出 :無*/void init_cpu(void)t0_init(); /定時器0初始化delay500us(10);/*函

32、數(shù)名稱:array()函數(shù)功能:排序子程序,將各個口的8位根據(jù)時間的長短排序 提供arri=arri- arri+1相鄰差值輸入 :無輸出 :無*/void array() uchar i=0,j=0,x=0; pick_up0=0xFE; pick_up1=0xFD; pick_up2=0xFB; pick_up3=0xF7; pick_up4=0xEF; pick_up5=0xDF; pick_up6=0xBF; pick_up7=0x7F; /賦值 /冒泡排序 for(i=0;i<=6;i+) for(j=i+1;j<=7;j+) if(arri<arrj) /交換數(shù)據(jù)

33、 x=arrj; arrj=arri; arri=x; x=pick_upj; pick_upj=pick_upi; pick_upi=x; for(i=0;i<7;i+) arri= arri- arri+1; /*函數(shù)名稱:void PWM_8()函數(shù)功能:8路舵機(jī)輸出子程序,實現(xiàn)8路舵機(jī)的PWM信號在最短的時間內(nèi)輸出輸入 :positioni輸出 :無備注 :P0口*/void PWM_8() uchar i=0,j; for(i=0;i<8;i+) /取P0口舵機(jī)對應(yīng)的值 arri=positioni; array(); /排序計算 low_level_t0(0xee00)

34、; /開啟定時器并賦初始值 P0=0xff; /使口P0全部拉高 delay500us(1); /調(diào)用延時500us函數(shù) for(i=0;i<8;i+) /P0口8路同時輸出 for(j=0;j<arr7-i;j+) /此時arr為(安位置大小)相鄰舵機(jī)位置相差值 delay8us(1); P0=P0&pick_up7-i; /此時pick_up為 代表的是那一位為0 邏輯與后拉低 while(t0bit=0); /等待2.5ms應(yīng)該說是一個周期的到來 可自定義TR0=0; /關(guān)閉定時器0/*函數(shù)名稱:initial_position();函數(shù)功能:初始位置子程序,根據(jù)各個

35、舵機(jī)的不同位置設(shè)置初始位置輸入 :無輸出 :無*/void initial_position(void) uchar i,j,x=0; for(i=0;i<30;i+) x+; position0=125; /0號(舵機(jī)) 舵機(jī)的初始位置修改,改變數(shù)值大小就可以 position1=125; /1號 position2=124; /2號 position3=125; /3號 position4=125; /4號 position5=128; /5號 position6=125; /未使用 position7=113; /未使用 PWM_8(); if(x<10) j=20;j-;

36、low_level_500u(j); else j=10; j+; low_level_500u(j); /*函數(shù)名稱:main函數(shù)功能:入口函數(shù)輸入 :無輸出 :無*/void main(void) SP=0x70; /堆棧指針初始化 P0M1 = 0x00;/P0 as Digital OUTPUT P0M0 = 0x00; init_cpu(); /初始化cpu 設(shè)置定時器 delay500us(10); P0=0xff; delay500ms(1); initial_position();/初始位置 delay500ms(1); while(P3&0x01); /檢測按鍵信號

37、go_ahead_3(); /調(diào)用前進(jìn)三步程序 qian_gendou(); /調(diào)用前跟頭程序 go_ahead_3(); /調(diào)用前進(jìn)三步程序 hou_gendou(); /調(diào)用后跟頭程序 go_ahead(); /調(diào)用一直前進(jìn)程序 while(1); /* */#/ 函數(shù)名稱:void goahead3(void)/ 函數(shù)說明:前進(jìn)3步子程序/ 入口參數(shù):無/ 出口參數(shù):無/# void go_ahead_3(void) uchar i,t; for(i=0;i<30;i+) /側(cè)身 position2+; if(i%2)=0) position5+; PWM_8(); low_lev

38、el_500u(15); for(i=0;i<50;i+) /半步 position0+; position1+; position3+; position4+; if(i%5)=0) position2-; if(i%10)=0) position2-; if(i%50)=0) position5+=3; PWM_8(); low_level_500u(15); for(i=0;i<15;i+) /落腳 position2-; position5-; if(i%5)=0) position5-; PWM_8(); low_level_500u(15); for(i=0;i<30;i+) /右側(cè) position5-; if(i%2=0) position2-; PWM_8(); low_level_500u(15); for(i=0;i<100;i+) /左 大步 position0-; position1-; position3-; position4-; if(i%10=0) position5+; if(i%20=0) position5+; if(i%100=0) position2-=3; P

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論