機(jī)器人原理與制作實(shí)驗(yàn)指導(dǎo)書(shū)及報(bào)告_第1頁(yè)
機(jī)器人原理與制作實(shí)驗(yàn)指導(dǎo)書(shū)及報(bào)告_第2頁(yè)
機(jī)器人原理與制作實(shí)驗(yàn)指導(dǎo)書(shū)及報(bào)告_第3頁(yè)
機(jī)器人原理與制作實(shí)驗(yàn)指導(dǎo)書(shū)及報(bào)告_第4頁(yè)
機(jī)器人原理與制作實(shí)驗(yàn)指導(dǎo)書(shū)及報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 機(jī)器人原理與制作實(shí)驗(yàn)指導(dǎo)書(shū)華中科技大學(xué)文華學(xué)院機(jī)器人實(shí)驗(yàn)室實(shí)驗(yàn)一 熟悉機(jī)器人與C51單片機(jī)硬件軟件一、實(shí)驗(yàn)?zāi)康?、掌握寶貝車(chē)機(jī)器人用C51教學(xué)板與計(jì)算機(jī)硬件連接; 2、熟悉及掌握C51系列單片機(jī)Keil uVision IDE(集成開(kāi)發(fā)環(huán)境)軟件、ISP下載軟件及串口調(diào)試終端的使用方法。二、實(shí)驗(yàn)設(shè)備及軟件寶貝車(chē)機(jī)器人、ISP下載線(xiàn)、串行接口、并行接口、計(jì)算機(jī)、電源。Keil uVision2 IDE集成開(kāi)發(fā)環(huán)境、SL ISP下載軟件、串口調(diào)試軟件。三、實(shí)驗(yàn)內(nèi)容和步驟單片機(jī)控制的寶貝車(chē)機(jī)器人通過(guò)串并口通信交互由硬件系統(tǒng)與軟件系統(tǒng)相互結(jié)合組成的一個(gè)完整的智能控制系統(tǒng)。單片機(jī)必須與外圍設(shè)備及軟件組

2、成一個(gè)完整的應(yīng)用系統(tǒng)(如圖1.1)。1、熟悉寶貝車(chē)機(jī)器人的結(jié)構(gòu)組成(如圖1.2):小車(chē)底板、車(chē)輪、教學(xué)板、伺服電機(jī)、電池盒。這是寶貝車(chē)機(jī)器人的硬件系統(tǒng),它的微控制器(MCU)是由Atmel公司生產(chǎn)與51系列兼容的8位AT89S52單片機(jī)。 圖1.1單片機(jī)應(yīng)用系統(tǒng)圖 圖1.2采用C51單片機(jī)的機(jī)器人2、教學(xué)板指方便單片機(jī)與電源、ISP下載線(xiàn)、串口線(xiàn)以及各種傳感器和電機(jī)的連接制作的一個(gè)電路板(如圖1.3)。將寶貝車(chē)機(jī)器人與計(jì)算機(jī)硬件連接,并連接到電源。l 連接單片機(jī)教學(xué)板ISP接口到計(jì)算機(jī),以便程序下載;l 連接單片機(jī)教學(xué)板串行接口到計(jì)算機(jī),以便調(diào)試和交互;l 連接機(jī)器人到電池或者是供電電源。(2

3、)ISP下載線(xiàn)圖1.3 C51單片機(jī)教學(xué)板串行接口;ISP接口;電源接口;三位開(kāi)關(guān);綠色LED電源指示燈;AT89S52單片機(jī);“Reset”按鈕;面包板;專(zhuān)用電機(jī)控制接口插座3、運(yùn)用C語(yǔ)言編程,運(yùn)用編譯器編譯生成可執(zhí)行文件并下載到單片機(jī),用串口調(diào)試軟件查看單片機(jī)輸出信息。建立用戶(hù)文件夾,方便管理程序,拷入編譯所需頭文件。進(jìn)入編程系統(tǒng)(Keil uVision2 IDE):1)新建項(xiàng)目工程(*.uv2):ProjectNew Project,命名,保存在新建立的用戶(hù)文件夾內(nèi);選擇單片機(jī)生產(chǎn)公司及類(lèi)型:Atmel、AT89S52。2)新建C程序文件:FileNew;編輯好程序,保存為*.c的文件

4、。注意程序關(guān)鍵字的拼寫(xiě),英文標(biāo)點(diǎn),字母的大小寫(xiě)等。3)添加C程序到項(xiàng)目工程:Source Group 1右鍵單擊Add Files to Group Source。Source Group 1前面出現(xiàn)+號(hào),單擊它出現(xiàn)剛才添加的C程序文件名,單擊此C文件,Keil會(huì)自動(dòng)識(shí)別關(guān)鍵字,并以不同的顏色提示用戶(hù)加以注意,這樣會(huì)使用戶(hù)少犯錯(cuò)誤,有利于提高編程效率。4)生成執(zhí)行文件十六進(jìn)制目標(biāo)代碼文件(*.hex):Target 1 右鍵單擊Option for targetTarget 1Output選中“Create Hex Fi:”連接編譯生成可執(zhí)行文件*.hex。編譯要求沒(méi)有錯(cuò)誤產(chǎn)生,允許出現(xiàn)警告。

5、進(jìn)入下載系統(tǒng)(SL ISP):1)參數(shù)選擇:并口LPT1;下載速度選擇TURBO模式;單片機(jī)型號(hào):AT89S52;2)選擇執(zhí)行文件:Flash*.hex;3)單擊“編程”進(jìn)行下載。注意:要將ISP下載線(xiàn)連接計(jì)算機(jī)和機(jī)器人教學(xué)板,電源接好,開(kāi)關(guān)撥到“1”檔位置,給教學(xué)板通電。從執(zhí)行文件下載到單片機(jī)的那個(gè)時(shí)刻開(kāi)始,程序就開(kāi)始運(yùn)行。單片機(jī)向計(jì)算機(jī)發(fā)送信息??衫么谡{(diào)試軟件查看單片機(jī)輸出信息,“Reset”按鈕可讓下載到單片機(jī)內(nèi)的程序重新運(yùn)行一次。4、做完實(shí)驗(yàn)斷開(kāi)電源,將開(kāi)關(guān)撥到“0”檔,系統(tǒng)在不使用時(shí)沒(méi)有消耗電能,電池可以用的更久。拆卸串并口線(xiàn)還原。四、實(shí)驗(yàn)程序1、教材程序HelloRoBot.c

6、。2、利用while循環(huán)與delay_nms( )函數(shù)(毫秒級(jí)的延時(shí))編程:每秒發(fā)送一個(gè)信息(內(nèi)容為英文自己定),通過(guò)串口顯示在計(jì)算機(jī)上。delay_nms( )函數(shù)在BoeBot.h頭文件中有定義。即#include,編譯時(shí)系統(tǒng)講根據(jù)頭文件自動(dòng)將延時(shí)函數(shù)插入到程序中。五、實(shí)驗(yàn)報(bào)告要求1、按要求:每秒發(fā)送一個(gè)信息(內(nèi)容為英文自己定),通過(guò)串口顯示在計(jì)算機(jī)上,進(jìn)行程序設(shè)計(jì)。2、程序調(diào)試心得。3、觀察到的程序運(yùn)行效果并加以分析。六、思考題1、什么是單片機(jī)?2、MCS51、8051、C51、AT89S52之間是什么關(guān)系?3、寶貝車(chē)機(jī)器人采用的AT89S52單片機(jī)的特點(diǎn)是什么?4、#include頭文

7、件的作用是什么? 5、程序HelloRoBot.c中while(1);的作用是什么?注:實(shí)驗(yàn)操作現(xiàn)場(chǎng)檢查。實(shí)驗(yàn)二 C51接口與伺服電機(jī)控制一、實(shí)驗(yàn)?zāi)康?、理解和掌握C51單片機(jī)的輸入輸出接口的特性; 2、理解機(jī)器人伺服電機(jī)PWM調(diào)速原理, C語(yǔ)言編程輸出脈沖序列控制機(jī)器人輪子運(yùn)動(dòng)。二、實(shí)驗(yàn)設(shè)備及軟件寶貝車(chē)機(jī)器人、ISP下載線(xiàn)、串行接口、并行接口、計(jì)算機(jī)、電源、螺絲刀、紅色發(fā)光二極管2個(gè)和470電阻2個(gè)。Keil uVision2 IDE集成開(kāi)發(fā)環(huán)境、SL ISP下載軟件、串口調(diào)試軟件。三、實(shí)驗(yàn)內(nèi)容和步驟1、用C51單片機(jī)的P1口的位輸出高低電平控制LED發(fā)光二極管的閃爍??唇滩母戒汣,關(guān)于面包

8、板及LED的介紹。面包板上共有18行插座,通過(guò)中間槽分為兩列。每一行由5個(gè)插座組成,這5個(gè)插座在面包板上是電氣相連的,如將兩根導(dǎo)線(xiàn)分別插入五口插座行的任意兩個(gè)插座中,它們都是電氣相連的?!癎ND”對(duì)應(yīng)于教學(xué)板的接地端,“Vcc”指校準(zhǔn)的+5V電壓。發(fā)光二極管(如圖2.1)是單向?qū)щ姷碾娮庸?,長(zhǎng)腳為正極,短腳為負(fù)極,必須連接正確,否則不能正常工作。通過(guò)5mA左右即可發(fā)光,電流越大,其亮度越強(qiáng),但若電流過(guò)大,會(huì)燒毀二極管。給發(fā)光二極管串聯(lián)一個(gè)電阻的目的是限制通過(guò)發(fā)光二極管的電流不要太大。 圖2.1 LED零件圖 圖2.2發(fā)光二極管與I/O腳P1_0的連接色環(huán)電阻為五色,用五條色環(huán)表示電阻的阻值大小

9、。黑0 棕1 紅2 橙3 黃4 綠5 藍(lán)6 紫7 灰8 白9 金、銀表示誤差具體如下:l 第一條色環(huán):阻值的第一位數(shù)字;l 第二條色環(huán):阻值的第二位數(shù)字;l 第三條色環(huán):阻值的第三未數(shù)字;l 第四條色環(huán):阻值乘數(shù)的10的冪數(shù);l 第五條色環(huán):誤差(常見(jiàn)是棕色,誤差為1%)。由此,470電阻為黃紫黑黑棕。參考教材一個(gè)發(fā)光二極管閃爍的LED電路搭建(如圖2.2)及程序HighLowLed.c。注意,在教學(xué)底板上搭建電路時(shí)要斷開(kāi)電源。教材有程序是兩個(gè)LED同時(shí)閃爍,要求修改程序讓兩個(gè)LED交替亮或者滅,也可以改變延時(shí)函數(shù)參數(shù)n的值,改變LED閃爍頻率?!就卣褂?xùn)練】實(shí)現(xiàn)4個(gè)或更多LED流水燈控制,對(duì)應(yīng)

10、流水燈從全滅到一個(gè)一個(gè)亮或者對(duì)應(yīng)流水燈從全亮到一個(gè)一個(gè)滅。編程方法與兩個(gè)LED閃爍類(lèi)似,接入的LED二極管繼續(xù)接在面包板左側(cè)其他的端口位上。注意,程序控制各引腳輸出高低電平要與所接的端口要一一對(duì)應(yīng)起來(lái)。2、兩伺服電機(jī)調(diào)零。在操作之前,先確認(rèn)一下機(jī)器人兩個(gè)伺服電機(jī)的電源控制線(xiàn)(如圖2.3)是否已經(jīng)正確的連接到C51單片機(jī)教學(xué)板的兩個(gè)專(zhuān)用電機(jī)控制接口上。P1_1引腳控制左邊電機(jī),P1_0引腳控制右邊電機(jī),在電路板上我們分別采用W、R、B來(lái)表示信號(hào)線(xiàn)、電源線(xiàn)和地,電機(jī)控制線(xiàn)顏色與教學(xué)板接口對(duì)應(yīng)字母一致(白紅黑對(duì)應(yīng)WRB)。圖2.3伺服電機(jī)實(shí)物圖 圖2.4 電壓“占空比”與平均電壓關(guān)系電機(jī)調(diào)速應(yīng)用PW

11、M(脈寬調(diào)制)基本原理,通過(guò)控制固定電壓的直流電源開(kāi)關(guān)頻率改變負(fù)載兩端的電壓。在PWM驅(qū)動(dòng)控制的調(diào)整系統(tǒng)中,按一個(gè)固定的頻率來(lái)接通和斷開(kāi)電源,并根據(jù)需要改變一個(gè)周期內(nèi)“接通”和“斷開(kāi)”時(shí)間的長(zhǎng)短。通過(guò)改變直流電機(jī)電樞上電壓的“占空比”來(lái)改變平均電壓的大小,從而控制電動(dòng)機(jī)的轉(zhuǎn)速。如圖2.4,在脈沖作用下,當(dāng)電機(jī)通電時(shí),速度增加;電機(jī)斷電時(shí),速度逐漸減少。只要按一定規(guī)律,改變通、斷電的時(shí)間,即可讓電機(jī)轉(zhuǎn)速得到控制。高電平持續(xù)的時(shí)間控制電機(jī)轉(zhuǎn)速,即脈沖寬度控制連續(xù)旋轉(zhuǎn)電機(jī)速度和方向。將時(shí)間間隔為20ms,脈寬為1.5ms的一系列脈沖稱(chēng)為零點(diǎn)標(biāo)定信號(hào),電機(jī)轉(zhuǎn)速為零,機(jī)器人輪子靜止不動(dòng)。如果電機(jī)沒(méi)有進(jìn)行

12、零點(diǎn)標(biāo)定,機(jī)器人輪子會(huì)轉(zhuǎn)動(dòng),如圖2.5所示,用螺絲刀輕輕調(diào)節(jié)馬達(dá)上的電位器,直到馬達(dá)停止轉(zhuǎn)動(dòng)。如電機(jī)已經(jīng)完成了零點(diǎn)調(diào)節(jié),不會(huì)轉(zhuǎn)動(dòng)。但是損壞了或有缺陷的電機(jī)有時(shí)也不轉(zhuǎn)動(dòng)。繼續(xù)檢測(cè):l 當(dāng)高電平持續(xù)時(shí)間為1.3ms時(shí),電機(jī)順時(shí)針全速旋轉(zhuǎn);l 當(dāng)高電平持續(xù)時(shí)間為1.7ms時(shí),電機(jī)逆時(shí)針全速旋轉(zhuǎn);l 當(dāng)高電平持續(xù)時(shí)間為1.3ms1.5ms之間時(shí),電機(jī)順時(shí)針旋轉(zhuǎn);l 當(dāng)高電平持續(xù)時(shí)間為1.5ms1.7ms之間時(shí),電機(jī)逆時(shí)針旋轉(zhuǎn)。 圖2.5.1經(jīng)過(guò)孔把螺絲刀插入電位器 圖2.5.2輕輕的旋轉(zhuǎn)螺絲刀調(diào)節(jié)電位器3、測(cè)試電機(jī),改變脈沖寬度控制機(jī)器人運(yùn)動(dòng)速度和方向。如圖2.6,定義機(jī)器人的前、后、左、右四個(gè)方向。

13、例程中使用printf函數(shù)是為了起提示作用,若覺(jué)得串口線(xiàn)影響機(jī)器人的運(yùn)動(dòng),可以不用此函數(shù)。將程序下載到單片機(jī),關(guān)閉機(jī)器人電源開(kāi)關(guān),斷開(kāi)ISP下載線(xiàn),將開(kāi)關(guān)撥到“2”檔,觀察寶貝車(chē)運(yùn)動(dòng)情況。圖2.6 機(jī)器人及其前進(jìn)方向的定義四、實(shí)驗(yàn)程序1、教材有程序是兩個(gè)LED同時(shí)閃爍及一個(gè)LED閃爍(程序HighLowLed.c),要求修改程序讓兩個(gè)LED交替閃爍,也可以改變延時(shí)函數(shù)參數(shù)n的值,改變LED閃爍頻率。*編程實(shí)現(xiàn)4個(gè)或更多LED流水燈控制,對(duì)應(yīng)流水燈從全滅到一個(gè)一個(gè)亮或者對(duì)應(yīng)流水燈從全亮到一個(gè)一個(gè)滅。2、編程實(shí)現(xiàn)兩伺服電機(jī)調(diào)零,可以分別調(diào)零,也可一起調(diào)零。教材有代碼實(shí)現(xiàn)右輪調(diào)零,注意編程的完整性。

14、3、驗(yàn)證BothServosThreeSeconds.c是否向前進(jìn)3s,后退3s。并根據(jù)此程序按照實(shí)驗(yàn)報(bào)告要求編程。五、實(shí)驗(yàn)報(bào)告要求1、編程及電路原理圖實(shí)現(xiàn)兩個(gè)LED交替閃爍,觀察到的運(yùn)行效果并加以分析,程序調(diào)試心得。有興趣的同學(xué)還可以完成4個(gè)或更多LED流水燈控制,對(duì)應(yīng)流水燈從全滅到一個(gè)一個(gè)亮或者對(duì)應(yīng)流水燈從全亮到一個(gè)一個(gè)滅。要求編程及電路原理圖,觀察到的運(yùn)行效果并加以分析,程序調(diào)試心得。2、編程實(shí)現(xiàn)兩伺服電機(jī)調(diào)零,可以分別調(diào)零,也可一起調(diào)零,觀察到的運(yùn)行效果并加以分析,程序調(diào)試心得。3、控制兩個(gè)電機(jī)的delay_nus函數(shù)的參數(shù)n有不同的組合,各種組合的運(yùn)動(dòng)狀況填寫(xiě)下表。P1_1P1_0描

15、述運(yùn)動(dòng)狀況17001300全速,P1_1電機(jī)逆時(shí)針,P1_0電機(jī)順時(shí)針1300170017001700130013001500170015001300130015001700150015001500兩個(gè)電機(jī)都靜止六、思考題1、LED閃爍的工作原理,即引腳輸出高低電平信號(hào),發(fā)光二極管會(huì)滅或者亮的原因是什么?2、LED閃爍的實(shí)驗(yàn)中,逐漸減小延時(shí)函數(shù)參數(shù)n的值,還能看到LED閃爍嗎?為什么?3、LED閃爍的實(shí)驗(yàn)中,分別將開(kāi)關(guān)撥到“1”與“2”,看實(shí)驗(yàn)現(xiàn)象有什么區(qū)別?分析原因。4、將電機(jī)調(diào)零的程序下載到單片機(jī),開(kāi)關(guān)撥到 “2”,按“Reset”按鈕,輪子仍轉(zhuǎn)動(dòng),不能完全停下來(lái),試分析有哪些原因造成的?

16、 5、編程給與P1_1連接的左輪發(fā)出脈寬為1.7ms,與P1_0連接的右輪發(fā)出脈寬1.3ms,觀察到寶貝車(chē)后退,分析是什么原因引起的?注:實(shí)驗(yàn)操作現(xiàn)場(chǎng)檢查。實(shí)驗(yàn)三 C語(yǔ)言函數(shù)與機(jī)器人巡航控制一、實(shí)驗(yàn)?zāi)康?、掌握對(duì)單片機(jī)編程使機(jī)器人做基本的巡航動(dòng)作:向前,向后,左轉(zhuǎn),右轉(zhuǎn)和原地旋轉(zhuǎn)。通過(guò)測(cè)試機(jī)器人脈沖數(shù)與機(jī)器人運(yùn)動(dòng)距離的關(guān)系,實(shí)現(xiàn)機(jī)器人的精確動(dòng)作。 2、掌握編寫(xiě)程序時(shí)機(jī)器人由突然啟動(dòng)或停止變?yōu)橹鸩郊铀倩驕p速運(yùn)動(dòng)。3、寫(xiě)一些執(zhí)行基本巡航動(dòng)作的函數(shù),每一個(gè)函數(shù)都能夠被多次調(diào)用。4、將復(fù)雜巡航運(yùn)動(dòng)記錄在數(shù)組中,編寫(xiě)程序執(zhí)行這些巡航運(yùn)動(dòng)。二、實(shí)驗(yàn)設(shè)備及軟件寶貝車(chē)機(jī)器人、ISP下載線(xiàn)、串行接口、并行接口、

17、計(jì)算機(jī)、電源。Keil uVision2 IDE集成開(kāi)發(fā)環(huán)境、SL ISP下載軟件、串口調(diào)試軟件。三、實(shí)驗(yàn)內(nèi)容和步驟1、驗(yàn)證教材程序ForwardLeftRightBackward.c看機(jī)器人是否向前、左轉(zhuǎn)、右轉(zhuǎn)及向后走。如果寶貝車(chē)向前運(yùn)動(dòng)的過(guò)程輕微向左或右偏移,不是一條直線(xiàn)。結(jié)果就是左輪與右輪程序上是以全速行駛,實(shí)際輸出有速度差,要么左輪速度太慢,要么右輪速度太慢。讓輪子加速不太實(shí)際,但是減小輪子的速度就可以解決問(wèn)題電機(jī)速度是脈沖寬度即程序中延時(shí)函數(shù)delay_nus的參數(shù)n決定的。n越接近1500,電機(jī)轉(zhuǎn)速越慢。要重復(fù)試驗(yàn)得到一個(gè)比較準(zhǔn)確的輸出。將確定好的沿直線(xiàn)運(yùn)動(dòng)的參數(shù)更新到程序Forw

18、ardLeftRightBackward.c中相應(yīng)的值。利用for循環(huán)控制電機(jī)的運(yùn)行時(shí)間,由小車(chē)運(yùn)動(dòng)形式?jīng)Q定輸出距離或角度。例程中for循環(huán)的循環(huán)次數(shù)為65,小車(chē)運(yùn)行時(shí)間為1.5s,運(yùn)行距離減半。for循環(huán)的循環(huán)次數(shù)為26,電機(jī)的運(yùn)行時(shí)間決定小車(chē)旋轉(zhuǎn)的角度。調(diào)整for循環(huán)的循環(huán)次數(shù)得到非常接近你想要的旋轉(zhuǎn)角度。由于每個(gè)小車(chē)的情況不一樣,在向左轉(zhuǎn)與右轉(zhuǎn)中for循環(huán)的循環(huán)次數(shù)增加或減少電機(jī)的轉(zhuǎn)角,使寶貝車(chē)旋轉(zhuǎn)期望的角度,例如旋轉(zhuǎn)90度。如果發(fā)現(xiàn)一個(gè)值使旋轉(zhuǎn)超過(guò)90,而另一個(gè)使旋轉(zhuǎn)小于90,嘗試選擇一個(gè)使其旋轉(zhuǎn)更多的值,然后稍微減小電機(jī)速度。測(cè)試一下你的小車(chē)要循環(huán)多少次才能旋轉(zhuǎn)90度。在轉(zhuǎn)彎半徑較大

19、時(shí),可以采用一個(gè)電機(jī)增速另一個(gè)電機(jī)減速的方法轉(zhuǎn)彎。由于小車(chē)結(jié)構(gòu)的影響,這種方法轉(zhuǎn)彎較慢,轉(zhuǎn)彎半徑較大,效果受運(yùn)動(dòng)速度的影響大。在需要轉(zhuǎn)彎半徑較小時(shí),可以采用一個(gè)電機(jī)轉(zhuǎn)動(dòng),而另一個(gè)靜止的方法。兩個(gè)電機(jī)等速反向轉(zhuǎn)動(dòng)可以實(shí)現(xiàn)原地轉(zhuǎn)彎。測(cè)試寶貝車(chē)速度。將寶貝車(chē)放在尺子旁邊,確保輪子接觸的地面與尺子的0厘米對(duì)齊在一條線(xiàn)上,按復(fù)位鍵重新運(yùn)行程序,讓寶貝車(chē)向前走1秒鐘,測(cè)量從出發(fā)點(diǎn)到機(jī)器人停下來(lái)所接觸的地面距離,測(cè)量結(jié)果就是以厘米/s為單位的。2、將加速或減速與基本巡航動(dòng)作結(jié)合起來(lái),使機(jī)器人的每一個(gè)動(dòng)作都能夠勻加速或勻減速。參考教材程序StartAndStopWithRamping.c及相似代碼更改Forw

20、ardLeftRightBackward.c。3、教材程序MovementsWithFuntions.c、MovementsWithOneFuntion.c運(yùn)行結(jié)果與ForwardLeftRightBackward.c產(chǎn)生的效果是相同的,用函數(shù)調(diào)用簡(jiǎn)化運(yùn)動(dòng)程序。修改MovementsWithOneFuntion.c使機(jī)器人走一個(gè)正方形。4、驗(yàn)證程序NavigationWithSwitch.c是否走了一個(gè)矩形。使用數(shù)組或調(diào)用函數(shù)編寫(xiě)程序,使機(jī)器人按你的想法運(yùn)動(dòng),實(shí)現(xiàn)較為復(fù)雜的運(yùn)動(dòng)?!就卣褂?xùn)練】編程使履帶坦克機(jī)器人、相撲機(jī)器人、爬蟲(chóng)機(jī)器人巡航控制。四、實(shí)驗(yàn)程序1、驗(yàn)證教材程序ForwardLeft

21、RightBackward.c。2、編程反復(fù)測(cè)試一下小車(chē)要循環(huán)多少次才能旋轉(zhuǎn)精確的90度。3、編程測(cè)試寶貝車(chē)速度,測(cè)量結(jié)果就是以厘米/s為單位的。4、參考教材程序StartAndStopWithRamping.c及相似代碼,更改ForwardLeftRightBackward.c,使機(jī)器人的每一個(gè)動(dòng)作都能夠勻加速或勻減速。5、修改MovementsWithOneFuntion.c使機(jī)器人走一個(gè)正方形。6、使用數(shù)組或調(diào)用函數(shù)編寫(xiě)程序,使機(jī)器人按你的想法運(yùn)動(dòng),實(shí)現(xiàn)較為復(fù)雜的運(yùn)動(dòng)。五、實(shí)驗(yàn)報(bào)告要求1、程序設(shè)計(jì)小車(chē)要循環(huán)多少次才能旋轉(zhuǎn)精確的90度,觀察到的運(yùn)行效果并加以分析,程序調(diào)試心得。2、更改Fo

22、rwardLeftRightBackward.c,使機(jī)器人的每一個(gè)動(dòng)作都能夠勻加速或勻減速。寫(xiě)出程序,觀察到的運(yùn)行效果并加以分析,程序調(diào)試心得。3、修改MovementsWithOneFuntion.c使機(jī)器人走一個(gè)正方形。寫(xiě)出程序,觀察到的運(yùn)行效果并加以分析,程序調(diào)試心得。4、使用數(shù)組或調(diào)用函數(shù)編寫(xiě)程序,使機(jī)器人按你的想法運(yùn)動(dòng),實(shí)現(xiàn)較為復(fù)雜的運(yùn)動(dòng)。寫(xiě)出程序,觀察到的運(yùn)行效果并加以分析,程序調(diào)試心得。六、思考題1、在程序ForwardLeftRightBackward.c中,向左轉(zhuǎn)與右轉(zhuǎn)的for循環(huán)的循環(huán)次數(shù)為26,這是什么意思?程序運(yùn)行效果是怎樣的?2、機(jī)器人完成各種巡航動(dòng)作的過(guò)程中,每次啟

23、動(dòng)和停止時(shí),動(dòng)作太快,幾乎傾倒,為什么會(huì)這樣呢?采用什么方法可以解決這種問(wèn)題?3、讓小車(chē)實(shí)現(xiàn)轉(zhuǎn)彎的方法有哪些?注:實(shí)驗(yàn)操作現(xiàn)場(chǎng)檢查。實(shí)驗(yàn)四 C51接口與觸覺(jué)導(dǎo)航一、實(shí)驗(yàn)?zāi)康?、接觸型傳感器作為輸入反饋與C51單片機(jī)的編程實(shí)現(xiàn)。 2、編程使機(jī)器人基于胡須導(dǎo)航,條件判斷語(yǔ)句的嵌套與機(jī)器人的人工智能決策的編程使機(jī)器人逃離進(jìn)入墻角死區(qū)。二、實(shí)驗(yàn)設(shè)備及軟件寶貝車(chē)機(jī)器人、ISP下載線(xiàn)、串行接口、并行接口、計(jì)算機(jī)、電源、安裝機(jī)器人胡須,所需硬件如圖4.1。元件清單: (1) 胡須狀金屬絲2根; (2) 平頭M3x22盤(pán)頭螺釘2個(gè); (3) 13mm圓形立柱2個(gè);(4) M3尼龍墊圈2個(gè); (5) 3-pin

24、公-公接頭2個(gè);(6) 220電阻2個(gè); (7) 10k電阻2個(gè)。 圖4.1 胡須硬件Keil uVision2 IDE集成開(kāi)發(fā)環(huán)境、SL ISP下載軟件、串口調(diào)試軟件。三、實(shí)驗(yàn)內(nèi)容和步驟1、通過(guò)布置恰當(dāng)?shù)碾娐?,在機(jī)器人前端安裝并測(cè)試一個(gè)稱(chēng)為胡須的觸覺(jué)開(kāi)關(guān),對(duì)C51單片機(jī)編程來(lái)監(jiān)視觸覺(jué)開(kāi)關(guān)的狀態(tài)。安裝并測(cè)試機(jī)器人胡須見(jiàn)圖4.2。確定兩條胡須比較靠近,但又不接觸面包板上的3-pin頭,推薦保持3mm的距離。參考接線(xiàn)圖4.3,搭建胡須電路。色環(huán)電阻你會(huì)讀嗎?(提示:棕紅橙黃綠,藍(lán)紫灰白黑)220電阻(紅紅黑黑棕),10k電阻(棕黑黑紅棕)。注意:右邊胡須狀態(tài)信息輸入是通過(guò)P1口的第4引腳完成,左邊

25、胡須狀態(tài)信息輸入是通過(guò)P2口的第3引腳完成。也可以接其他引腳,注意電路與程序要匹配。圖4.2 安裝機(jī)器人胡須 圖4.3 胡須電路示意圖 圖4.4是實(shí)際的參考接線(xiàn)圖,安裝好的觸覺(jué)胡須的機(jī)器人如圖4.5。 圖4.4 胡須接線(xiàn)圖 圖4.5安裝好觸覺(jué)胡須的機(jī)器人單片機(jī)AT89S52的四個(gè)端口P0、P1、P2和P3是可以按位來(lái)操作,從低到高依次為第0口、第1口第7口,書(shū)寫(xiě)分別為PX.0、PX.1、PX.7(X取0到3)。P1&0x10:取P1.4P1P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.00x1000010000P2&0x08:取P2.3P2P2.7P2.6P2.5P2.4P2.

26、3P2.2P2.1P2.00x0800001000P1&0x10和P2&0x08分別提取了P1.4和P2.3的值,屏蔽了其他位。測(cè)試胡須源程序TestWhiskers.c。要用到調(diào)試終端,當(dāng)程序運(yùn)行時(shí)要確保串口已經(jīng)接好。弄清哪條胡須是左胡須,哪條是右胡須。當(dāng)胡須沒(méi)有被碰到,使引腳電壓為5V,胡須狀態(tài)為1;當(dāng)胡須被碰到時(shí),使引腳電壓為0V,胡須狀態(tài)為0。2、通過(guò)胡須導(dǎo)航。機(jī)器人行走時(shí),如果有胡須被觸動(dòng),意味著碰到了什么。嘗試讓寶貝車(chē)向前行走,當(dāng)在其路線(xiàn)上遇到障礙物時(shí),它將后退、旋轉(zhuǎn)并向另一個(gè)方向行走以避開(kāi)障礙物。具體程序RoamingWithWhiskers.c。可以調(diào)整Left _Turn()

27、和Right_Turn ()子程序中for循環(huán)的循環(huán)次數(shù)增加或減少電機(jī)的轉(zhuǎn)角,使寶貝車(chē)旋轉(zhuǎn)期望的角度。在空間比較狹小的地方,可以調(diào)整程序Backward()中for循環(huán)的循環(huán)次數(shù)來(lái)減少后退的距離。3、基于人工智能決策的編程使機(jī)器人逃離進(jìn)入墻角死區(qū)。編程使機(jī)器人逃離進(jìn)入墻角死區(qū)。當(dāng)寶貝車(chē)進(jìn)入墻角時(shí),左胡須觸墻,于是它倒退,右轉(zhuǎn)。當(dāng)小車(chē)再向前行走,右胡須觸墻,于是再倒退,左轉(zhuǎn)。然后它又前進(jìn)又會(huì)碰到左墻,再次碰到右墻等,直到有人把它從困境中解救出來(lái)。使用含ifelse嵌套語(yǔ)句用于探測(cè)連續(xù)的、交替出現(xiàn)的胡須觸動(dòng)。編程使寶貝車(chē)在行走時(shí),輪流觸動(dòng)它的胡須,胡須在經(jīng)過(guò)四次觸動(dòng)之后,寶貝車(chē)會(huì)進(jìn)行后退、旋轉(zhuǎn)18

28、0離開(kāi)墻角。具體程序EscapingCorners.c。嘗試增加或減小變量counter的數(shù)值,觀察機(jī)器人在正常行走過(guò)程中是否有任何不同?!就卣褂?xùn)練】觸覺(jué)導(dǎo)航機(jī)器人走迷宮競(jìng)賽。四、實(shí)驗(yàn)報(bào)告要求1、搭建觸覺(jué)導(dǎo)航電路,測(cè)試胡須源程序TestWhiskers.c。畫(huà)出胡須電路示意圖,觀察到的運(yùn)行效果并加以分析,程序調(diào)試心得。2、程序RoamingWithWhiskers.c觸覺(jué)導(dǎo)航的實(shí)現(xiàn),說(shuō)明胡須機(jī)器人怎樣行走。3、程序EscapingCorners.c是如何工作的。五、思考題1、觸覺(jué)導(dǎo)航的原理是什么?通過(guò)胡須導(dǎo)航時(shí)如何避開(kāi)障礙物?2、語(yǔ)句Return(P1&0x10)?1:0的意義是什么?試作圖說(shuō)

29、明。3、語(yǔ)句if(P1_4state()=0)&( P2_3state()=0)Backward();Left_Turn();Left_Turn(); 的含義是什么?4、在胡須導(dǎo)航程序中函數(shù)Forward()有變動(dòng),只發(fā)送一個(gè)脈沖,然后返回,這樣的好處是什么?5、是否有且只有一根胡須被觸動(dòng),如何通過(guò)獲取左、右胡須的狀態(tài)作出判斷?寫(xiě)出具體的判斷語(yǔ)句。注:實(shí)驗(yàn)操作現(xiàn)場(chǎng)檢查。實(shí)驗(yàn)五 C51接口與紅外線(xiàn)導(dǎo)航一、實(shí)驗(yàn)?zāi)康?、掌握紅外傳感器作為輸入反饋與單片機(jī)的編程實(shí)現(xiàn),讓機(jī)器人的C51單片機(jī)可以收發(fā)紅外光信號(hào)。 2、使用紅外線(xiàn)發(fā)射和接收器件探測(cè)道路,編程實(shí)現(xiàn)高性能的IR導(dǎo)航和邊沿探測(cè)。二、實(shí)驗(yàn)設(shè)備及軟件

30、寶貝車(chē)機(jī)器人、ISP下載線(xiàn)、串行接口、并行接口、計(jì)算機(jī)、電源。所需元件:(1) 兩個(gè)紅外檢測(cè)器,如圖5.1; (2) 兩個(gè)IR LED,如圖5.2; (3) 四個(gè)470電阻 (黃紫黑黑棕);(4) 兩個(gè)9013三極管,如圖5.3。 圖5.1紅外檢測(cè)器 圖5.2紅外線(xiàn)二極管LED發(fā)射器 圖5.3.1 三極管9013管腳圖 圖5.3.2 三極管9013結(jié)構(gòu)圖及符號(hào)圖Keil uVision2 IDE集成開(kāi)發(fā)環(huán)境、SL ISP下載軟件、串口調(diào)試軟件。三、實(shí)驗(yàn)內(nèi)容和步驟使用紅外光來(lái)照射機(jī)器人前進(jìn)的路線(xiàn),確定何時(shí)有光線(xiàn)從被探測(cè)目標(biāo)反射回來(lái),通過(guò)檢測(cè)反射回來(lái)的紅外光可以確定前方是否有物體。機(jī)器人使用紅外線(xiàn)

31、二極管LED發(fā)射紅外光線(xiàn),紅外檢測(cè)器相當(dāng)于眼睛,檢測(cè)到反射回來(lái)的紅外光線(xiàn),并發(fā)出信號(hào)來(lái)表明檢測(cè)到從物體反射回紅外線(xiàn),如圖5.4。紅外線(xiàn)(IR)接收/檢測(cè)器有內(nèi)置的光濾波器,除了需要檢測(cè)980nm波長(zhǎng)的紅外線(xiàn)外,幾乎不允許其他光通過(guò)。紅外檢測(cè)器還有一個(gè)電子濾波器,只允許大約38.5kHz的電信號(hào)通過(guò)。圖5.4 用紅外探測(cè)障礙物 1、搭建并測(cè)試IR發(fā)射和探測(cè)器對(duì),如圖5.5。注意斷開(kāi)主板和電機(jī)的電源。圖5.5左側(cè)和右側(cè)IR組電路原理圖圖5.6.1 左右IR組實(shí)物參考圖圖5.6.2 左右IR組電路搭建實(shí)物參考圖本任務(wù)中,發(fā)送持續(xù)1ms的 38.5kHz的紅外光,如果紅外光被小車(chē)路徑上的物體反射回來(lái),

32、紅外檢測(cè)器將給微控制器發(fā)送一個(gè)信號(hào),讓它知道已經(jīng)檢測(cè)到反射回的紅外光。當(dāng)沒(méi)有IR信號(hào)返回時(shí),探測(cè)器的輸出狀態(tài)為高電平。當(dāng)它探測(cè)到被物體反射的38.5kHz的紅外信號(hào)時(shí),它的輸出為低電平。放一個(gè)物體,比如手或一張紙,距離IR組大約1英寸。驗(yàn)證當(dāng)你放一個(gè)物體在IR組前時(shí),調(diào)試終端是否會(huì)顯示0,當(dāng)你將物體移開(kāi)時(shí),它是否顯示1。程序TestLeftIrPair.c僅驗(yàn)證左邊IR組,要改寫(xiě)程序驗(yàn)證右邊IR組。或者可以同時(shí)驗(yàn)證兩邊的IR組,需要改寫(xiě)程序與之匹配。如果調(diào)試終端顯示的不是預(yù)料的值,檢查電路和輸入的程序。如果你總是得到0,甚至當(dāng)沒(méi)有物體在機(jī)器人前面時(shí)也是0,可能是附近的物體反射了紅外線(xiàn)。機(jī)器人前

33、面的桌面是常見(jiàn)的始作俑者。調(diào)整紅外發(fā)射器的角度,使IR LED和探測(cè)器不會(huì)受桌面等物體的影響。如果機(jī)器人前面沒(méi)有物體時(shí)絕大多數(shù)時(shí)間讀數(shù)是1,但是偶爾是0,這可能是附近的熒光燈的干擾。關(guān)掉附近的熒光燈,重新測(cè)試。注意:保持寶貝車(chē)機(jī)器人與串口電纜的連接,因?yàn)槟銓⒂谜{(diào)式終端來(lái)測(cè)試你的IR組。2、IR檢測(cè)器探測(cè)和避開(kāi)障礙物IR檢測(cè)器的輸出與觸須的輸出非常相象。沒(méi)有檢測(cè)到物體時(shí),輸出為高電平,檢測(cè)到物體時(shí),輸出為低電平。采取與胡須相同的導(dǎo)航策略。3、高性能的IR導(dǎo)航,在每個(gè)脈沖之間采樣以避免碰撞。在觸須導(dǎo)航里使用的預(yù)編程機(jī)動(dòng)動(dòng)作很好,但是在使用IR LED和探測(cè)器時(shí)會(huì)造成不必要的遲鈍。發(fā)送脈沖給電機(jī)之前

34、檢查障礙物,寶貝車(chē)持續(xù)使用電機(jī)驅(qū)動(dòng)脈沖和探測(cè),直到它繞開(kāi)障礙物,然后它會(huì)繼續(xù)發(fā)送向前行走的脈沖,這樣可以大大改善寶貝車(chē)的行走性能。4、用絕緣帶模擬桌子的邊沿,邊沿探測(cè)編程。圖5.7 俯視的IR組 圖5.8 模擬桌面邊沿的絕緣帶邊寶貝車(chē)在桌子上行走,IR檢測(cè)器向下監(jiān)測(cè)桌子表面。只要兩個(gè)IR探測(cè)器測(cè)到桌面,寶貝車(chē)向前行走。如果有一邊的IR探測(cè)器沒(méi)有發(fā)現(xiàn)桌面(即發(fā)現(xiàn)邊沿),寶貝車(chē)會(huì)向另一個(gè)方向轉(zhuǎn)動(dòng)。四、實(shí)驗(yàn)報(bào)告要求1、程序TestLeftIrPair.c僅驗(yàn)證左側(cè)IR組電路搭接是否正確,驗(yàn)證右側(cè)IR組電路搭接是否正確可以參考程序TestLeftIrPair.c更改相應(yīng)的引腳。需要改寫(xiě)程序要求同時(shí)驗(yàn)證

35、兩側(cè)的IR組,注意引腳要與左側(cè)右側(cè)IR組電路原理圖匹配。采用空函數(shù)產(chǎn)生延時(shí)的程序片斷替代延時(shí)函數(shù)delay_nus(13)。畫(huà)出左側(cè)右側(cè)IR組電路原理圖,觀察到的運(yùn)行效果并加以分析,程序調(diào)試心得及如何排錯(cuò)的方法。 2、高性能的IR導(dǎo)航,觀察到的運(yùn)行效果并加以分析,程序調(diào)試心得。3、邊沿探測(cè),觀察到的運(yùn)行效果并加以分析,程序調(diào)試心得。五、思考題1、三極管9013的工作原理及在IR組中的作用。2、紅外線(xiàn)導(dǎo)航的原理是什么?通過(guò)紅外線(xiàn)導(dǎo)航時(shí)如何避開(kāi)障礙物?3、dowhile語(yǔ)句與while語(yǔ)句的聯(lián)系與區(qū)別。高性能的IR導(dǎo)航程序FastIrRoaming.c中dowhile語(yǔ)句是否可以替換while語(yǔ)句

36、呢?4、邊沿探測(cè)的原理是什么?躲避障礙物與在桌面行走而不走到桌邊兩個(gè)實(shí)驗(yàn)卻使用同樣IR組電路原理圖進(jìn)行探測(cè),分析一下其中的核心道理。注:實(shí)驗(yàn)操作現(xiàn)場(chǎng)檢查。實(shí)驗(yàn)六 C51定時(shí)器與機(jī)器人的距離檢測(cè)一、實(shí)驗(yàn)?zāi)康?、掌握定時(shí)/計(jì)數(shù)器的應(yīng)用及編程實(shí)現(xiàn)。 2、機(jī)器人紅外測(cè)距及跟隨策略的實(shí)現(xiàn)。二、實(shí)驗(yàn)設(shè)備及軟件寶貝車(chē)機(jī)器人、ISP下載線(xiàn)、串行接口、并行接口、計(jì)算機(jī)、電源。Keil uVision2 IDE集成開(kāi)發(fā)環(huán)境、SL ISP下載軟件、串口調(diào)試軟件。三、實(shí)驗(yàn)內(nèi)容及步驟1、單片機(jī)AT89S52的定時(shí)/計(jì)數(shù)器提供更精確的時(shí)間。具體見(jiàn)教材。搭建LED的測(cè)試電路如圖6.1。程序TimeApplication.c

37、與P1_0連接的LED每隔0.4ms閃爍一次。由于LED燈閃爍頻率過(guò)快,人的視覺(jué)反應(yīng)不夠快。為了可以看見(jiàn)LED燈閃爍,改程序使得LED每隔130ms閃爍一次。同時(shí)搭接兩個(gè)LED燈,一個(gè)用delay_num(65)控制,一個(gè)用定時(shí)器控制延時(shí)。圖6.1 LED的測(cè)試電路2、機(jī)器人用紅外發(fā)射頻率掃描進(jìn)行編程做距離探測(cè)。用同前面一樣的IR LED/探測(cè)電路來(lái)探測(cè)距離。選擇5個(gè)不同頻率,然后從最高靈敏度到最低靈敏度進(jìn)行測(cè)試。首先嘗試最高靈敏度頻率,如果物體被探測(cè)到了,就讓僅次于它的高靈敏度頻率測(cè)試,觀察是否可以探測(cè)到。依賴(lài)于探測(cè)器不能再檢測(cè)到物體的紅外線(xiàn)頻率,就可以推斷物體的大概位置。舉例說(shuō)明如圖6.1機(jī)器人如何用紅外發(fā)射頻率做距離測(cè)試。在這個(gè)例子中,目標(biāo)物體在區(qū)域3。也就是說(shuō),發(fā)送35700Hz和38460Hz頻率能發(fā)現(xiàn)物體,發(fā)送29370Hz、31230Hz以及33050Hz頻率就不能發(fā)現(xiàn)物體。如果你移動(dòng)物體到區(qū)域2,那么發(fā)送33050Hz、35700Hz以及38460Hz可以發(fā)現(xiàn)物體,發(fā)送29370Hz和31230Hz頻率不能發(fā)現(xiàn)物體。圖6.1 頻率和探測(cè)區(qū)域運(yùn)行程序時(shí),在機(jī)器人前端放一張紙或卡片對(duì)兩個(gè)IR LED/探測(cè)器做距離探測(cè),改變紙片與機(jī)器人

溫馨提示

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

評(píng)論

0/150

提交評(píng)論