版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、“小強(qiáng)一號(hào)”實(shí)驗(yàn)機(jī)器人制作過(guò)程(圖文)來(lái)源:Mindroid 時(shí)間:2008-05-24 評(píng)論 27 條 HYPERLINK (訪問(wèn)論壇) HYPERLINK /e/tool/feedback/?bid=1 RobotSky恭候您的投稿從對(duì)機(jī)器人感興興趣開(kāi)始,買(mǎi)買(mǎi)了一堆書(shū),也也看了很多資資料,決定先先從最簡(jiǎn)單的的車(chē)輪機(jī)器人人開(kāi)始做。普普通電腦雖然然強(qiáng)大,但是是不能直接采采集外界環(huán)境境的物理數(shù)據(jù)據(jù),也不能直直接控制電機(jī)機(jī)。查找了下下,雖然可以以直接在電腦腦上接 USSB 接口的的數(shù)據(jù)采集器器用于采集傳傳感器的數(shù)據(jù)據(jù),也可以使使用 PCII 的電機(jī)控控制卡來(lái)驅(qū)動(dòng)動(dòng)各種電機(jī),不不過(guò)成本有些些高,暫時(shí)
2、不不考慮了。找找了一圈,發(fā)發(fā)現(xiàn)還是單片片機(jī)方案廉價(jià)價(jià),順便可以以學(xué)習(xí)下單片片機(jī)控制和作作一些電路實(shí)實(shí)驗(yàn)。于是最最終決定實(shí)驗(yàn)驗(yàn)方案采用單單片機(jī)來(lái)做了了。 零件 下面是采購(gòu)的零零件: 8 位單片機(jī) Atmegga168 開(kāi)發(fā)板。 電路面包板和連連線用于驅(qū)動(dòng)動(dòng)車(chē)輪的兩個(gè)個(gè)減速電機(jī)。沒(méi)沒(méi)有找到合適適的齒輪,自自己也沒(méi)有加加工設(shè)備,圖圖簡(jiǎn)單,所以以直接用集成成減速齒輪的的電機(jī)代替了了。距離傳感感器,作為機(jī)機(jī)器人的主要要傳感器,用用來(lái)探測(cè)障礙礙物的距離。使使用的是常用用的紅外距離離傳感器作為為機(jī)器人的眼眼睛。舵機(jī),用用來(lái)控制機(jī)器器人“眼睛”的的方向。一堆堆零件:下一一步就可以驗(yàn)驗(yàn)證簡(jiǎn)單的功功能了 “小強(qiáng)一
3、號(hào)”實(shí)驗(yàn)機(jī)器器人制作過(guò)程程(圖文)http:/www.rrobotssky.coom來(lái)源源:Minddroid 時(shí)間:2008-05-244 評(píng)論論 27 條條 HYPERLINK (訪問(wèn)論壇) HYPERLINK /e/tool/feedback/?bid=1 RobottSky恭候候您的投稿從對(duì)機(jī)器人感興興趣開(kāi)始,買(mǎi)買(mǎi)了一堆書(shū),也也看了很多資資料,決定先先從最簡(jiǎn)單的的車(chē)輪機(jī)器人人開(kāi)始做。普普通電腦雖然然強(qiáng)大,但是是不能直接采采集外界環(huán)境境的物理數(shù)據(jù)據(jù),也不能直直接控制電機(jī)機(jī)。查找了下下,雖然可以以直接在電腦腦上接 USSB 接口的的數(shù)據(jù)采集器器用于采集傳傳感器的數(shù)據(jù)據(jù),也可以使使用 PCI
4、I 的電機(jī)控控制卡來(lái)驅(qū)動(dòng)動(dòng)各種電機(jī),不不過(guò)成本有些些高,暫時(shí)不不考慮了。找找了一圈,發(fā)發(fā)現(xiàn)還是單片片機(jī)方案廉價(jià)價(jià),順便可以以學(xué)習(xí)下單片片機(jī)控制和作作一些電路實(shí)實(shí)驗(yàn)。于是最最終決定實(shí)驗(yàn)驗(yàn)方案采用單單片機(jī)來(lái)做了了。 零件 下面是采購(gòu)的零零件: 8 位單片機(jī) Atmegga168 開(kāi)發(fā)板。 電路面包板和連連線用于驅(qū)動(dòng)動(dòng)車(chē)輪的兩個(gè)個(gè)減速電機(jī)。沒(méi)沒(méi)有找到合適適的齒輪,自自己也沒(méi)有加加工設(shè)備,圖圖簡(jiǎn)單,所以以直接用集成成減速齒輪的的電機(jī)代替了了。距離傳感感器,作為機(jī)機(jī)器人的主要要傳感器,用用來(lái)探測(cè)障礙礙物的距離。使使用的是常用用的紅外距離離傳感器作為為機(jī)器人的眼眼睛。舵機(jī),用用來(lái)控制機(jī)器器人“眼睛”的的方
5、向。一堆堆零件:下一一步就可以驗(yàn)驗(yàn)證簡(jiǎn)單的功功能了 實(shí)驗(yàn) 接下來(lái)先搞清楚楚怎么用單片片機(jī)。 Hello wworld 先讓單片機(jī)跑起起來(lái)再說(shuō)。習(xí)習(xí)慣了操作系系統(tǒng)下編程,第第一次用單片片機(jī)還真有些些不習(xí)慣,擔(dān)擔(dān)心遇到問(wèn)題題,不過(guò)比較較順利。這個(gè)個(gè)程序用來(lái)點(diǎn)點(diǎn)亮單片機(jī)上上的一個(gè) LLED 。代碼: int leddPin = 13; / LEED connnecteed to digittal piin 13 void setupp() pinMoode(leedPin, OUTPPUT); / seets thhe diggital pin aas outtput void looop() di
6、gittalWriite(leedPin, HIGHH); / setss the LED oon dellay(10000); / waaits ffor a seconnd diggitalWWrite(ledPiin, LOOW); / setts thee LED off ddelay(1000); / waitss for a seccond 以間隔 10000ms 的的時(shí)間把單片片機(jī)的第 113 個(gè) PPin 腳循循環(huán)輸出高低低電平,從而而達(dá)到點(diǎn)亮和和熄滅 LEED 功能。很很簡(jiǎn)單,就是是驗(yàn)證下單片片機(jī)是否可用用。 控制舵機(jī)舵機(jī)就就是遙控模型型上用來(lái)控制制的,其實(shí)就就是一個(gè)帶閉閉環(huán)
7、控制的電電機(jī),能轉(zhuǎn)動(dòng)動(dòng)到指定的角角度。工作原理是:控控制信號(hào)由接接收機(jī)的通道道進(jìn)入信號(hào)調(diào)調(diào)制芯片,獲獲得直流偏置置電壓。它內(nèi)內(nèi)部有一個(gè)基基準(zhǔn)電路,產(chǎn)產(chǎn)生周期為 20ms ,寬度為 1.5mss 的基準(zhǔn)信信號(hào),將獲 得的直流偏偏置電壓與電電位器的電壓壓比較,獲得得電壓差輸出出。 最后,電壓差的的正負(fù)輸出到到電機(jī)驅(qū)動(dòng)芯芯片決定電機(jī)機(jī)的正反轉(zhuǎn)。當(dāng)當(dāng)電機(jī)轉(zhuǎn)速一一定時(shí),通過(guò)過(guò)級(jí)聯(lián)減速齒齒輪帶動(dòng) 電電位器旋轉(zhuǎn),使使得電壓差為為 0 ,電電機(jī)停止轉(zhuǎn)動(dòng)動(dòng)。 在程序中控制舵舵機(jī)的轉(zhuǎn)動(dòng)角角度,就是生生成不同脈寬寬的 PWMM 就行了。 上面的代碼簡(jiǎn)單單的生成一個(gè)個(gè) PWM 驅(qū)動(dòng)舵機(jī)旋旋轉(zhuǎn),比較簡(jiǎn)簡(jiǎn)單。 代碼碼中用
8、 deelay 來(lái)來(lái)實(shí)現(xiàn)延時(shí),如如果是同時(shí)控控制多個(gè)舵機(jī)機(jī),用這樣的的代碼是不行行的,需要自自己計(jì)算時(shí)間間。因?yàn)橛?delayy 整個(gè)單片片機(jī)都“休息息”了,無(wú)法法執(zhí)行任何代代碼。在實(shí)際際實(shí)現(xiàn)中,還還需要不斷的的讀取傳感器器輸入和進(jìn)行行其他處理。紅外距離傳感器器 傳感器介紹: SHARP 紅紅外距離傳感感器,用于模模型或機(jī)器人人制作,可以以用來(lái)測(cè)量距距離。每個(gè)模模塊贈(zèng)送一根根 15cmm 長(zhǎng) PHH2.0 的的單頭排線 . 技術(shù)規(guī)格: 探測(cè)距離: 110-80ccm 工作電壓: 44-5.5VV 標(biāo)準(zhǔn)電流消耗: 33-550 mA 輸出量:模擬量量輸出,輸出出電壓和探測(cè)測(cè)距離成比例例 接好電源
9、,把模模擬信號(hào)輸出出端接在單片片機(jī)的模擬輸輸入 Pinn 就行了。 測(cè)試代碼: int pottPin = 2; int leddPin = 13; int vall = 0; void seetup() pinModee(ledPPin, OOUTPUTT); void looop() val = aanaloggRead(potPiin); digitallWritee(ledPPin, HHIGH); delay(vval); digitallWritee(ledPPin, LLOW); delay(vval); 運(yùn)行結(jié)果, lled 隨著著傳感器距離離的變化閃爍爍間隔也隨著著變化??刂?/p>
10、制電機(jī) 常用的直流電機(jī)機(jī)使用 L2293D 來(lái)來(lái)控制,使用用 H2933 的電路如如下: 不過(guò)在驗(yàn)證是發(fā)發(fā)現(xiàn),對(duì)于小小電機(jī),直接接用單片機(jī)的的 PWM 端子來(lái)輸出出不同電壓的的來(lái)控制速度度也是可行的的,雖然不太太精確,但是是對(duì)于實(shí)現(xiàn)運(yùn)運(yùn)動(dòng)特征是足足夠了。單片片機(jī)無(wú)法輸出出真正的線性性模擬電壓, PWM 是是通過(guò)調(diào)整空空占比間隔來(lái)來(lái)模擬不同電電壓值的。測(cè)量了電機(jī)在空空載和負(fù)載情情況下電流都都只有幾十毫毫安,所以先先采取這種簡(jiǎn)簡(jiǎn)單的辦法驗(yàn)驗(yàn)證。 直接把電機(jī)接到到單片機(jī)的 Gnd 和和 PWM Pin 99 接口,然然后在程序中中直接向 PPin 9 輸出就可以以讓電機(jī)運(yùn)轉(zhuǎn)轉(zhuǎn)了。 int vallu
11、e = 0; innt leddpin = 9; vvoid ssetup() / notthing for ssetup voiid looop() for(valuee = 0 ; vallue =00; vallue-=55) aanaloggWritee(ledppin, vvalue); dellay(300); 上面的程序用不不同的輸出值值驅(qū)動(dòng)電機(jī),可可以看到電機(jī)機(jī)的旋轉(zhuǎn)效果果。 單片機(jī)和主要部部件的驗(yàn)證基基本就完成了了,下一步要要開(kāi)始程序設(shè)設(shè)計(jì)了。 軟件設(shè)計(jì) 思路路 在進(jìn)行代代碼編寫(xiě)之前前,想找到一一種簡(jiǎn)介的實(shí)實(shí)現(xiàn)低級(jí)智能能機(jī)器人的方方式。目前的的工業(yè)機(jī)器人人采用的是精精確控制的
12、方方法,在程序序中固化每種種處理邏輯。用用程序員的思思維來(lái)完成對(duì)對(duì)機(jī)器人的操操作。對(duì)于程程序員來(lái)說(shuō),機(jī)機(jī)器人無(wú)非就就是外接了物物理傳感輸入入和運(yùn)動(dòng)控制制輸出的一臺(tái)臺(tái)電腦,不管管是64位多多核CPU或或者8位單片片機(jī),只是性性能的不同而而已。理論上上,都能通過(guò)過(guò)程序設(shè)計(jì)來(lái)來(lái)達(dá)到預(yù)定的的目標(biāo)。如果果按照計(jì)算機(jī)機(jī)上的普通程程序來(lái)設(shè)計(jì),那那么大量的功功能代碼會(huì)相相互耦合,每每次為了增加加一個(gè)新的運(yùn)運(yùn)動(dòng)功能或者者任務(wù),都需需要編制新的的代碼,而新新的代碼給原原來(lái)的環(huán)路反反饋系統(tǒng)帶來(lái)來(lái)新的邏輯分分支,所有的的步驟都得經(jīng)經(jīng)過(guò)程序員的的驗(yàn)證和設(shè)計(jì)計(jì)。這樣的設(shè)設(shè)計(jì)對(duì)于精確確計(jì)算的PCC程序或者擅擅長(zhǎng)固定場(chǎng)景景精
13、確動(dòng)作的的工業(yè)機(jī)器人人來(lái)說(shuō),都沒(méi)沒(méi)有問(wèn)題。但但是對(duì)于這里里要實(shí)現(xiàn)的“小小強(qiáng)一號(hào)”機(jī)機(jī)器人,是處處在一個(gè)動(dòng)態(tài)態(tài)的變化環(huán)境境當(dāng)中,如果果按照傳統(tǒng)的的軟件設(shè)計(jì)邏邏輯,會(huì)存在在大量耦合的的邏輯分支,導(dǎo)導(dǎo)致程序擴(kuò)展展性很差。舉舉例來(lái)說(shuō),為為了完成一個(gè)個(gè)沿墻壁行走走的功能,必必須對(duì)各種傳傳感器輸入情情況進(jìn)行判斷斷,然后做出出預(yù)置的動(dòng)作作序列。如果果要執(zhí)行的動(dòng)動(dòng)作和需要判判斷的情況很很多,那么程程序邏輯分支支就比較復(fù)雜雜,擴(kuò)展性也也比較差,有有沒(méi)有更好的的適合機(jī)器人人軟件設(shè)計(jì)的的方法呢?換換一種思維來(lái)來(lái)思考的話,我我們要做的不不是電腦程序序,只是一個(gè)個(gè)實(shí)驗(yàn)機(jī)器人人。這個(gè)實(shí)驗(yàn)驗(yàn)機(jī)器人能做做到自然界昆昆蟲(chóng)級(jí)的“
14、智智能”就很不不錯(cuò)了。 試試想,一只螞螞蟻,一只蟑蟑螂會(huì)去思考考這么復(fù)雜的的邏輯分支嗎嗎?去考慮各各種情況下應(yīng)應(yīng)該采取的動(dòng)動(dòng)作? 不太太可能。我們們用了復(fù)雜的的想法去解決決簡(jiǎn)單的事情情。機(jī)器人和和計(jì)算機(jī)的主主要區(qū)別在于于,計(jì)算機(jī)是是按照預(yù)先規(guī)規(guī)劃的指令運(yùn)運(yùn)行,而機(jī)器器人需要根據(jù)據(jù)變化的環(huán)境境選擇合適動(dòng)動(dòng)作。我們首首先可以簡(jiǎn)化化動(dòng)作模型,我我把機(jī)器人的的執(zhí)行任務(wù)分分成3個(gè)層次次:任務(wù)-行行為-動(dòng)作作任務(wù)機(jī)機(jī)器人完成的的一個(gè)期望目目標(biāo),比如“在在一個(gè)范圍內(nèi)內(nèi)收集地面上上的垃圾”可可以界定為一一個(gè)機(jī)器人的的任務(wù)。行為為行為是是對(duì)任務(wù)的分分解,行為是是機(jī)器人根據(jù)據(jù)環(huán)境變化選選擇要做什么么。比如碰到到墻
15、壁需要進(jìn)進(jìn)行躲避。電電源不足需要要充電,就可可以劃分為一一個(gè)行為。動(dòng)動(dòng)作機(jī)器器人最終控制制電機(jī)等輸出出設(shè)備做出的的動(dòng)作,比如如前進(jìn),后退退,轉(zhuǎn)彎。轉(zhuǎn)轉(zhuǎn)動(dòng)攝像頭都都可以劃分成成一個(gè)動(dòng)作單單元。說(shuō)明:任務(wù)由一系系列的行為構(gòu)構(gòu)成;行為有有一個(gè)或者多多個(gè)動(dòng)作組成成,動(dòng)作是立立即執(zhí)行的最最小單元。在在任意一個(gè)時(shí)時(shí)刻,只有一一個(gè)動(dòng)作可以以得到執(zhí)行。軟件實(shí)現(xiàn)的對(duì)象就是分解出簡(jiǎn)單的行為,針對(duì)每個(gè)行為單獨(dú)實(shí)現(xiàn),互相之間無(wú)干涉、無(wú)耦合。當(dāng)多個(gè)行為要輸出互相矛盾的動(dòng)作時(shí),通過(guò)一個(gè)行為優(yōu)先級(jí)表來(lái)決定優(yōu)先級(jí)高的行為來(lái)做出動(dòng)作。在這個(gè)思路中,參考了基于行為編程的理論,關(guān)于詳細(xì)的基于行為編程的描述,可以在網(wǎng)上搜索“Beha
16、vior-based robotics”。通過(guò)這種設(shè)計(jì)思路,可以實(shí)現(xiàn)對(duì)動(dòng)物反射特性的模擬,不需要把精力放在復(fù)雜的邏輯處理上,只需要根據(jù)分解出的基本行為實(shí)現(xiàn)一個(gè)一個(gè)小的行為單元。每個(gè)行為單元只關(guān)心自己的傳感輸入和需要輸出的控制動(dòng)作就行了。確定了設(shè)計(jì)思路,下一部分開(kāi)始針對(duì)小強(qiáng)一號(hào)來(lái)設(shè)計(jì)軟件了。參考資料,有興趣的可以閱讀: 如果需需要增加其他他更加復(fù)雜的的智能,那么么只需要增加加對(duì)應(yīng)的行為為單元就行了了,不用修改改已有的邏輯輯結(jié)構(gòu)。每個(gè)個(gè)行為單元只只需要處理自自己關(guān)心的傳傳感器和需要要控制的動(dòng)作作執(zhí)行部分。這這種方式的好好處就是程序序邏輯變得非非常簡(jiǎn)單,功功能單元之間間不會(huì)存在互互相影響的弊弊端。下
17、面的代碼是是“巡航”行為:class BBhCruiis:pubblic BBehaviior public: public: BhCCruis(constt charr* namme):Beehavioor(namme) ; BhCruiis(); void RRun(); void SSetup(); ; void BhhCruiss:Settup() void BhhCruiss:Runn() intt bid = GettId(); GO_speedd_lefttbid = 2555; GO_speedd_righhtbidd = 2255; GT_beh_aactionnACTIIO
18、N_TYYPE_MOOTORbid = truue; 上面的的代碼很簡(jiǎn)單單,就是讓兩兩個(gè)電機(jī)以同同樣的速度暈暈裝,其他都都不用考慮。對(duì)對(duì)于某些行為為,需要引入入稍微復(fù)雜一一些的處理,比比如發(fā)現(xiàn)障礙礙物,首先要要停下來(lái),然然后判斷是應(yīng)應(yīng)該往左還是是往右,做出出決定之后,再再進(jìn)行具體的的動(dòng)作。針對(duì)對(duì)這種不能在在一個(gè)時(shí)刻完完成,要經(jīng)過(guò)過(guò)幾個(gè)不同的的狀態(tài)才能處處理完成的行行為,可以用用狀態(tài)機(jī)來(lái)解解決。下圖是是“逃離”行為的狀態(tài)態(tài)機(jī): 對(duì)于行行為實(shí)現(xiàn)自己己的狀態(tài)機(jī),在在行為實(shí)現(xiàn)的的代碼內(nèi)部實(shí)實(shí)現(xiàn),而不影影響其他行為為。這種結(jié)構(gòu)構(gòu)可以讓每個(gè)個(gè)行為子關(guān)心心自己的實(shí)現(xiàn)現(xiàn)方式,從而而最大的降低低軟件復(fù)雜度度,方
19、便功能能添加和修改改。逃離行為為狀態(tài)機(jī)實(shí)現(xiàn)現(xiàn)原型代碼: void BhhEscappe:Ruun() intt bid = GettId(); / 狀態(tài)機(jī)實(shí)現(xiàn)現(xiàn) swiitch(sstate) casee 0: / 前方距距離過(guò)小 if(GII_disttanceDISTAANCE_FFORWORRD 10000) GGO_eyeeAngleebid = 0; GGT_behh_actiionACCTION_TYPE_HEADbid = trrue; ttimesttart = milllis(); sstate+; casee 2: / 觀察察左右距離 if(miillis() - ttimesttart 10000) GGO_eyeeAngleebid = 1880; GGT_behh_actiionACCTION_TYPE_HEADbid = trrue; ttimesttart = milllis(); sstate+; casee 3: / 決定定往哪邊轉(zhuǎn)彎彎 if(miillis() -
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年-2024年公司項(xiàng)目部負(fù)責(zé)人安全教育培訓(xùn)試題附答案【黃金題型】
- 立秋文化在新媒體的傳播
- 《材料工程原理緒論》課件
- 《監(jiān)督培訓(xùn)材料》課件
- 激光打標(biāo)機(jī)打標(biāo)軟件與PLC通信穩(wěn)定性的研究
- 部編版七年級(jí)歷史下冊(cè)期末復(fù)習(xí)專(zhuān)題課件2024版
- 云安全隱私保護(hù)機(jī)制-洞察分析
- 營(yíng)養(yǎng)產(chǎn)業(yè)可持續(xù)發(fā)展-洞察分析
- 外觀模式可維護(hù)性-洞察分析
- 稀有金屬國(guó)際市場(chǎng)動(dòng)態(tài)-洞察分析
- 2024-2029年中國(guó)IP授權(quán)行業(yè)市場(chǎng)現(xiàn)狀分析及競(jìng)爭(zhēng)格局與投資發(fā)展研究報(bào)告
- 北京市海淀區(qū)2023-2024學(xué)年四年級(jí)上學(xué)期期末英語(yǔ)試題
- 2024年湖北省漢江國(guó)有資本投資集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
- 廣州市九區(qū)聯(lián)考2023-2024學(xué)年高一上學(xué)期期末教學(xué)質(zhì)量監(jiān)測(cè)數(shù)學(xué)試卷(原卷版)
- 西方國(guó)家的量刑建議制度及其比較
- 游戲方案模板
- 幼兒園大班數(shù)學(xué)上學(xué)期期末考試-試題測(cè)試
- 地震預(yù)警安裝方案
- 汽車(chē)產(chǎn)品定義 培訓(xùn)課件
- NICU患兒常規(guī)監(jiān)測(cè)和護(hù)理要點(diǎn)
- 數(shù)字工程勘察信息平臺(tái)構(gòu)建
評(píng)論
0/150
提交評(píng)論