版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、機(jī)器人原理與制作實驗指導(dǎo)書華中科技大學(xué)文華學(xué)院機(jī)器人實驗室實驗一熟悉機(jī)器人與C51單片機(jī)硬件軟件一、實驗?zāi)康?、掌握寶貝車機(jī)器人用C51教學(xué)板與計算機(jī)硬件連接;2、熟悉及掌握C51系列單片機(jī)KeiluVisionIDE(集成開發(fā)環(huán)境)軟件、ISP下載軟件及串口調(diào)試終端的使用方法。二、實驗設(shè)備及軟件寶貝車機(jī)器人、ISP下載線、串行接口、并行接口、計算機(jī)、電源。KeiluVision2IDE集成開發(fā)環(huán)境、SLISP下載軟件、串口調(diào)試軟件。三、實驗內(nèi)容和步驟單片機(jī)控制的寶貝車機(jī)器人通過用并口通信交互由硬件系統(tǒng)與軟件系統(tǒng)相互結(jié)合組成的一個完整的智能控制系統(tǒng)。單片機(jī)必須與外圍設(shè)備及軟件組成一個完整的應(yīng)用
2、系統(tǒng)(如圖1.1)。1、熟悉寶貝車機(jī)器人的結(jié)構(gòu)組成(如圖1.2):小車底板、車輪、教學(xué)板、伺服電機(jī)、電池盒。這是寶貝車機(jī)器人的硬件系統(tǒng),它的微控制器(MCU)是由Atmel公司生產(chǎn)與51系列兼容的8位AT89S52單片機(jī)。口路外等接電及設(shè).二件+硬單片機(jī)圖1.1單片機(jī)應(yīng)用系統(tǒng)圖圖1.2采用C51單片機(jī)的機(jī)器人2、教學(xué)板指方便單片機(jī)與電源、ISP下載線、用口線以及各種傳感器和電機(jī)的連接制作的一個電路板(如圖1.3)。將寶貝車機(jī)器人與計算機(jī)硬件連接,并連接到電源。連接單片機(jī)教學(xué)板ISP接口到計算機(jī),以便程序下載;連接單片機(jī)教學(xué)板用行接口到計算機(jī),以便調(diào)試和交互;連接機(jī)器人到電池或者是供電電源。4圖
3、1.3C51單片機(jī)教學(xué)板一用行接口;一ISP接口;一電源接口;一三位開關(guān);一綠色LED電源指示燈;一AT89S52單片機(jī);一"Reset按鈕;一面包板;一專用電機(jī)控制接口插座3、運用C語言編程,運用編譯器編譯生成可執(zhí)行文件并下載到單片機(jī),用用口調(diào)試軟件查看單片機(jī)輸出信息。建立用戶文件夾,方便管理程序,拷入編譯所需頭文件。進(jìn)入編程系統(tǒng)(KeiluVision2IDE):1)新建項目工程(*uv2):Project-NewProject:,命名,保存在新建立的用戶文件夾內(nèi);選擇單片機(jī)生產(chǎn)公司及類型:Atmel、AT89S52。2)新建C程序文件:File-New;編輯好程序,保存為*.c
4、的文件。注意程序關(guān)鍵字的拼寫,英文標(biāo)點,字母的大小寫等。3)添加C程序到項目工程:SourceGroup1右鍵單擊一AddFilestoGroupSourceSourceGroup1前面出現(xiàn)十號,單擊它出現(xiàn)剛才添加的C程序文件名,單擊此C文件,Keil會自動識別關(guān)鍵字,并以不同的顏色提示用戶加以注意,這樣會使用戶少犯錯誤,有利于提高編程效率。4)生成執(zhí)行文件十六進(jìn)制目標(biāo)代碼文件(*hex):Target1右鍵單擊一Optionfortarget(Target1'-Output一選中“CreateHexFi:"一連接編譯生成可執(zhí)行文件*hex。編譯要求沒有錯誤產(chǎn)生,允許出現(xiàn)警告
5、。進(jìn)入下載系統(tǒng)(SLISP):1)參數(shù)選擇:并口LPT1;下載速度選擇TURBO模式;單片機(jī)型號:AT89S52;2)選擇執(zhí)行文件:Flash*hex;3)單擊“編程”進(jìn)行下載。注意:要將ISP下載線連接計算機(jī)和機(jī)器人教學(xué)板,電源接好,開關(guān)撥到“1”檔位置,給教學(xué)板通電。從執(zhí)行文件下載到單片機(jī)的那個時刻開始,程序就開始運行。單片機(jī)向計算機(jī)發(fā)送信息??衫么谡{(diào)試軟件查看單片機(jī)輸出信息,“Resef按鈕可讓下載到單片機(jī)內(nèi)的程序重新運行一次。4、做完實驗斷開電源,將開關(guān)撥到“0”檔,系統(tǒng)在不使用時沒有消耗電能,電池可以用的更久。拆卸串并口線還原。四、實驗程序1、教材程序HelloRoBot.Co2
6、、利用while循環(huán)與delay_nms()函數(shù)(毫秒級的延時)編程:每秒發(fā)送一個信息(內(nèi)容為英文自己定),通過串口顯示在計算機(jī)上。delay_nms()函數(shù)在BoeBot.h頭文件中有定義。即#include<Boebot.h>,編譯時系統(tǒng)講根據(jù)頭文件自動將延時函數(shù)插入到程序中。五、實驗報告要求1、按要求:每秒發(fā)送一個信息(內(nèi)容為英文自己定),通過串口顯示在計算機(jī)上,進(jìn)行程序設(shè)計。2、程序調(diào)試心得。3、觀察到的程序運行效果并加以分析。六、思考題1、什么是單片機(jī)?2、MCS51、8051、C51、AT89S52之間是什么關(guān)系?3、寶貝車機(jī)器人采用的AT89S52單片機(jī)的特點是什么?
7、4、#include<uart.hafe文件的作用是什么?5、程序HelloRoBot.c中while(1);的作用是什么?注:實驗操作現(xiàn)場檢查。實驗二C51接口與伺服電機(jī)控制一、實驗?zāi)康?、理解和掌握C51單片機(jī)的輸入輸出接口的特性;2、理解機(jī)器人伺服電機(jī)PWM調(diào)速原理,C語言編程輸出脈沖序列控制機(jī)器人輪子運動。二、實驗設(shè)備及軟件寶貝車機(jī)器人、ISP下載線、串行接口、并行接口、計算機(jī)、電源、螺絲刀、紅色發(fā)光二極管2個和470。電阻2個。KeiluVision2IDE集成開發(fā)環(huán)境、SLISP下載軟件、串口調(diào)試軟件。三、實驗內(nèi)容和步驟1、用C51單片機(jī)的P1口的位輸出高低電平控制LED發(fā)光
8、二極管的閃爍??唇滩母戒汣,關(guān)于面包板及LED的介紹。面包板上共有18行插座,通過中間槽分為兩列。每一行由5個插座組成,這5個插座在面包板上是電氣相連的,如將兩根導(dǎo)線分別插入五口插座行的任意兩個插座中,它們都是電氣相連的。“GND”對應(yīng)于教學(xué)板的接地端,“Vcc”指校準(zhǔn)的+5V電壓。發(fā)光二極管(如圖2.1)是單向?qū)щ姷碾娮庸?,長腳為正極,短腳為負(fù)極,必須連接正確,否則不能正常工作。通過5mA左右即可發(fā)光,電流越大,其亮度越強(qiáng),但若電流過大,會燒毀二極管。給發(fā)光二極管串聯(lián)一個電阻的目的是限制通過發(fā)光二極管的電流不要太大。D1-|4|vccLED圖2.1LED零件圖圖2.2發(fā)光二極管與I/O腳P1
9、_0的連接色環(huán)電阻為五色,用五條色環(huán)表示電阻的阻值大小。黑0棕1紅2橙3黃4綠5藍(lán)6紫7灰8白9金、銀表示誤差具體如下:第一條色環(huán):阻值的第一位數(shù)字;第二條色環(huán):阻值的第二位數(shù)字;第三條色環(huán):阻值的第三未數(shù)字;第四條色環(huán):阻值乘數(shù)的10的幕數(shù);第五條色環(huán):誤差(常見是棕色,誤差為1%)。由此,470Q電阻為黃紫黑黑棕。參考教材一個發(fā)光二極管閃爍的LED電路搭建(如圖2.2)及程序HighLowLed.c。注意,在教學(xué)底板上搭建電路時要斷開電源。教材有程序是兩個LED同時閃爍,要求修改程序讓兩個LED交替亮或者滅,也可以改變延時函數(shù)參數(shù)n的值,改變LED閃爍頻率。【拓展訓(xùn)練】實現(xiàn)4個或更多LED
10、流水燈控制,對應(yīng)流水燈從全滅到一個一個亮或者對應(yīng)流水燈從全亮到一個一個滅。編程方法與兩個LED閃爍類似,接入的LED二極管繼續(xù)接在面包板左側(cè)其他的端口位上。注意,程序控制各引腳輸出高低電平要與所接的端口要一一對應(yīng)起來。2、兩伺服電機(jī)調(diào)零。在操作之前,先確認(rèn)一下機(jī)器人兩個伺服電機(jī)的電源控制線(如圖2.3)是否已經(jīng)正確的連接到C51單片機(jī)教學(xué)板的兩個專用電機(jī)控制接口上。P1_1引腳控制左邊電機(jī),P1_0引腳控制右邊電機(jī),在電路板上我們分別采用W、R、B來表示信號線、電源線和地,電機(jī)控制線顏色與教學(xué)板接口對應(yīng)字母一致(白紅黑對應(yīng)WRB)。十字角喉、圖2.3伺服電機(jī)實物圖圖2.4電壓“占空比”與平均電
11、壓關(guān)系電機(jī)調(diào)速應(yīng)用PWM(脈寬調(diào)制)基本原理,通過控制固定電壓的直流電源開關(guān)頻率改變負(fù)載兩端的電壓。在PWM驅(qū)動控制的調(diào)整系統(tǒng)中,按一個固定的頻率來接通和斷開電源,并根據(jù)需要改變一個周期內(nèi)“接通”和“斷開”時間的長短。通過改變直流電機(jī)電樞上電壓的“占空比”來改變平均電壓的大小,從而控制電動機(jī)的轉(zhuǎn)速。如圖2.4,在脈沖作用下,當(dāng)電機(jī)通電時,速度增加;電機(jī)斷電時,速度逐漸減少。只要按一定規(guī)律,改變通、斷電的時間,即可讓電機(jī)轉(zhuǎn)速得到控制。高電平持續(xù)的時間控制電機(jī)轉(zhuǎn)速,即脈沖寬度控制連續(xù)旋轉(zhuǎn)電機(jī)速度和方向。將時間間隔為20ms,脈寬為1.5ms的一系列脈沖稱為零點標(biāo)定信號,電機(jī)轉(zhuǎn)速為零,機(jī)器人輪子靜止
12、不動。如果電機(jī)沒有進(jìn)行零點標(biāo)定,機(jī)器人輪子會轉(zhuǎn)動,如圖2.5所示,用螺絲刀輕輕調(diào)節(jié)馬達(dá)上的電位器,直到馬達(dá)停止轉(zhuǎn)動。如電機(jī)已經(jīng)完成了零點調(diào)節(jié),不會轉(zhuǎn)動。但是損壞了或有缺陷的電機(jī)有時也不轉(zhuǎn)動。繼續(xù)檢測:當(dāng)高電平持續(xù)時間為當(dāng)高電平持續(xù)時間為當(dāng)高電平持續(xù)時間為當(dāng)高電平持續(xù)時間為1.3 ms時,電機(jī)順時針全速旋轉(zhuǎn);ms時,電機(jī)逆時針全速旋轉(zhuǎn);ms1.5ms之間時,電機(jī)順時針旋轉(zhuǎn);ms1.7ms之間時,電機(jī)逆時針旋轉(zhuǎn)。圖2.5.1經(jīng)過孔把螺絲刀插入電位器圖2.5.2輕輕的旋轉(zhuǎn)螺絲刀調(diào)節(jié)電位器3、測試電機(jī),改變脈沖寬度控制機(jī)器人運動速度和方向。如圖2.6,定義機(jī)器人的前、后、左、右四個方向。例程中使用pr
13、intf函數(shù)是為了起提示作用,若覺得用口線影響機(jī)器人的運動,可以不用此函數(shù)。將程序下載到單片機(jī),關(guān)閉機(jī)器人電源開關(guān),斷開ISP下載線,將開關(guān)撥到“2”檔,觀察寶貝車運動情況。左右圖2.6機(jī)器人及其前進(jìn)方向的定義四、實驗程序1、教材有程序是兩個LED同時閃爍及一個LED閃爍(程序HighLowLed.c),要求修改程序讓兩個LED交替閃爍,也可以改變延時函數(shù)參數(shù)n的值,改變LED閃爍頻率。*編程實現(xiàn)4個或更多LED流水燈控制,對應(yīng)流水燈從全滅到一個一個亮或者對應(yīng)流水燈從全亮到一個一個滅。2、編程實現(xiàn)兩伺服電機(jī)調(diào)零,可以分別調(diào)零,也可一起調(diào)零。教材有代碼實現(xiàn)右輪調(diào)零,注意編程的完整性。3、驗證Bo
14、thServosThreeSeconds.C!否向前進(jìn)3s,后退3s。并根據(jù)此程序按照實驗報告要求編程。五、實驗報告要求1、編程及電路原理圖實現(xiàn)兩個LED交替閃爍,觀察到的運行效果并加以分析,程序調(diào)試心得。有興趣的同學(xué)還可以完成4個或更多LED流水燈控制,對應(yīng)流水燈從全滅到一個一個亮或者對應(yīng)流水燈從全亮到一個一個滅。要求編程及電路原理圖,觀察到的運行效果并加以分析,程序調(diào)試心得。2、編程實現(xiàn)兩伺服電機(jī)調(diào)零,可以分別調(diào)零,也可一起調(diào)零,觀察到的運行效果并加以分析,程序調(diào)試心得。3、控制兩個電機(jī)的delay_nus函數(shù)的參數(shù)n有不同的組合,各種組合的運動狀況填寫下表。P1_1P1_0描述運動狀況1
15、7001300全速,P1_1電機(jī)逆時針,P1_0電機(jī)順時針1300170017001700130013001500170015001300130015001700150015001500兩個電機(jī)都靜止六、思考題1、LED閃爍的工作原理,即引腳輸出高低電平信號,發(fā)光二極管會滅或者亮的原因是什么?2、LED閃爍的實驗中,逐漸減小延時函數(shù)參數(shù)n的值,還能看到LED閃爍嗎?為什么?3、LED閃爍的實驗中,分別將開關(guān)撥到“1”與“2”,看實驗現(xiàn)象有什么區(qū)別?分析原因。4、將電機(jī)調(diào)零的程序下載到單片機(jī),開關(guān)撥到“2”,按“Reset”按鈕,輪子仍轉(zhuǎn)動,不能完全停下來,試分析有哪些原因造成的?5、編程給與P
16、1_1連接的左輪發(fā)出脈寬為1.7ms,與P1_0連接的右輪發(fā)出脈寬1.3ms,觀察到寶貝車后退,分析是什么原因引起的?注:實驗操作現(xiàn)場檢查。實驗三C語言函數(shù)與機(jī)器人巡航控制一、實驗?zāi)康?、掌握對單片機(jī)編程使機(jī)器人做基本的巡航動作:向前,向后,左轉(zhuǎn),右轉(zhuǎn)和原地旋轉(zhuǎn)。通過測試機(jī)器人脈沖數(shù)與機(jī)器人運動距離的關(guān)系,實現(xiàn)機(jī)器人的精確動作。2、掌握編寫程序時機(jī)器人由突然啟動或停止變?yōu)橹鸩郊铀倩驕p速運動。3、寫一些執(zhí)行基本巡航動作的函數(shù),每一個函數(shù)都能夠被多次調(diào)用。4、將復(fù)雜巡航運動記錄在數(shù)組中,編寫程序執(zhí)行這些巡航運動。二、實驗設(shè)備及軟件寶貝車機(jī)器人、ISP下載線、串行接口、并行接口、計算機(jī)、電源。Kei
17、luVision2IDE集成開發(fā)環(huán)境、SLISP下載軟件、串口調(diào)試軟件。三、實驗內(nèi)容和步驟1、驗證教材程序ForwardLeftRightBackward.c看機(jī)器人是否向前、左轉(zhuǎn)、右轉(zhuǎn)及向后走。如果寶貝車向前運動的過程輕微向左或右偏移,不是一條直線。結(jié)果就是左輪與右輪程序上是以全速行駛,實際輸出有速度差,要么左輪速度太慢,要么右輪速度太慢。讓輪子加速不太實際,但是減小輪子的速度就可以解決問題電機(jī)速度是脈沖寬度即程序中延時函數(shù)delay_nus的參數(shù)n決定的。n越接近1500,電機(jī)轉(zhuǎn)速越慢。要重復(fù)試驗得到一個比較準(zhǔn)確的輸出。將確定好的沿直線運動的參數(shù)更新到程序ForwardLeftRightB
18、ackward.c中相應(yīng)的值。利用for循環(huán)控制電機(jī)的運行時間,由小車運動形式?jīng)Q定輸出距離或角度。例程中for循環(huán)的循環(huán)次數(shù)為65,小車運行時間為1.5s,運行距離減半。for循環(huán)的循環(huán)次數(shù)為26,電機(jī)的運行時間決定小車旋轉(zhuǎn)的角度。調(diào)整for循環(huán)的循環(huán)次數(shù)得到非常接近你想要的旋轉(zhuǎn)角度。由于每個小車的情況不一樣,在向左轉(zhuǎn)與右轉(zhuǎn)中for循環(huán)的循環(huán)次數(shù)增加或減少電機(jī)的轉(zhuǎn)角,使寶貝車旋轉(zhuǎn)期望的角度,例如旋轉(zhuǎn)90度。如果發(fā)現(xiàn)一個值使旋轉(zhuǎn)超過90°,而另一個使旋轉(zhuǎn)小于90°,嘗試選擇一個使其旋轉(zhuǎn)更多的值,然后稍微減小電機(jī)速度。測試一下你的小車要循環(huán)多少次才能旋轉(zhuǎn)90度。在轉(zhuǎn)彎半徑較大時
19、,可以采用一個電機(jī)增速另一個電機(jī)減速的方法轉(zhuǎn)彎。由于小車結(jié)構(gòu)的影響,這種方法轉(zhuǎn)彎較慢,轉(zhuǎn)彎半徑較大,效果受運動速度的影響大。在需要轉(zhuǎn)彎半徑較小時,可以采用一個電機(jī)轉(zhuǎn)動,而另一個靜止的方法。兩個電機(jī)等速反向轉(zhuǎn)動可以實現(xiàn)原地轉(zhuǎn)彎。測試寶貝車速度。將寶貝車放在尺子旁邊,確保輪子接觸的地面與尺子的0厘米對齊在一條線上,按復(fù)位鍵重新運行程序,讓寶貝車向前走1秒鐘,測量從出發(fā)點到機(jī)器人停下來所接觸的地面距離,測量結(jié)果就是以厘米/s為單位的。2、將加速或減速與基本巡航動作結(jié)合起來,使機(jī)器人的每一個動作都能夠勻加速或勻減速。參考教材程序StartAndStopWithRamping.c及相似代碼更改Forwa
20、rdLeftRightBackward.Co3、教材程序MovementsWithFuntions.c、MovementsWithOneFuntion.c運行結(jié)果與ForwardLeftRightBackward.c產(chǎn)生的效果是相同的,用函數(shù)調(diào)用簡化運動程序。修改MovementsWithOneFuntion.c使機(jī)器人走一個正方形。4、驗證程序NavigationWithSwitch.c是否走了一個矩形。使用數(shù)組或調(diào)用函數(shù)編寫程序,使機(jī)器人按你的想法運動,實現(xiàn)較為復(fù)雜的運動。【拓展訓(xùn)練】編程使履帶坦克機(jī)器人、相撲機(jī)器人、爬蟲機(jī)器人巡航控制。四、實驗程序1、驗證教材程序ForwardLeftR
21、ightBackward.c。2、編程反復(fù)測試一下小車要循環(huán)多少次才能旋轉(zhuǎn)精確的90度。3、編程測試寶貝車速度,測量結(jié)果就是以厘米/s為單位的。4、參考教材程序StartAndStopW讓hRamping.c及相似代碼,更改ForwardLeftRightBackward.c,使機(jī)器人的每一個動作都能夠勻加速或勻減速。5、修改MovementsWithOneFuntion.c使機(jī)器人走一個正方形。6、使用數(shù)組或調(diào)用函數(shù)編寫程序,使機(jī)器人按你的想法運動,實現(xiàn)較為復(fù)雜的運動。五、實驗報告要求1、程序設(shè)計小車要循環(huán)多少次才能旋轉(zhuǎn)精確的90度,觀察到的運行效果并加以分析,程序調(diào)試心得。2、更改Forw
22、ardLeftRightBackward.c,使機(jī)器人的每一個動作都能夠勻加速或勻減速。寫出程序,觀察到的運行效果并加以分析,程序調(diào)試心得。3、修改MovementsWithOneFuntion.c使機(jī)器人走一個正方形。寫出程序,觀察到的運行效果并加以分析,程序調(diào)試心得。4、使用數(shù)組或調(diào)用函數(shù)編寫程序,使機(jī)器人按你的想法運動,實現(xiàn)較為復(fù)雜的運動。寫出程序,觀察到的運行效果并加以分析,程序調(diào)試心得。六、思考題1、在程序ForwardLeftRightBackward.c中,向左轉(zhuǎn)與右轉(zhuǎn)的for循環(huán)的循環(huán)次數(shù)為26,這是什么意思?程序運行效果是怎樣的?2、機(jī)器人完成各種巡航動作的過程中,每次啟動和
23、停止時,動作太快,幾乎傾倒,為什么會這樣呢?采用什么方法可以解決這種問題?3、讓小車實現(xiàn)轉(zhuǎn)彎的方法有哪些?注:實驗操作現(xiàn)場檢查。實驗四C51接口與觸覺與航一、實驗?zāi)康?、接觸型傳感器作為輸入反饋與C51單片機(jī)的編程實現(xiàn)。2、編程使機(jī)器人基于胡須導(dǎo)航,條件判斷語句的嵌套與機(jī)器人的人工智能決策的編程使機(jī)器人逃離進(jìn)入墻角死區(qū)。二、實驗設(shè)備及軟件寶貝車機(jī)器人、ISP下載線、串行接口、并行接口、計算機(jī)、電源、安裝機(jī)器人胡須,所需硬件如圖4.1。元件清單:(1)胡須狀金屬絲2根;(2)平頭M3x22盤頭螺釘2個;13mm圓形立柱2個;M3尼龍墊圈2個;3-pin公-公接頭2個;220Q電阻2個;10kQ電
24、阻2個。圖4.1胡須硬件KeiluVision2IDE集成開發(fā)環(huán)境、SLISP下載軟件、串口調(diào)試軟件。三、實驗內(nèi)容和步驟1、通過布置恰當(dāng)?shù)碾娐罚跈C(jī)器人前端安裝并測試一個稱為胡須的觸覺開關(guān),對C51單片機(jī)編程來監(jiān)視觸覺開關(guān)的狀態(tài)。安裝并測試機(jī)器人胡須見圖4.2。確定兩條胡須比較靠近,但又不接觸面包板上的3-pin頭,推薦保持3mm的距離。參考接線圖4.3,搭建胡須電路。色環(huán)電阻你會讀嗎?(提示:棕紅橙黃綠,藍(lán)紫灰白黑)220。電阻(紅紅黑黑棕),10kQ電阻(棕黑黑紅棕)。注意:右邊胡須狀態(tài)信息輸入是通過P1口的第4引腳完成,左邊胡須狀態(tài)信息輸入是通過P2口的第3引腳完成。也可以接其他引腳,注
25、意電路與程序要匹配。圖4.2安裝機(jī)器人胡須圖4.3胡須電路示意圖圖4.4是實際的參考接線圖,安裝好的觸覺胡須的機(jī)器人如圖4.5。圖4.4胡須接線圖圖4.5安裝好觸覺胡須的機(jī)器人單片機(jī)AT89S52的四個端口P0、P1、P2和P3是可以按位來操作,從低到高依次為第0口、第1口第7口,書寫分別為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.3P2.2P2.1P2.00x0800001000P1&
26、;0X10和P2&0X08分另I提取了P1.4和P2.3的值,屏蔽了其他位。測試胡須源程序TestWhiskersc要用到調(diào)試終端,當(dāng)程序運行時要確保用口已經(jīng)接好。弄清哪條胡須是左胡須,哪條是右胡須。當(dāng)胡須沒有被碰到,使引腳電壓為5V,胡須狀態(tài)為1;當(dāng)胡須被碰到時,使引腳電壓為0V,胡須狀態(tài)為002、通過胡須導(dǎo)航。機(jī)器人行走時,如果有胡須被觸動,意味著碰到了什么。嘗試讓寶貝車向前行走,當(dāng)在其路線上遇到障礙物時,它將后退、旋轉(zhuǎn)并向另一個方向行走以避開障礙物。具體程序RoamingWithWhiskers.c。可以調(diào)整Left_Turn()和Right_Turn()子程序中for循環(huán)的循環(huán)
27、次數(shù)增加或減少電機(jī)的轉(zhuǎn)角,使寶貝車旋轉(zhuǎn)期望的角度。在空間比較狹小的地方,可以調(diào)整程序Backward。中for循環(huán)的循環(huán)次數(shù)來減少后退的距離。3、基于人工智能決策的編程使機(jī)器人逃離進(jìn)入墻角死區(qū)。編程使機(jī)器人逃離進(jìn)入墻角死區(qū)。當(dāng)寶貝車進(jìn)入墻角時,左胡須觸墻,于是它倒退,右轉(zhuǎn)。當(dāng)小車再向前行走,右胡須觸墻,于是再倒退,左轉(zhuǎn)。然后它又前進(jìn)又會碰到左墻,再次碰到右墻等,直到有人把它從困境中解救出來。使用含ifelse嵌套語句用于探測連續(xù)的、交替出現(xiàn)的胡須觸動。編程使寶貝車在行走時,輪流觸動它的胡須,胡須在經(jīng)過四次觸動之后,寶貝車會進(jìn)行后退、旋轉(zhuǎn)180。離開墻角。具體程序EscapingCorners.
28、es嘗試增加或減小變量counter的數(shù)值,觀察機(jī)器人在正常行走過程中是否有任何不同?!就卣褂?xùn)練】觸覺導(dǎo)航機(jī)器人走迷宮競賽。四、實驗報告要求1、搭建觸覺導(dǎo)航電路,測試胡須源程序TestWhiskersc畫出胡須電路示意圖,觀察到的運行效果并加以分析,程序調(diào)試心得。2、程序RoamingWithWhiskers.c觸覺導(dǎo)航的實現(xiàn),說明胡須機(jī)器人怎樣行走。3、程序EscapingCorners.cH如何工作的。五、思考題1、觸覺導(dǎo)航的原理是什么?通過胡須導(dǎo)航時如何避開障礙物?2、語句Return(P1&0x10)?1:0的意義是什么?試作圖說明。3、語句if(P1_4state()=0)&
29、amp;&(P2_3state()=0)Backward();Left_Turn();Left_Turn();的含義是什么?4、在胡須導(dǎo)航程序中函數(shù)Forward。有變動,只發(fā)送一個脈沖,然后返回,這樣的好處是什么?5、是否有且只有一根胡須被觸動,如何通過獲取左、右胡須的狀態(tài)作出判斷?寫出具體的判斷語句。注:實驗操作現(xiàn)場檢查。實驗五C51接口與紅外線導(dǎo)航一、實驗?zāi)康?、掌握紅外傳感器作為輸入反饋與單片機(jī)的編程實現(xiàn),讓機(jī)器人的C51單片機(jī)可以收發(fā)紅外光信號。2、使用紅外線發(fā)射和接收器件探測道路,編程實現(xiàn)高性能的IR導(dǎo)航和邊沿探測。二、實驗設(shè)備及軟件寶貝車機(jī)器人、ISP下載線、串行接口、并
30、行接口、計算機(jī)、電源。所需元件:(1)兩個紅外檢測器,如圖5.1;(2)兩個IRLED,如圖5.2;(3)四個470。電阻(黃紫黑黑棕);(4)兩個9013三極管,如圖5.3。123圖5,1紅外檢測器圖5.2紅外線二極管LED發(fā)射器1隼1忖2也7«*極3T£E集電極一基板bo-圖5.3.1三極管9013管腳圖圖5,3.2三極管9013結(jié)構(gòu)圖及符號圖KeiluVision2IDE集成開發(fā)環(huán)境、SLISP下載軟件、串口調(diào)試軟件。三、實驗內(nèi)容和步驟使用紅外光來照射機(jī)器人前進(jìn)的路線,確定何時有光線從被探測目標(biāo)反射回來,通過檢測反射回來的紅外光可以確定前方是否有物體。機(jī)器人使用紅外線
31、二極管LED發(fā)射紅外光線,紅外檢測器相當(dāng)于眼睛,檢測到反射回來的紅外光線,并發(fā)出信號來表明檢測到從物體反射回紅外線,如圖5.4。紅外線(IR)接收/檢測器有內(nèi)置的光濾波器,除了需要檢測980nm波長的紅外線外,幾乎不允許其他光通過。紅外檢測器還有一個電子濾波器,只允許大約38.5kHz的電信號通過。圖5.4用紅外探測障礙物1、搭建并測試IR發(fā)射和探測器對,如圖5.5。注意斷開主板和電機(jī)的電源圖5.5左側(cè)和右側(cè)IR組電路原理圖圖5.6.1左右IR組實物參考圖圖5.6.2左右IR組電路搭建實物參考圖本任務(wù)中,發(fā)送持續(xù)1ms的38.5kHz的紅外光,如果紅外光被小車路徑上的物體反射回來,紅外檢測器將
32、給微控制器發(fā)送一個信號,讓它知道已經(jīng)檢測到反射回的紅外光。當(dāng)沒有IR信號返回時,探測器的輸出狀態(tài)為高電平。當(dāng)它探測到被物體反射的38.5kHz的紅外信號時,它的輸出為低電平。放一個物體,比如手或一張紙,距離IR組大約1英寸。驗證當(dāng)你放一個物體在IR組前時,調(diào)試終端是否會顯示0,當(dāng)你將物體移開時,它是否顯示1。程序TestLeftIrPair.c僅驗證左邊IR組,要改寫程序驗證右邊IR組。或者可以同時驗證兩邊的IR組,需要改寫程序與之匹配。如果調(diào)試終端顯示的不是預(yù)料的值,檢查電路和輸入的程序。如果你總是得到0,甚至當(dāng)沒有物體在機(jī)器人前面時也是0,可能是附近的物體反射了紅外線。機(jī)器人前面的桌面是常
33、見的始作俑者。調(diào)整紅外發(fā)射器的角度,使IRLED和探測器不會受桌面等物體的影響。如果機(jī)器人前面沒有物體時絕大多數(shù)時間讀數(shù)是1,但是偶爾是0,這可能是附近的熒光燈的干擾。關(guān)掉附近的熒光燈,重新測試。注意:保持寶貝車機(jī)器人與串口電纜的連接,因為你將用調(diào)式終端來測試你的IR組。2、IR檢測器探測和避開障礙物IR檢測器的輸出與觸須的輸出非常相象。沒有檢測到物體時,輸出為高電平,檢測到物體時,輸出為低電平。采取與胡須相同的導(dǎo)航策略。3、高性能的IR導(dǎo)航,在每個脈沖之間采樣以避免碰撞。在觸須導(dǎo)航里使用的預(yù)編程機(jī)動動作很好,但是在使用IRLED和探測器時會造成不必要的遲鈍。發(fā)送脈沖給電機(jī)之前檢查障礙物,寶貝
34、車持續(xù)使用電機(jī)驅(qū)動脈沖和探測,直到它繞開障礙物,然后它會繼續(xù)發(fā)送向前行走的脈沖,這樣可以大大改善寶貝車的行走性能。4、用絕緣帶模擬桌子的邊沿,邊沿探測編程。圖5.7俯視的IR組»156cm)圖5.8模擬桌面邊沿的絕緣帶邊寶貝車在桌子上行走,IR檢測器向下監(jiān)測桌子表面。只要兩個IR探測器測到桌面,寶貝車向前行走。如果有一邊的IR探測器沒有發(fā)現(xiàn)桌面(即發(fā)現(xiàn)邊沿),寶貝車會向另一個方向轉(zhuǎn)動。四、實驗報告要求1、程序TestLefHrPair.c僅驗證左側(cè)IR組電路搭接是否正確,驗證右側(cè)IR組電路搭接是否正確可以參考程序TestLeftIrPair.c更改相應(yīng)的引腳。需要改寫程序要求同時驗證
35、兩側(cè)的IR組,注意引腳要與左側(cè)右側(cè)IR組電路原理圖匹配。采用空函數(shù)產(chǎn)生延時的程序片斷替代延時函數(shù)delay_nus(13)。畫出左側(cè)右側(cè)IR組電路原理圖,觀察到的運行效果并加以分析,程序調(diào)試心得及如何排錯的方法。2、高性能的IR導(dǎo)航,觀察到的運行效果并加以分析,程序調(diào)試心得。3、邊沿探測,觀察到的運行效果并加以分析,程序調(diào)試心得。五、思考題1、三極管9013的工作原理及在IR組中的作用。2、紅外線導(dǎo)航的原理是什么?通過紅外線導(dǎo)航時如何避開障礙物?3、do-while語句與while語句的聯(lián)系與區(qū)別。高性能的IR導(dǎo)航程序FastIrRoaming.井dowhile語句是否可以替換while語句呢
36、?4、邊沿探測的原理是什么?躲避障礙物與在桌面行走而不走到桌邊兩個實驗卻使用同樣IR組電路原理圖進(jìn)行探測,分析一下其中的核心道理。注:實驗操作現(xiàn)場檢查。實驗六C51定時器與機(jī)器人的距離檢測一、實驗?zāi)康?、掌握定時/計數(shù)器的應(yīng)用及編程實現(xiàn)。2、機(jī)器人紅外測距及跟隨策略的實現(xiàn)。二、實驗設(shè)備及軟件寶貝車機(jī)器人、ISP下載線、串行接口、并行接口、計算機(jī)、電源。KeiluVision2IDE集成開發(fā)環(huán)境、SLISP下載軟件、串口調(diào)試軟件。三、實驗內(nèi)容及步驟1、單片機(jī)AT89S52的定時/計數(shù)器提供更精確的時間。具體見教材。搭建LED的測試電路如圖6.1。程序TimeApplication.c與P1_璉接
37、的LE內(nèi)隔0.4ms閃爍一次。由于LED丁閃爍頻率過快,人的視覺反應(yīng)不夠快。為了可以看見LED丁閃爍,改程序使得LED®隔130m到爍一次。同時搭接兩個LEEDT,一個用delay_num(65)控制,一個用定時器控制延時。K1?70LED圖6.1LED的測試電路2、機(jī)器人用紅外發(fā)射頻率掃描進(jìn)行編程做距離探測。用同前面一樣的IRLED/探測電路來探測距離。選才¥5個不同頻率,然后從最高靈敏度到最低靈敏度進(jìn)行測試。首先嘗試最高靈敏度頻率,如果物體被探測到了,就讓僅次于它的高靈敏度頻率測試,觀察是否可以探測到。依賴于探測器不能再檢測到物體的紅外線頻率,就可以推斷物體的大概位置。舉例說明如圖6.1機(jī)器人如何用紅外發(fā)射頻率做距離測試。在這個例子中,目標(biāo)物體在區(qū)域3。也就是說,發(fā)送35700Hz和38460Hz頻率能發(fā)現(xiàn)物體,發(fā)送29370Hz、31230Hz以及33050Hz頻率就不能發(fā)現(xiàn)物體。如果你移動物體到區(qū)域2,那么發(fā)送33050Hz、35700Hz以及38460Hz可以發(fā)現(xiàn)物體,發(fā)送29370Hz和31230Hz頻率不能發(fā)現(xiàn)物體。區(qū)域5任何頻率下均設(shè)檢測胤物體圖6.1頻率和探測區(qū)域運行程序時,在機(jī)器人前端放一張紙或卡片對兩個IR
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二手房合同糾紛案例解析及預(yù)防措施
- 中外合資企業(yè)勞動合同保密條款
- 2025年商業(yè)租賃協(xié)議官方指南
- 2025年跨區(qū)域資產(chǎn)整合協(xié)議
- 個人財產(chǎn)抵押合同協(xié)議
- 個人房屋抵押融資合同模板
- 個人與保姆勞動合同
- 臨時派遣勞動合同范本
- 二手住宅購買合同范文大全
- 退休聘用合同范本
- 中國高血壓防治指南(2024年修訂版)
- 北京市海淀區(qū)重點中學(xué)2025屆高考數(shù)學(xué)押題試卷含解析
- 2024EPC施工總包合同范本
- GB/Z 44765.3-2024用戶端能源管理系統(tǒng)和電網(wǎng)側(cè)管理系統(tǒng)間的接口第3部分:架構(gòu)
- 《春酒》琦君完整版
- 北師大版(2024新版)七年級上冊數(shù)學(xué)第四章《基本平面圖形》測試卷(含答案解析)
- 湖南省邵陽市武岡市2024屆高三上學(xué)期期中考試地理含答案解析
- 2022年內(nèi)分泌醫(yī)療質(zhì)量控制評價體系與考核標(biāo)準(zhǔn)
- 春節(jié)后復(fù)工安全教育培訓(xùn)考試試題及答案
- 寄宿制學(xué)校工作總結(jié)
- 小學(xué)數(shù)學(xué)6年級應(yīng)用題100道附答案(完整版)
評論
0/150
提交評論