自平衡機(jī)器人4_第1頁(yè)
自平衡機(jī)器人4_第2頁(yè)
自平衡機(jī)器人4_第3頁(yè)
自平衡機(jī)器人4_第4頁(yè)
自平衡機(jī)器人4_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、樂(lè)高機(jī)器人教程4 HYPERLINK /blog/#m=0&t=1&c=fks_081070080087089075082094074070092080088074085084081 l m=0&t=1&c=fks_081070080087089075082094074070092080088074085084081 o 默認(rèn)分類 默認(rèn)分類 2008-06-24 21:56:39 閱讀1383 評(píng)論1 字號(hào):大中小訂閱 認(rèn)識(shí)傳感器 本章所包含的內(nèi)內(nèi)容:n 觸動(dòng)傳感器器n 光電傳感器器n 角度傳感器器n 溫度傳感器器n 傳感器的使使用方法與技技巧n 其他傳感器器4.1簡(jiǎn)介馬達(dá)通過(guò)齒輪和和滑輪傳動(dòng)

2、,可可以讓你搭建建的機(jī)器人動(dòng)動(dòng)起來(lái),他們們就如同是移移動(dòng)機(jī)器人腿腿和手臂的肌肌肉。同時(shí),你你還可以使用用傳感器來(lái)裝裝備你的機(jī)器器人,它們就就如同是機(jī)器器人的眼睛、耳耳朵和手指。 機(jī)器人人套裝中包含含兩種傳感器器:觸動(dòng)傳感感器(兩種)和和光電傳感器器。在本章中中,我們主要要是描述它們們的特性,對(duì)對(duì)于其它的傳傳感器你可以以單獨(dú)購(gòu)買,如如:角度傳感感器和溫度傳傳感器。每一一個(gè)設(shè)備都有有其特定的作作用,你將會(huì)會(huì)因?yàn)樗鼈兊牡墓δ軓?qiáng)大和和所能涉及的的范圍之廣而而感到驚訝。當(dāng)當(dāng)然也包括這這種情況,可以用一種種傳感器仿效效另一種傳感感器,以用來(lái)來(lái)代替不能使使用的傳感器器。利用RCCX上的紅外外光電,使用用一些

3、小技巧巧,你可以把把把你的光電電傳感器變成成一個(gè)雷達(dá)。 在閱讀本本章的過(guò)程中中,我們希望望你能把機(jī)器器人套裝放在在身邊,這樣你可以以跟隨我們的的例子親自動(dòng)動(dòng)手去做。為為了保持其完完整性,我們們還會(huì)講一些些機(jī)器人套裝裝的擴(kuò)展套裝裝和技術(shù)套裝裝的內(nèi)容。若若你現(xiàn)在還沒沒有這些也不不要擔(dān)心,這這不會(huì)影響到到你搭建體積積較大的機(jī)器器人。4.2觸動(dòng)傳感感器 觸動(dòng)傳感感器(圖4.1)是樂(lè)高高傳感器大家家庭中最簡(jiǎn)單單、最直觀的的一種。它的的工作方式非非常像是你家家門鈴上的按按鈕:當(dāng)它被被按下時(shí),電電路接通,電電流就會(huì)通過(guò)過(guò),RCX就能夠夠檢測(cè)到這個(gè)個(gè)數(shù)據(jù)流,你你的程序就會(huì)會(huì)讀取觸動(dòng)傳傳感器的當(dāng)前前狀態(tài):開或或

4、者關(guān)。圖4.1 觸動(dòng)動(dòng)傳感器如果你已經(jīng)開始始使用機(jī)器人人套裝,閱讀讀了Consstructtopediia,并搭建建了一些模型型,你可能對(duì)對(duì)傳感器的一一般用途比較較熟悉,如緩緩沖器。緩沖沖器是與周圍圍環(huán)境相互作作用的一種簡(jiǎn)簡(jiǎn)單方式,當(dāng)當(dāng)你的機(jī)器人人遇到障礙物物時(shí),可以用用它們來(lái)進(jìn)行行檢測(cè),并由由此而改變運(yùn)運(yùn)動(dòng)狀態(tài)。典型的緩沖器是是一個(gè)重量較較輕的可移動(dòng)動(dòng)裝置,事實(shí)實(shí)上,當(dāng)它碰碰到障礙物時(shí)時(shí)會(huì)把沖擊力力傳遞給觸動(dòng)動(dòng)傳感器并使使之關(guān)閉。你你也可以發(fā)明明出很多種緩緩沖器,但它它們的外形應(yīng)應(yīng)該能夠反映映機(jī)器人的外外形,而且還還能反映出環(huán)環(huán)境中障礙物物的外形。如如圖4.2中所示示一個(gè)非常簡(jiǎn)簡(jiǎn)單的緩沖器器

5、,可以很容容易發(fā)現(xiàn)墻壁壁,假如房間間里有像椅子子一樣等復(fù)雜雜障礙物,它它的效果就不不好了。在這這種情況下,我我們建議你通通過(guò)實(shí)驗(yàn)來(lái)進(jìn)進(jìn)行。為機(jī)器器人設(shè)計(jì)一個(gè)個(gè)緩沖器,在在房間的周圍圍離地板適當(dāng)當(dāng)高度的地方方移動(dòng)它,檢檢查它是否能能夠發(fā)現(xiàn)所有有可能的碰撞撞點(diǎn)。如果你你的緩沖結(jié)構(gòu)構(gòu)較大,當(dāng)它它用最佳部位位撞擊到障礙礙物并按下觸觸動(dòng)傳感器時(shí)時(shí),不要以為為這就是正確確的。圖例44.2是一個(gè)個(gè)不太好的緩緩沖器,因?yàn)闉楫?dāng)碰撞發(fā)生生時(shí),它幾乎乎不能用橫軸軸的邊緣來(lái)關(guān)關(guān)閉觸動(dòng)傳感感器,說(shuō)它是是一個(gè)不好的的緩沖器是因因?yàn)樗颜麄€(gè)個(gè)碰撞產(chǎn)生的的力直線傳輸輸給了傳感器器,也就是說(shuō)說(shuō),在機(jī)器人人身上安裝一一個(gè)非常穩(wěn)固

6、固的支架對(duì)傳傳感器的安裝裝是非常有必必要的。圖4.2簡(jiǎn)單的的緩沖器 根據(jù)經(jīng)驗(yàn)驗(yàn),應(yīng)該嘗試試不同的碰撞撞來(lái)看看緩沖沖器在各個(gè)位位置是否能很很好的工作。你你可以編寫一一個(gè)無(wú)限循環(huán)環(huán)的小程序,當(dāng)當(dāng)傳感器被按按下時(shí),發(fā)出出一聲蜂鳴聲聲用來(lái)測(cè)試你你的緩沖器。 談起緩沖器器,人們往往往會(huì)想到當(dāng)遇遇到障礙物時(shí)時(shí)開關(guān)會(huì)被按按下。這樣說(shuō)說(shuō)似乎有點(diǎn)絕絕對(duì),在發(fā)生生碰撞的時(shí)候候同樣可以松松開開關(guān)??纯匆幌聢D4.3,橡膠皮皮筋可以使積積木輕壓著傳傳感器,當(dāng)緩緩沖器的前面面部分接觸到到物體時(shí),開開關(guān)就會(huì)被釋釋放。圖4.3 平平常壓下的緩緩沖器實(shí)際上,向你推推薦這種緩沖沖器有這樣幾幾個(gè)重要的原原因:l 沖擊力力不可能直接

7、接傳遞給傳感感器,傳感器器與標(biāo)準(zhǔn)的樂(lè)樂(lè)高積木相比比更容易受損損壞,因此應(yīng)應(yīng)避免不必要要的撞擊。l 橡皮皮圈可以吸收收撞擊力,這這對(duì)你的傳感感器和機(jī)器人人來(lái)說(shuō)都會(huì)起起到保護(hù)作用用,當(dāng)你的機(jī)機(jī)器人速度非非???,或者者重量大,或或者反應(yīng)比較較慢,或者具具備其中的一一個(gè)因素時(shí),這這種保護(hù)作用用顯得尤其重重要。緩沖器是一個(gè)非非常重要的裝裝置,而且觸觸動(dòng)傳感器的的應(yīng)用也非常常廣泛。當(dāng)你你想告之RCCX一個(gè)事件件發(fā)生時(shí),你你可以使用按按鈕一樣人為為的把它按下下去。你能想想象出類似的的情況嗎?事事實(shí)上,有很很多。比方說(shuō)說(shuō),你可以按按下銨鈕告訴訴RCX”現(xiàn)在在讀取光電傳傳感器的值”,從而進(jìn)行行讀取校準(zhǔn)(我我們將

8、在以后后的部分進(jìn)行行討論)。 另一個(gè)常用的作作用就是把觸觸動(dòng)傳感器作作為一個(gè)位置置控制器來(lái)用用。如圖4.4,機(jī)器人人向前看時(shí)(圖圖4.4b)就就關(guān)閉了頭部部(圖4.44a)的觸動(dòng)動(dòng)傳感器。通通過(guò)編程可以以在水平面上上實(shí)時(shí)的控制制頭部的旋轉(zhuǎn)轉(zhuǎn)(向左或向向右),當(dāng)傳傳感器被按下下時(shí),機(jī)器人人的頭部就能能轉(zhuǎn)回到正確確的位置,值值的注意的是是,我們?cè)谶@這個(gè)例子中用用到的凸齒輪輪在與觸動(dòng)傳傳感器相配合合時(shí)是非常的的有用,你可可以讓軸通過(guò)過(guò)三個(gè)十字孔孔個(gè)中的一個(gè)個(gè)來(lái)選擇合適適的距離去關(guān)關(guān)閉觸動(dòng)傳感感器。圖4.4 用用觸動(dòng)傳感器器定位在本書的第三部部分我們還會(huì)會(huì)介紹位置控控制的其它一一些應(yīng)用。事事實(shí)上,在搭

9、搭建你的機(jī)器器人之前需要要你去研究一一些不同的方方法。我們?cè)倥e幾個(gè)事事例來(lái)說(shuō)明傳傳感器的應(yīng)用用。假如你想想搭建一個(gè)電電梯。你希望望電梯可以在在任何一層都都能停下。首首先你會(huì)想到到在每一層安安放一個(gè)觸動(dòng)動(dòng)傳感器,當(dāng)當(dāng)按下其中一一個(gè)時(shí),電梯梯室會(huì)在那一一層停下。這這是一個(gè)好方方法,但這里里有一個(gè)小問(wèn)問(wèn)題;你僅有有兩個(gè)觸動(dòng)傳傳感器,對(duì)你你來(lái)說(shuō),一個(gè)個(gè)電梯僅有二二層不是非常常實(shí)際,你可可以再買一個(gè)個(gè)觸動(dòng)傳感器器,但這只能能再加高一層層,并沒有解決決實(shí)質(zhì)性的問(wèn)問(wèn)題。此時(shí),RCX的三個(gè)輸入端口已經(jīng)全部被占用。突然,你會(huì)想到一個(gè)辦法:為什么不把傳感器放在電梯廂上而不是外面呢?在電梯廂上固定一個(gè)傳感器,這樣只

10、需一個(gè)傳感器就可以加高更多的樓層了。從最初的方案到現(xiàn)在更好的方案,兩個(gè)系統(tǒng)是完全相同的嗎?答案是否定的。首先,你需要決定廂的絕對(duì)位置,當(dāng)它在第二層時(shí),你僅是可以知道它的相對(duì)位置。那么,你需要一個(gè)初始點(diǎn),從起始點(diǎn)開始計(jì)算就可以推斷出廂的位置.或者程序運(yùn)行時(shí),需要廂體在一個(gè)特定的位置,或者用第二個(gè)傳感器來(lái)探測(cè)一個(gè)特定的樓層。例如,在最底層放置一個(gè)傳感器,因此程序一開始就降下電梯到最底層。那樣就可以計(jì)算出廂體的絕對(duì)位置了。 現(xiàn)在,電電梯就能夠準(zhǔn)準(zhǔn)確的升降了了。但你還有有最后一個(gè)問(wèn)問(wèn)題需要解決決:如何告訴訴你的電梯它它應(yīng)該去哪一一層呢?在每每一樓層放置置一個(gè)傳感器器去提示電梯梯是不切合實(shí)實(shí)際的。在RR

11、CX上只剩剩下一個(gè)輸入入端口了。你你要用這一個(gè)個(gè)觸動(dòng)傳感器器來(lái)做什么呢呢?你還可以以采用以前的的方法嗎?可可以,你可以以計(jì)算一個(gè)觸觸動(dòng)傳感器被被按下的次數(shù)數(shù)。比如說(shuō),被被按下三次表表示是三樓,依依次類推?,F(xiàn)現(xiàn)在你就可以以去搭建你的的電梯了。 方法與技巧計(jì)算按下次數(shù)下面這個(gè)例子是是用偽代碼來(lái)來(lái)編寫的,一一個(gè)代碼并不不與實(shí)際編寫寫語(yǔ)言相對(duì)應(yīng)應(yīng),而是界于程序序語(yǔ)言和機(jī)器器語(yǔ)言之間。使使用偽代碼編編程在專業(yè)程程序員中是一一種非常普遍遍的做法。計(jì)算觸動(dòng)傳感器器被按下多少少次需要一些些小竊門。假如你你寫了一些簡(jiǎn)簡(jiǎn)單的代碼,如如下:Counterr =0repeat if Sensoor1 iss on t

12、then Countter = Couunter +1 end ifend rrepeatt當(dāng)你保持觸動(dòng)傳傳感器被按下下很短的間隔隔內(nèi),你的程程序代碼就會(huì)會(huì)在你的RCCX上飛快的的執(zhí)行。然而而,在記錄下下一個(gè)新的按按下之前,需需要松開觸動(dòng)動(dòng)傳感器:Counterr = 00repeat if Senssor1 is oon theen CCounteer =Coounterr+1 wwait uuntil Senssor1 is offfend ifend reppeat現(xiàn)在,你編寫的的代碼正確地地記錄了從斷斷開到閉合的的變化。在你你的代碼中,有有一個(gè)重要的的特點(diǎn)需要介介紹一下:當(dāng)當(dāng)它在一段時(shí)

13、時(shí)間內(nèi)接收不不到觸動(dòng)信息息時(shí),你希望望你的計(jì)數(shù)程程序停止。為為了實(shí)現(xiàn)這一一點(diǎn),你需要要使用一個(gè)計(jì)計(jì)時(shí)器用來(lái)測(cè)測(cè)量上一次按按下時(shí)間與最最后一次時(shí)間間的間隔:Counterr=0intervaal = reset TTimerrepeat if Senssor1 is onn thenn Counnter = Counnter + 1wait unntil SSensorr1 iss off or unntil TTimer if grreaterr thenn Inteerval rreset Timerrend ifuntil TTimer is grreaterr thenn Intterv

14、all假如你的時(shí)間間間隔是兩秒。當(dāng)當(dāng)計(jì)數(shù)程序開開始時(shí),計(jì)時(shí)時(shí)器和計(jì)數(shù)器器首先復(fù)位為為0,然后開始始檢測(cè)傳感器器的狀態(tài)。如如果兩秒內(nèi)沒沒有按下觸動(dòng)動(dòng)傳感器,它它仍將保持復(fù)復(fù)位狀態(tài),如如果有觸動(dòng)傳傳感器被按下下,此動(dòng)作將將被記下并等等待使用者釋釋放按鈕,計(jì)計(jì)時(shí)器復(fù)位為為零, 在程序停止止運(yùn)行之前,使使用者可以在在兩秒內(nèi)第二二次按下觸動(dòng)動(dòng)傳感器。4.3光電傳感感器用”看”來(lái)形容容光電傳感器器的功能有點(diǎn)點(diǎn)夸大其辭。實(shí)實(shí)際上它只是是用來(lái)檢測(cè)光光并測(cè)量其強(qiáng)強(qiáng)度。盡管受受到限制,但但其應(yīng)用范圍圍仍比較廣。圖4.5 光電電傳感器光電傳感器和觸觸動(dòng)傳感器的的最大區(qū)別是是,后者返回回的是一些數(shù)數(shù)值而不是單單純的開

15、/關(guān)狀態(tài)。你你所讀到的數(shù)數(shù)值由光電傳傳感器在那個(gè)個(gè)時(shí)候所檢測(cè)測(cè)到的光強(qiáng)所所決定。這些些數(shù)值以0至100的百分分?jǐn)?shù)的形式返返回,光值越越大,百分?jǐn)?shù)數(shù)就越大。你你可以用光電電傳感器來(lái)做做什么呢?你你可以用它搭搭建一個(gè)由光光電傳感器所所驅(qū)動(dòng)的機(jī)器器人,我們稱稱之為光的追追隨者,它可可以檢測(cè)周圍圍的環(huán)境,找找到一個(gè)強(qiáng)光光源(或者是是最亮的)并并朝著它前進(jìn)進(jìn)。在一間足足夠暗的房間間里進(jìn)行,以以免產(chǎn)生干擾擾,你也可以以用手電筒來(lái)來(lái)控制你的機(jī)機(jī)器人。檢測(cè)外部光源的的功能是非常常有趣的,但但是或許你不不能用它來(lái)做做最令人驚奇奇的事情。我我們介紹一下下光電傳感器器的另一個(gè)用用途:它不但但可以用來(lái)檢檢測(cè)光強(qiáng),而而

16、且還可以自自身發(fā)光。提提供穩(wěn)定光源源的是一個(gè)紅紅色的發(fā)光二二極管,因此此你可以用來(lái)來(lái)測(cè)量反射光光并傳給傳感感器。當(dāng)你用來(lái)測(cè)量反反射光時(shí),你你必須去避免免一些來(lái)自其其它光源的干干擾。需要注注意的是光電電傳感器對(duì)IIR所發(fā)出的的光也非常敏敏感,像典型型的遠(yuǎn)距離控控制器發(fā)出的的紅外光,如如攝像機(jī);或或者是樂(lè)高紅紅外發(fā)射器。 設(shè)計(jì)與計(jì)劃讀取周圍的光值值樂(lè)高光電傳感器器并不適合于于測(cè)量外部光光源來(lái)說(shuō),因因?yàn)槠潇`敏度度比較弱。紅紅色發(fā)光二極極管所所發(fā)出出的光太靠近近檢光器以致于過(guò)多的的影響了光值值的讀取。如如果你想測(cè)外外部光源,你你應(yīng)該考慮盡盡可能的去減減少紅色發(fā)光光二極管的影影響。一個(gè)簡(jiǎn)簡(jiǎn)單的辦法就就是

17、在光電傳傳感器的前部部放一個(gè)12的單孔積積木塊,.更多的行之之有效的辦法法需要你對(duì)光光電傳感器有有些細(xì)微的改改動(dòng)。在Raalph HHempell的網(wǎng)站中,他他提到了如何何對(duì)光電傳感感器作修改,既既不是永久的的改變也不會(huì)會(huì)損害你的光光電傳感器。(見見附錄A)光在表面的反射射率取決于許許多因素,主主要是表面的的顏色,質(zhì)地地和它距光源源的遠(yuǎn)近。黑黑色物體的反反射能力要弱弱于白色物體體;黑色光滑滑表面的反射射能力要強(qiáng)于于黑色不光滑滑表面。另外外,距離光電電傳感器越遠(yuǎn)遠(yuǎn),光電傳感感器所檢測(cè)到到的反射光就就會(huì)越少。這些因素都是相相互依賴的,通通過(guò)光感讀取取的值,并不不能說(shuō)明是由由哪個(gè)因素引引起的。但你你

18、可以保持其其它因素不便便,而讓一個(gè)個(gè)變化,這樣樣就可以通過(guò)過(guò)讀取的數(shù)值值來(lái)推斷出環(huán)環(huán)境的一些變變化。例如,如如果你的光電電傳感器經(jīng)常常對(duì)著同一個(gè)個(gè)物體,或者者相同質(zhì)地和和顏色的物體體,你能夠用用它去測(cè)出它它的相對(duì)距離離。另一方面面,你可以把把不同的物體體放置在光電電傳感器的前前面,在恒定定的距離內(nèi)分分辨出它們的的顏色。4.3.1測(cè)量量反射光值 為了舉例說(shuō)明測(cè)測(cè)量反射光的的原理,我們們來(lái)做一個(gè)實(shí)實(shí)驗(yàn)。拿一個(gè)個(gè)RCX并打開開其電源,在在任意一個(gè)輸輸入端口連接接一個(gè)光電傳傳感器,在你你的程序中正正確的設(shè)置其其端口(紅色色發(fā)光二極管管應(yīng)該發(fā)光)。準(zhǔn)準(zhǔn)備一間光線線較暗的房間間,RCX有個(gè)控控制模式,可可

19、以實(shí)時(shí)查看看光感讀取的的值。按RCCX上的VIEWW鍵,當(dāng)小箭箭頭正確顯示示在傳感器所所接的輸入端端口位置。在在顯示屏上會(huì)會(huì)顯示出讀取取的光線值。接接下去你把光光感放到桌上上,在桌上以以一定間隔(0.5cm,1cm,1.5cm)并排放置不同顏色的積木塊,保證積木之間的間距相等。查看數(shù)據(jù),得到的是不同顏色的積木反射的光值是不同的。再進(jìn)行第二個(gè)實(shí)實(shí)驗(yàn):將白色色的積木快慢慢慢的移向光光感,然后再再慢慢的移開開,觀察顯示示屏上的數(shù)據(jù)據(jù),可以發(fā)現(xiàn)現(xiàn)當(dāng)光感與積積木間的距離離加大時(shí)數(shù)值值將減小。我我們的目的就就是為了證明明光感是不能能同時(shí)判斷出出距離和顏色色的。我們重重點(diǎn)強(qiáng)調(diào)在你你使用光感時(shí)時(shí)盡量避免外外界

20、光線的干干擾。 方法與技巧理解原始值的概概念了解原始值是很很關(guān)鍵的,對(duì)對(duì)于熟練的使使用機(jī)器人套套裝并不是必必須的。但從從另一個(gè)方面面講,它可以以幫助你理解解傳感器是如如何工作的。RCX把來(lái)自傳傳感器(不管管是什么類型型)的電信號(hào)號(hào)全部轉(zhuǎn)變成成范圍在0至1023之間間的數(shù)字信號(hào)號(hào),我們稱之之為原始數(shù)值值。在程序中中,你在一個(gè)個(gè)端口上設(shè)置置了一個(gè)特定定的傳感器,RCX會(huì)自動(dòng)設(shè)定該傳感器的原始數(shù)值范圍,例如,從觸動(dòng)傳感器讀取的數(shù)值范圍是1或者0,代表開或者關(guān),當(dāng)從溫度傳感器讀取時(shí)就會(huì)轉(zhuǎn)變成攝氏溫度或華氏溫度。同樣地,光電傳感器讀取時(shí)就會(huì)通過(guò)下面的方程式轉(zhuǎn)換成一個(gè)百分?jǐn)?shù):百分?jǐn)?shù)=1466-原始數(shù)值值/

21、7為什么我們需要要知道這種轉(zhuǎn)轉(zhuǎn)換呢?對(duì)于于大多數(shù)應(yīng)用用程序來(lái)說(shuō),通通過(guò)RCX返回的的光感值的百百分?jǐn)?shù)形式更更加有效,但但也有這種情情況,你需要要所有光感變變化值而百分分?jǐn)?shù)形式卻不不能體現(xiàn)出光光感值的一些些變化。我們們用一個(gè)例子子來(lái)做一下說(shuō)說(shuō)明。假設(shè)會(huì)會(huì)有兩種不同同的情形,光光電傳感器讀讀取707和713兩個(gè)不同的數(shù)數(shù)值。把這兩兩個(gè)數(shù)值轉(zhuǎn)換換成百分?jǐn)?shù),因因?yàn)镽CX只使用用整數(shù),需要將除的的結(jié)果進(jìn)行圓圓整。146-(7007/7)=146-1101=455 146-(7113/7)=146-1101=455在第二個(gè)方程式式中數(shù)值1001實(shí)際上是是101.8857,去去掉小數(shù)部分分為101.就看部不

22、出出兩個(gè)值是不不同的。我們們知道在大多多情況下數(shù)值值的小數(shù)部分分是不重要的的。但也會(huì)有有其它情況需需要用到這樣樣一個(gè)微小的的變化的數(shù)據(jù)據(jù)如果你用LEGGO圖形化的的編程環(huán)境為為RCX編寫程程序,你必須須接受它的刻刻度值,否則則無(wú)法處理原原始數(shù)值。如如果你選擇其其它的編程語(yǔ)語(yǔ)言,則可以以直接處理沒沒有處理過(guò)的的原始數(shù)值,在在必須的時(shí)候候,利用其優(yōu)優(yōu)勢(shì),可能會(huì)會(huì)有更好的解解決方案。 識(shí)別不不同的顏色是是光電傳感器器一個(gè)非常普普通的應(yīng)用。我我們?cè)f(shuō)過(guò),光光電傳感器實(shí)實(shí)際上并不是是用來(lái)識(shí)別顏顏色的,而是是用來(lái)讀取反反射光值。因因此,它很難難把黑色和藍(lán)藍(lán)色的積木塊塊區(qū)別開。但但目前來(lái)說(shuō),我我們?nèi)哉f(shuō)它能能

23、識(shí)別顏色,在在讀完之后您您會(huì)明白真正正的意思是什什么。4.3.2沿線線走 目前,光電傳感感器最普遍的的使用方法就就是用它搭建建一個(gè)沿線走走的機(jī)器人。這個(gè)項(xiàng)目的設(shè)置置是很簡(jiǎn)單的的,這也是之之所以流行的的一個(gè)原因。盡盡管其外觀簡(jiǎn)簡(jiǎn)單,這項(xiàng)工工作仍需要引引起足夠的重重視,并需要要你仔細(xì)設(shè)計(jì)計(jì)和認(rèn)真編程程。我們將在在第二部分詳詳細(xì)的討論這這個(gè)主題的細(xì)細(xì)節(jié)內(nèi)容。當(dāng)當(dāng)光電傳感器器在輕質(zhì)地面面上讀取一條條黑線時(shí),你你要注意有什什么事情發(fā)生生。 當(dāng)把光電電傳感器放在在地板上時(shí),假假設(shè)說(shuō)讀取的的數(shù)值為百分分之七十,黑黑線為百分之之三十。如果果你想讓機(jī)器器人緩慢的從從地板移動(dòng)到到黑線或者是是有污點(diǎn)的地地方.你會(huì)注

24、意到到,數(shù)值不是是從一個(gè)值突突然跳到另一一個(gè)值,而是是會(huì)出現(xiàn)一系系列的中間值值。原因是光光電傳感器不不是讀取一個(gè)個(gè)點(diǎn),而是光光電傳感器前前部的一個(gè)小小區(qū)域。所以以當(dāng)光電傳感感器穿過(guò)線的的邊緣時(shí),它它所讀取的是是地板和黑線線的邊界值并并返回一個(gè)中中間值。這個(gè)功能有用嗎嗎?當(dāng)然,有有時(shí)有用,有有時(shí)沒有用。尤尤其當(dāng)我們涉涉及到沿線走走時(shí),它是有有用的。實(shí)際際上,你可以以(或者說(shuō)應(yīng)應(yīng)該)編寫一一段程序讓你你的機(jī)器人沿沿著邊界走而而不是實(shí)際的的黑線。這樣樣當(dāng)機(jī)器人需需要改變它的的行進(jìn)路線時(shí)時(shí),它知道往往哪個(gè)方向轉(zhuǎn)轉(zhuǎn)身:如果所所讀取的值太太”暗”,它應(yīng)該向向亮的區(qū)域前前進(jìn),或有污污點(diǎn)的區(qū)域。 技巧與提示校

25、準(zhǔn)讀取值有時(shí),你并不能能預(yù)先知道光光電傳感器實(shí)實(shí)際上所讀取取的數(shù)值是多多少。假如你你要參加一個(gè)個(gè)沿線走的比比賽:你并不不能確定你的的傳感器所返返回的地板和和黑線的數(shù)值值。在這種情情況下,一般般的習(xí)慣是,在在你的程序中中不寫入預(yù)期期的常數(shù)值是是比較好的。但但可以讓你的的機(jī)器人通過(guò)過(guò)一個(gè)簡(jiǎn)單的的測(cè)量程序來(lái)來(lái)讀取這些數(shù)數(shù)值。繼續(xù)我我們沿線走的的例子,你可以專設(shè)設(shè)一個(gè)空的輸輸入端口用來(lái)來(lái)接入一個(gè)觸觸動(dòng)傳感器,當(dāng)當(dāng)你把機(jī)器人人放在地板上上時(shí)手動(dòng)按下下觸動(dòng)傳感器器,然后再放放在黑線上,因因此它就可以以保存下讀取取到的最大值值和最小值?;蚧蛘吣憧梢跃幘帉懸粋€(gè)小的的檢測(cè)程序,以以取消那些限限制。當(dāng)你需要控制一

26、一個(gè)更復(fù)雜的的區(qū)域時(shí),舉例來(lái)說(shuō),區(qū)區(qū)域包括三種種不同的顏色色, 想象一個(gè)臺(tái)臺(tái)面被劃為白白色,黑色和和灰色三個(gè)不不同顏色的區(qū)區(qū)域。在白色色和黑色之間間的邊界上你你如何能區(qū)別別出灰色區(qū)域域? 這時(shí)你不不能只做一個(gè)個(gè)簡(jiǎn)單的讀取取,你必須深深入考慮其它它的因素, 像預(yù)先讀取取,或者你可以以使你的機(jī)器器人在一個(gè)地地方收集更多多的數(shù)據(jù)并推推斷它所在的的位置。要處處理這樣的情情況,對(duì)軟件件的要求就會(huì)會(huì)變得更加復(fù)復(fù)雜。光電傳感器如同同一個(gè)萬(wàn)能器器,它有很多多種使用方法法。你可以在在光電傳感器器的前部放置置一個(gè)彩色的的可以移動(dòng)的的樂(lè)高梁來(lái)搭搭建一個(gè)對(duì)稱稱形狀的裝置置.圖4.6就是一一個(gè)這樣的例例子。當(dāng)你推推或者

27、拉梁的的上部時(shí),光光電傳感器就就會(huì)讀取不同同的光值。圖4.6 用光光電傳感器作作一個(gè)模擬控控制光電傳感器與燈燈相結(jié)合(不不包括在頭腦腦風(fēng)暴套裝中中)可做成一一個(gè)光電管(圖圖4.7);當(dāng)當(dāng)有物體擋在在光電傳感器器和燈之間時(shí)時(shí),機(jī)器人就就會(huì)察覺。值值得注意的是是,我們?cè)诠夤怆妭鞲衅鞯牡那懊娣胖昧肆艘粋€(gè)122的單孔梁,以以減少來(lái)自周周圍光線的干干擾。圖4.7 光電電管4.3.3接近近探測(cè) 你可以用光電傳傳感器做成一一個(gè)雷達(dá)探測(cè)測(cè)器用于檢測(cè)測(cè)即將碰到的的障礙物。這這被稱之為接接近探測(cè)。這這項(xiàng)技術(shù)所基基于的特性我我們已經(jīng)討論論并探究過(guò)了了,就是光電電傳感器可以以根據(jù)反射光光線來(lái)測(cè)定相相對(duì)距離。假假如你的

28、機(jī)器器人要直線前前進(jìn),用一個(gè)個(gè)光電傳感器器為它在前面面引路。假如如你的機(jī)器人人要在一個(gè)暗暗室里移動(dòng),除除了光電傳感感器上的紅色色發(fā)光二極管管之外沒有任任何的光源。在在向前移動(dòng)的的過(guò)程中,機(jī)機(jī)器人連續(xù)不不斷的讀取傳傳感器所檢測(cè)測(cè)到的光值。如如果讀取值趨趨向于迅速增增大,就可以以推斷出機(jī)器器人正向著一一個(gè)物體前進(jìn)進(jìn)。但不能推推斷出障礙物物的種類及與與障礙物之間間的距離,如如果房間內(nèi)沒沒有物體在移移動(dòng),你確信信機(jī)器人正在在接近障礙物物?,F(xiàn)在我們們有了一套系系統(tǒng)可以躲避避障礙物而不不是局限于碰碰撞以后再檢檢測(cè)它們。注意:RCX內(nèi)部的IIR LEDD發(fā)射的是不不可見光,光光電傳感器的的紅色二極管管發(fā)射的

29、是可可見光。 遺憾地是是,當(dāng)房間內(nèi)內(nèi)有光源時(shí),這這項(xiàng)技術(shù)工作作就有問(wèn)題了了,原因是你你的程序不能能區(qū)別自身反反射回的紅色色光還外界環(huán)環(huán)境光線。你你需要在機(jī)器器人身上有一一個(gè)更明顯的的獨(dú)立光源提提供更高的參參考。 令人欣慰慰的是,正好好有一個(gè)!RRCX內(nèi)部有有一個(gè)IR LED可以以發(fā)射信息給給紅外發(fā)射儀儀或是另一個(gè)個(gè)RCX。用RCX內(nèi)部的的IR LEED以比特的的編碼形式發(fā)發(fā)送信息可以以被紅外發(fā)射射器所接收到到。關(guān)于信息息的內(nèi)容我們們并不關(guān)心;我們需要的的僅僅是光。盡盡管紅外光對(duì)對(duì)于肉眼來(lái)說(shuō)說(shuō)是不可見的的,卻與可見見光具有相同同的性質(zhì),LLEGO光電電傳感器對(duì)此此卻非常敏感感。 所以,現(xiàn)現(xiàn)在你的

30、程序序有了使用接接近探測(cè)的所所有條件。發(fā)發(fā)送一個(gè)IRR信息并立即即讀取光電傳傳感器的值.你最好把讀讀取的數(shù)值進(jìn)進(jìn)行一下平均均處理,這樣樣可以把外部部光源所導(dǎo)致致的影響降至至最低(我們們將會(huì)第122節(jié)討論這個(gè)個(gè)竅門)。如如果你注意到到在隨后的二二組值中有顯顯著的增加,舉舉例來(lái)說(shuō),百百分之十,說(shuō)說(shuō)明你的機(jī)器器人很有可能能正朝著障礙礙物前進(jìn)。4.4角度傳感感器我們將要研究的的第三個(gè)樂(lè)高高傳感器是角角度傳感器(圖圖4.8)。遺遺可是機(jī)器人人套裝中沒有有包含該部件件,它的多功功能性僅次于于光電傳感器器。在38001 Ulttimatee Acceessoryy套裝里面包包含一個(gè)角度度傳感器,還還有一個(gè)觸

31、動(dòng)動(dòng)傳感器,一一個(gè)燈,遙控器 和少量的其其它附件。圖4.8 角度度傳感器 方法與技巧角度傳感器是如如何工作的呢呢?因?yàn)榻嵌葌鞲衅髌饔兴姆N不同同的狀態(tài),所所以會(huì)返回四四種不同的值值。我們稱之之為A,B,C和D。對(duì)于每一一次完整的旋旋轉(zhuǎn),它經(jīng)過(guò)過(guò)了四種狀態(tài)態(tài)各四次這也就是我我們?yōu)槭裁匆檬鶃?lái)計(jì)計(jì)數(shù)的原因。如如果角度傳感感器是順時(shí)針針旋轉(zhuǎn),它會(huì)會(huì)讀序列ABBCD,如如果是逆時(shí)針針旋轉(zhuǎn),讀取取的結(jié)果會(huì)是是ADCBAA,RCX會(huì)時(shí)刻刻檢測(cè)傳感器器,當(dāng)RCXX檢測(cè)到狀態(tài)態(tài)發(fā)生變化時(shí)時(shí),它不但可可以推斷出角角度傳感器已已經(jīng)轉(zhuǎn)動(dòng),而而且還可以知知道所旋轉(zhuǎn)的的方向。舉例例來(lái)說(shuō),從AA轉(zhuǎn)變到B,或從D轉(zhuǎn)變到A

32、,計(jì)數(shù)器將將增加一個(gè)單單位,然而,從從D到C,或者是從從A到D,計(jì)數(shù)器將將減少一個(gè)單單位。角度傳感器,顧顧名思義,是是用來(lái)檢測(cè)角角度的。它的的身體中有一一個(gè)孔,可以以配合樂(lè)高的的軸。當(dāng)連結(jié)結(jié)到RCX上時(shí),軸軸每轉(zhuǎn)過(guò)1/16圈,角角度傳感器就就會(huì)計(jì)數(shù)一次次。往一個(gè)方方向轉(zhuǎn)動(dòng)時(shí),計(jì)計(jì)數(shù)增加,轉(zhuǎn)轉(zhuǎn)動(dòng)方向改變變時(shí),計(jì)數(shù)減減少。計(jì)數(shù)與與角度傳感器器的初始位置置有關(guān)。當(dāng)初初始化角度傳傳感器時(shí),它它的計(jì)數(shù)值被被設(shè)置為0,如果需要要,你可以用用編程把它重重新復(fù)位。通過(guò)計(jì)算旋轉(zhuǎn)的的角度,你可可以很容易的的測(cè)出位置和和速度。當(dāng)在在機(jī)器人身上上連接上輪子子(或通過(guò)齒齒輪傳動(dòng)來(lái)移移動(dòng)機(jī)器人)時(shí)時(shí),可以依據(jù)據(jù)旋轉(zhuǎn)的角度

33、度和輪子圓周周數(shù)來(lái)推斷機(jī)機(jī)器人移動(dòng)的的距離。然后后就可以把距距離轉(zhuǎn)換成速速度,你也可可以用它除以以所用時(shí)間。實(shí)實(shí)際上,計(jì)算算距離的基本本方程式為:距離=速度時(shí)時(shí)間由此可以得到:速度=距離/時(shí)時(shí)間如果把角度傳感感器連接到馬馬達(dá)和輪子之之間的任何一一根傳動(dòng)軸上上,必須將正正確的傳動(dòng)比比算入所讀的的數(shù)據(jù)。舉一一個(gè)有關(guān)計(jì)算算的例子。在在你的機(jī)器人人身上,馬達(dá)達(dá)以3:1的傳動(dòng)動(dòng)比與主輪連連接。角度傳傳感器直接連連接在馬達(dá)上上。所以它與與主動(dòng)輪的傳傳動(dòng)比也是33:1。也就就是說(shuō),角度度傳感器轉(zhuǎn)三三周,主動(dòng)輪輪轉(zhuǎn)一周。角角度傳感器每每旋轉(zhuǎn)一周計(jì)計(jì)16個(gè)單位,所所以16*33=48個(gè)增增量相當(dāng)于主主動(dòng)輪旋轉(zhuǎn)一一周?,F(xiàn)在,我我們需要知道道齒輪的圓周周來(lái)計(jì)算行進(jìn)進(jìn)距離。幸運(yùn)運(yùn)地是,每一一個(gè)LEGOO齒輪的輪胎胎上面都會(huì)標(biāo)標(biāo)有自身的直直徑。我們選選擇了體積最最大的有軸的的輪子,直徑徑是81.66CM

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論