當(dāng)前位置: 首頁(yè) > 傳感測(cè)量產(chǎn)品 > 工業(yè)傳感器 > 光電傳感器
發(fā)布日期:2022-10-09 點(diǎn)擊率:89

物聯(lián)網(wǎng)之RFID電子標(biāo)簽
新聞來(lái)源:新物聯(lián)Newiot整理 2020-2-20 共有: 4321 瀏覽
電子標(biāo)簽又稱(chēng)射頻標(biāo)簽、應(yīng)答器、數(shù)據(jù)載體;閱讀器又稱(chēng)為讀出裝置、掃描器、讀頭、通信器、讀寫(xiě)器(取決于電子標(biāo)簽是否可以無(wú)線改寫(xiě)數(shù)據(jù))。電子標(biāo)簽與閱讀器之間通過(guò)耦合元件實(shí)現(xiàn)射頻信號(hào)的空間(無(wú)接觸)耦合;在耦合通道內(nèi),根據(jù)時(shí)序關(guān)系,實(shí)現(xiàn)能量的傳遞和數(shù)據(jù)交換。
智慧交通中的ETC電子不停車(chē)收費(fèi)系統(tǒng)是什么?
新聞來(lái)源:新物聯(lián)Newiot整理 2020-2-23 共有: 2782 瀏覽
ETC( Electronic Toll Collection ) ,中文是:電子不停車(chē)收費(fèi)系統(tǒng),是高速公路或橋梁自動(dòng)收費(fèi)。ECT也是屬于物聯(lián)網(wǎng)智慧交通一個(gè)重要的應(yīng)用之一。主要通過(guò)安裝在車(chē)輛擋風(fēng)玻璃上的車(chē)載電子標(biāo)簽與在收費(fèi)站 ETC 車(chē)道上的微波天線之間進(jìn)行的專(zhuān)用短程通訊,利用計(jì)算機(jī)聯(lián)網(wǎng)技術(shù)與銀行進(jìn)行后臺(tái)結(jié)算處理,從而達(dá)到車(chē)輛通過(guò)高速公路或橋梁收費(fèi)站無(wú)需停車(chē)而能交納高速公路或橋梁費(fèi)用的目的。
物聯(lián)網(wǎng)應(yīng)用之智能安防
新聞來(lái)源:新物聯(lián)Newiot整理 2020-2-23 共有: 3368 瀏覽
智能安防技術(shù),是智慧城市的重要組成部分,也是物聯(lián)網(wǎng)的重要應(yīng)用之一。主要是指利用互聯(lián)網(wǎng)和物聯(lián)網(wǎng)技術(shù),信息化、圖象的傳輸和存儲(chǔ)技術(shù),其隨著科學(xué)技術(shù)的發(fā)展與進(jìn)步和二十一世紀(jì)信息技術(shù)的騰飛已邁入了一個(gè)全新的領(lǐng)域,智能化安防技術(shù)與計(jì)算機(jī)之間的界限正在逐步消失。
國(guó)際工業(yè)物聯(lián)網(wǎng)技術(shù)應(yīng)用大會(huì)
新物聯(lián)號(hào):巴斯特會(huì)展 2020-2-25 共有: 974 瀏覽
2020國(guó)際工業(yè)物聯(lián)網(wǎng)技術(shù)應(yīng)用大會(huì) 主辦方,今年5月在廣州會(huì)展中心舉辦,邀請(qǐng)貴司參加的,關(guān)于智能制造、智慧工廠的 RFID射頻物聯(lián)技術(shù)應(yīng)用 還有成功案例的分享
2020國(guó)際工業(yè)物聯(lián)技術(shù)與應(yīng)用展覽會(huì) 主辦方
2020江西南昌-第三屆中國(guó)國(guó)際通信電子產(chǎn)業(yè)博覽會(huì)
新物聯(lián)號(hào):九辰會(huì)展 2020-2-28 共有: 829 瀏覽
第三屆中國(guó)國(guó)際通信電子產(chǎn)業(yè)博覽會(huì)將于2020年10月16日-19日,在江西南昌綠地博覽中心隆重舉行,展出面積為3萬(wàn)平方米,全面升級(jí)“國(guó)際化,市場(chǎng)化,品牌化,產(chǎn)業(yè)化”,充分展示通信電子領(lǐng)域最新發(fā)展成果與趨勢(shì),著力打造為最具專(zhuān)業(yè)性,國(guó)際通信電子產(chǎn)業(yè)交流互動(dòng)平臺(tái)。
目博科技順利通過(guò)2019年國(guó)家高新技術(shù)企業(yè)認(rèn)定
新物聯(lián)號(hào):目博科技 2020-3-2 共有: 1099 瀏覽
戰(zhàn)疫情,實(shí)業(yè)報(bào)國(guó),作為行業(yè)新晉領(lǐng)軍企業(yè),目博科技憑借過(guò)硬的研發(fā)團(tuán)隊(duì)以及技術(shù)優(yōu)勢(shì),基于物聯(lián)網(wǎng)科技,成功獲得國(guó)家高新科技企業(yè)認(rèn)定,正式躋身國(guó)家高新技術(shù)企業(yè)行列。
疫情之下,鄭州開(kāi)啟智慧城市抗疫
新聞來(lái)源:國(guó)資委網(wǎng)站 2020-3-3 共有: 1293 瀏覽
隨著復(fù)工復(fù)產(chǎn)有序開(kāi)展,不少地方迎來(lái)了返程旅客。通過(guò)中國(guó)航天科技集團(tuán)有限公司五院航天神舟智慧系統(tǒng)技術(shù)有限公司(簡(jiǎn)稱(chēng)航天智慧)搭建的“CIG”平臺(tái),在浙江省長(zhǎng)興縣太湖街道基層治理綜合指揮中心,8000余把智能門(mén)鎖有效收集了條流動(dòng)人口數(shù)據(jù),目前已累計(jì)排查湖北來(lái)長(zhǎng)興人員96人。圍繞新冠肺炎疫情防控,一張“智慧城市”信息網(wǎng)以政府為中心運(yùn)轉(zhuǎn)起來(lái)。
2020廣州國(guó)際工業(yè)裝配及自動(dòng)化展覽會(huì)
新物聯(lián)號(hào):昶文展覽 2020-3-3 共有: 1201 瀏覽
2020年是全面落實(shí)“十三五”規(guī)劃的重要一年,也是推進(jìn)結(jié)構(gòu)調(diào)整、轉(zhuǎn)型升級(jí)的關(guān)鍵一年。為進(jìn)一步推進(jìn)工業(yè)強(qiáng)國(guó)戰(zhàn)略,國(guó)家十八屆五中全會(huì)為“十三五”期間我國(guó)工業(yè)發(fā)展制定了明確的路線,要加快建設(shè)制造強(qiáng)國(guó),實(shí)施《中國(guó)制造2025》。推動(dòng)信息化、工業(yè)化融合發(fā)展,深化互聯(lián)網(wǎng)在制造領(lǐng)域的領(lǐng)域,推動(dòng)“智能制造”發(fā)展。
2020廣州國(guó)際嵌入式系統(tǒng)博覽會(huì)
新物聯(lián)號(hào):昶文展覽 2020-3-3 共有: 1898 瀏覽
隨著物聯(lián)網(wǎng)產(chǎn)業(yè)的快速發(fā)展,深度學(xué)習(xí)與AI人工智能技術(shù)在各行業(yè)開(kāi)始應(yīng)用,嵌入式技術(shù)的發(fā)展將備受矚目。 在各級(jí)主管部門(mén)的領(lǐng)導(dǎo)下,由中國(guó)機(jī)械工業(yè)集團(tuán)有限公司主辦,廣東省人民政府、廣州市政府重點(diǎn)支持,廣州市工業(yè)和信息化局組織,中國(guó)機(jī)械國(guó)際合作股份有限公司、國(guó)機(jī)智能科技有限公司、中國(guó)電器科學(xué)技術(shù)研究院股份有限公司聯(lián)合承辦的“2020廣州國(guó)際嵌入式系統(tǒng)博覽會(huì)”定于2020年8月6日-8日在廣州中國(guó)進(jìn)出口商品交
2020國(guó)際工業(yè)視覺(jué)技術(shù)及應(yīng)用展覽會(huì)
新物聯(lián)號(hào):巴斯特會(huì)展 2020-3-5 共有: 3378 瀏覽
光學(xué)文字、識(shí)別系統(tǒng)、自動(dòng)化/機(jī)器人技術(shù)、紅外圖像系統(tǒng)’字符處理和識(shí)別系統(tǒng)、自動(dòng)化/機(jī)器人技術(shù)、紅外圖像系統(tǒng)、煙草、印鈔、電子組裝、質(zhì)量檢測(cè)、
自動(dòng)識(shí)別(OCR/OCV)、測(cè)量、智能視覺(jué)、表面檢測(cè)、印刷、包裝、復(fù)雜工業(yè)對(duì)象視覺(jué)在線、汽車(chē)制造、車(chē)牌、
智能交通、生物特征識(shí)別、監(jiān)控、醫(yī)療檢測(cè)、光學(xué)檢查等系統(tǒng)
2020工業(yè)物聯(lián)網(wǎng)技術(shù)與應(yīng)用展覽
新物聯(lián)號(hào):巴斯特會(huì)展 2020-3-9 共有: 803 瀏覽
邀請(qǐng)貴司參與2020年5月26-28日在廣州琶洲舉行的IIoT Show及同期的發(fā)展大會(huì)
誠(chéng)邀參與,期待您的咨詢(xún)。黎生 183 1266 4855
2020國(guó)際工業(yè)物聯(lián)技術(shù)與應(yīng)用展覽會(huì)
新物聯(lián)號(hào):巴斯特會(huì)展 2020-3-12 共有: 751 瀏覽
關(guān)于智能制造、智慧工廠的 RFID射頻物聯(lián)技術(shù)應(yīng)用
2020廣州國(guó)際工業(yè)物聯(lián)網(wǎng)展覽會(huì)
新物聯(lián)號(hào):勵(lì)智展覽 2020-3-13 共有: 933 瀏覽
2020第九屆廣州國(guó)際物聯(lián)網(wǎng)展覽會(huì)
鯤鷺物聯(lián),為傳統(tǒng)制造廠商智能化轉(zhuǎn)型賦能
新物聯(lián)號(hào):鯤鷺物聯(lián) 2020-3-17 共有: 1510 瀏覽
福建省家居建材商會(huì)在疫情期間心系商會(huì)會(huì)員企業(yè)的發(fā)展,3月14日商會(huì)陳秘書(shū)長(zhǎng)邀請(qǐng)廈門(mén)雷迅科運(yùn)營(yíng)副總經(jīng)理王俊、營(yíng)銷(xiāo)總監(jiān)聶建火一同前往龍巖走訪會(huì)員單位,就物聯(lián)網(wǎng)時(shí)代,定制家具行業(yè)如何把握機(jī)會(huì)創(chuàng)新,開(kāi)展新業(yè)務(wù),累積差異化的競(jìng)爭(zhēng)力做業(yè)務(wù)交流。針對(duì)傳統(tǒng)制造廠商如何簡(jiǎn)單、快速、低成本的實(shí)現(xiàn)產(chǎn)業(yè)智能化升級(jí),廈門(mén)雷迅科營(yíng)銷(xiāo)總監(jiān)聶建火先生向龍巖龍頭定制家具企業(yè)介紹了鯤鷺I(yè)OT一體化解決方案,并在交流現(xiàn)場(chǎng)展示了鯤鷺物聯(lián)
2020第九屆廣州國(guó)際物聯(lián)網(wǎng)展覽會(huì)
新物聯(lián)號(hào):勵(lì)智展覽 2020-3-17 共有: 803 瀏覽
2020第九屆廣州國(guó)際物聯(lián)網(wǎng)展覽會(huì)
2020第十屆廣州國(guó)際智能家居展覽會(huì)
新物聯(lián)號(hào):童葉濤 2020-3-20 共有: 1017 瀏覽
2020第十屆廣州國(guó)際智能家居展覽會(huì)
The 10th Guangzhou International Smart Home Exhibition 2020
時(shí)間:2020年12月9-11日
地點(diǎn):廣州琶洲-保利世貿(mào)博覽館
2020第九屆廣州國(guó)際物聯(lián)網(wǎng)展覽會(huì)
新物聯(lián)號(hào):童葉濤 2020-3-20 共有: 1260 瀏覽
2020第九屆廣州國(guó)際物聯(lián)網(wǎng)展覽會(huì)
The 9th Guangzhou international Internet of things Exhibition2020
時(shí)間:2020年12月9-11日
地點(diǎn):廣州琶洲-保利世貿(mào)博覽館
2020第九屆廣州國(guó)際人工智能展覽會(huì)
新物聯(lián)號(hào):童葉濤 2020-3-20 共有: 1243 瀏覽
2020第九屆廣州國(guó)際人工智能展覽會(huì)
The 9th Guangzhou International Artificial Intelligence Exhibition 2020
時(shí)間:2020年12月9-11日
地點(diǎn):廣州琶洲-保利世貿(mào)博覽館
2020廣州新能源汽車(chē)智能網(wǎng)聯(lián)汽車(chē)及充電樁科技展覽會(huì)
新物聯(lián)號(hào):李想 2020-3-26 共有: 773 瀏覽
2020廣州氫能與燃料電池汽車(chē)及加氫站設(shè)備展覽會(huì)
新物聯(lián)號(hào):李想 2020-3-26 共有: 630 瀏覽

4.1簡(jiǎn)介
馬達(dá)通過(guò)齒輪和滑輪傳動(dòng),可以讓你搭建的機(jī)器人動(dòng)起來(lái),他們就如同是移動(dòng)機(jī)器人腿和手臂的肌肉。同時(shí),你還可以使用傳感器來(lái)裝備你的機(jī)器人,它們就如同是機(jī)器人的眼睛、耳朵和手指。機(jī)器人套裝中包含兩種傳感器:觸動(dòng)傳感器(兩種)和光電傳感器。在此主要是描述它們的特性,對(duì)于其它的傳感器可以單獨(dú)購(gòu)買(mǎi),如:角度傳感器和溫度傳感器。每一個(gè)設(shè)備都有其特定的作用,你將會(huì)因?yàn)樗鼈兊墓δ軓?qiáng)大和所能涉及的范圍之廣而感到驚訝。當(dāng)然也包括這種情況,可以用一種傳感器仿效另一種傳感器,以用來(lái)代替不能使用的傳感器。利用RCX上的紅外光電,使用一些小技巧,你可以把把你的光電傳感器變成一個(gè)雷達(dá)。
4.2觸動(dòng)傳感器
觸動(dòng)傳感器(圖4.1)的工作方式非常像是你家門(mén)鈴上的按鈕:當(dāng)它被按下時(shí),電路接通,電流就會(huì)通過(guò),RCX就能夠檢測(cè)到這個(gè)數(shù)據(jù)流,你的程序就會(huì)讀取觸動(dòng)傳感器的當(dāng)前狀態(tài):開(kāi)或者關(guān)。
圖4.1 觸動(dòng)傳感器
如果閱讀了Constructopedia,并搭建了一些模型,你可能對(duì)傳感器的一般用途比較熟悉,如緩沖器。緩沖器是與周?chē)h(huán)境相互作用的一種簡(jiǎn)單方式,當(dāng)你的機(jī)器人遇到障礙物時(shí),可以用它們來(lái)進(jìn)行檢測(cè),并由此而改變運(yùn)動(dòng)狀態(tài)。
典型的緩沖器是一個(gè)重量較輕的可移動(dòng)裝置,事實(shí)上,當(dāng)它碰到障礙物時(shí)會(huì)把沖擊力傳遞給觸動(dòng)傳感器并使之關(guān)閉。你也可以發(fā)明出很多種緩沖器,但它們的外形應(yīng)該能夠反映機(jī)器人的外形,而且還能反映出環(huán)境中障礙物的外形。如圖4.2中所示一個(gè)非常簡(jiǎn)單的緩沖器,可以很容易發(fā)現(xiàn)墻壁,假如房間里有像椅子一樣等復(fù)雜障礙物,它的效果就不好了。在這種情況下,我們建議你通過(guò)實(shí)驗(yàn)來(lái)進(jìn)行。為機(jī)器人設(shè)計(jì)一個(gè)緩沖器,在房間的周?chē)x地板適當(dāng)高度的地方移動(dòng)它,檢查它是否能夠發(fā)現(xiàn)所有可能的碰撞點(diǎn)。如果你的緩沖結(jié)構(gòu)較大,當(dāng)它用最佳部位撞擊到障礙物并按下觸動(dòng)傳感器時(shí),不要以為這就是正確的。圖例4.2是一個(gè)不太好的緩沖器,因?yàn)楫?dāng)碰撞發(fā)生時(shí),它幾乎不能用橫軸的邊緣來(lái)關(guān)閉觸動(dòng)傳感器,說(shuō)它是一個(gè)不好的緩沖器是因?yàn)樗颜麄€(gè)碰撞產(chǎn)生的力直線傳輸給了傳感器,也就是說(shuō),在機(jī)器人身上安裝一個(gè)非常穩(wěn)固的支架對(duì)傳感器的安裝是非常有必要的。
圖4.2簡(jiǎn)單的緩沖器
根據(jù)經(jīng)驗(yàn),應(yīng)該嘗試不同的碰撞來(lái)看看緩沖器在各個(gè)位置是否能很好的工作。你可以編寫(xiě)一個(gè)無(wú)限循環(huán)的小程序,當(dāng)傳感器被按下時(shí),發(fā)出一聲蜂鳴聲用來(lái)測(cè)試你的緩沖器。
談起緩沖器,人們往往會(huì)想到當(dāng)遇到障礙物時(shí)開(kāi)關(guān)會(huì)被按下。這樣說(shuō)似乎有點(diǎn)絕對(duì),在發(fā)生碰撞的時(shí)候同樣可以松開(kāi)開(kāi)關(guān)。看一下圖4.3,橡膠皮筋可以使積木輕壓著傳感器,當(dāng)緩沖器的前面部分接觸到物體時(shí),開(kāi)關(guān)就會(huì)被釋放。
圖4.3
平常壓下的緩沖器
實(shí)際上,推薦這種緩沖器有這樣幾個(gè)重要的原因:
l 沖擊力不可能直接傳遞給傳感器,傳感器與標(biāo)準(zhǔn)的樂(lè)高積木相比更容易受損壞,因此應(yīng)避免不必要的撞擊。
l 橡皮圈可以吸收撞擊力,這對(duì)你的傳感器和機(jī)器人來(lái)說(shuō)都會(huì)起到保護(hù)作用,當(dāng)你的機(jī)器人速度非常快,或者重量大,或者反應(yīng)比較慢,或者具備其中的一個(gè)因素時(shí),這種保護(hù)作用顯得尤其重要。
緩沖器是一個(gè)非常重要的裝置,而且觸動(dòng)傳感器的應(yīng)用也非常廣泛。當(dāng)你想告之RCX一個(gè)事件發(fā)生時(shí),你可以使用按鈕一樣人為的把它按下去。你能想象出類(lèi)似的情況嗎?事實(shí)上,有很多。比方說(shuō),你可以按下銨鈕告訴RCX”現(xiàn)在讀取光電傳感器的值”,從而進(jìn)行讀取校準(zhǔn)(我們將在以后的部分進(jìn)行討論)。
另一個(gè)常用的作用就是把觸動(dòng)傳感器作為一個(gè)位置控制器來(lái)用。如圖4.4,機(jī)器人向前看時(shí)(圖
4.4b)就關(guān)閉了頭部(圖4.4a)的觸動(dòng)傳感器。通過(guò)編程可以在水平面上實(shí)時(shí)的控制頭部的旋轉(zhuǎn)(向左或向右),當(dāng)傳感器被按下時(shí),機(jī)器人的頭部就能轉(zhuǎn)回到正確的位置,值的注意的是,我們?cè)谶@個(gè)例子中用到的凸齒輪在與觸動(dòng)傳感器相配合時(shí)是非常的有用,你可以讓軸通過(guò)三個(gè)十字孔個(gè)中的一個(gè)來(lái)選擇合適的距離去關(guān)閉觸動(dòng)傳感器。
圖4.4
用觸動(dòng)傳感器定位
在本書(shū)的第三部分我們還會(huì)介紹位置控制的其它一些應(yīng)用。事實(shí)上,在搭建你的機(jī)器人之前需要你去研究一些不同的方法。
我們?cè)倥e幾個(gè)事例來(lái)說(shuō)明傳感器的應(yīng)用
都能停下。首先你會(huì)想到在每一層安放一個(gè)觸動(dòng)傳感器,當(dāng)按下其中一個(gè)時(shí),電梯室會(huì)在那一層停下。這是一個(gè)好方法,但這里有一個(gè)小問(wèn)題;你僅有兩個(gè)觸動(dòng)傳感器,對(duì)你來(lái)說(shuō),一個(gè)電梯僅有二層不是非常實(shí)際,你可以再買(mǎi)一個(gè)觸動(dòng)傳感器,但這只能再加高一層,并沒(méi)有解決實(shí)質(zhì)性的問(wèn)題。此時(shí),RCX的三個(gè)輸入端口已經(jīng)全部被占用。突然,你會(huì)想到一個(gè)辦法:為什么不把傳感器放在電梯廂上而不是外面呢?在電梯廂上固定一個(gè)傳感器,這樣只需一個(gè)傳感器就可以加高更多的樓層了。從最初的方案到現(xiàn)在更好的方案,兩個(gè)系統(tǒng)是完全相同的嗎?答案是否定的。首先,你需要決定廂的絕對(duì)位置,當(dāng)它在第二層時(shí),你僅是可以知道它的相對(duì)位置。那么,你需要一個(gè)初始點(diǎn),從起始點(diǎn)開(kāi)始計(jì)算就可以推斷出廂的位置.或者程序運(yùn)行時(shí),需要廂體在一個(gè)特定的位置,或者用第二個(gè)傳感器來(lái)探測(cè)一個(gè)特定的樓層。例如,在最底層放置一個(gè)傳感器,因此程序一開(kāi)始就降下電梯到最底層。那樣就可以計(jì)算出廂體的絕對(duì)位置了。
現(xiàn)在,電梯就能夠準(zhǔn)確的升降了。但你還有最后一個(gè)問(wèn)題需要解決:如何告訴你的電梯它應(yīng)該去哪一層呢?在每一樓層放置一個(gè)傳感器去提示電梯是不切合實(shí)際的。在RCX上只剩下一個(gè)輸入端口了。你要用這一個(gè)觸動(dòng)傳感器來(lái)做什么呢?你還可以采用以前的方法嗎?可以,你可以計(jì)算一個(gè)觸動(dòng)傳感器被按下的次數(shù)。比如說(shuō),被按下三次表示是三樓,依次類(lèi)推。現(xiàn)在你就可以去搭建你的電梯了。
。假如你想搭建一個(gè)電梯。你希望電梯可以在任何一層
計(jì)算按下次數(shù)
下面這個(gè)例子是用偽代碼來(lái)編寫(xiě)的,一個(gè)代碼并不與實(shí)際編寫(xiě)語(yǔ)言相對(duì)應(yīng),而是界于程序語(yǔ)言和機(jī)器語(yǔ)言之間。使用偽代碼編程在專(zhuān)業(yè)程序員中是一種非常普遍的做法。
計(jì)算觸動(dòng)傳感器被按下多少次需要一些小竊門(mén)。假如你寫(xiě)了一些簡(jiǎn)單的代碼,如下:
Counter=0
repeat
if Sensor1 is on then
Counter = Counter +1
end if
end repeat
當(dāng)你保持觸動(dòng)傳感器被按下很短的間隔內(nèi),你的程序代碼就會(huì)在你的RCX上飛快的執(zhí)行。然而,在記錄下一個(gè)新的按下之前,需要松開(kāi)觸動(dòng)傳感器:
Counter =0
repeat
if Sensor1 is
on then
Counter=Counter+1
wait until Sensor1 is off
end if
end repeat
現(xiàn)在,你編寫(xiě)的代碼正確地記錄了從斷開(kāi)到閉合的變化。在你的代碼中,有一個(gè)重要的特點(diǎn)需要介紹一下:當(dāng)它在一段時(shí)間內(nèi)接收不到觸動(dòng)信息時(shí),你希望你的計(jì)數(shù)程序停止。為了實(shí)現(xiàn)這一點(diǎn),你需要使用一個(gè)計(jì)時(shí)器用來(lái)測(cè)量上一次按下時(shí)間與最后一次時(shí)間的間隔:
Counter=0
interval=
reset Timer
repeat
if Sensor1 is on then
Counter=Counter + 1
wait until Sensor1 is off
or until Timer if greater then Interval
reset Timer
end if
until Timer is greater then
Interval
假如你的時(shí)間間隔是兩秒。當(dāng)計(jì)數(shù)程序開(kāi)始時(shí),計(jì)時(shí)器和計(jì)數(shù)器首先復(fù)位為0,然后開(kāi)始檢測(cè)傳感器的狀態(tài)。如果兩秒內(nèi)沒(méi)有按下觸動(dòng)傳感器,它仍將保持復(fù)位狀態(tài),如果有觸動(dòng)傳感器被按下,此動(dòng)作將被記下并等待使用者釋放按鈕,計(jì)時(shí)器復(fù)位為零,在程序停止運(yùn)行之前,使用者可以在兩秒內(nèi)第二次按下觸動(dòng)傳感器。
4.3光電傳感器
用”看”來(lái)形容光電傳感器的功能有點(diǎn)夸大其辭。實(shí)際上它只是用來(lái)檢測(cè)光并測(cè)量其強(qiáng)度。盡管受到限制,但其應(yīng)用范圍仍比較廣。
圖4.5 光電傳感器
光電傳感器和觸動(dòng)傳感器的最大區(qū)別是,后者返回的是一些數(shù)值而不是單純的開(kāi)/關(guān)狀態(tài)。你所讀到的數(shù)值由光電傳感器在那個(gè)時(shí)候所檢測(cè)到的光強(qiáng)所決定。這些數(shù)值以0至100的百分?jǐn)?shù)的形式返回,光值越大,百分?jǐn)?shù)就越大。你可以用光電傳感器來(lái)做什么呢?你可以用它搭建一個(gè)由光電傳感器所驅(qū)動(dòng)的機(jī)器人,我們稱(chēng)之為光的追隨者,它可以檢測(cè)周?chē)沫h(huán)境,找到一個(gè)強(qiáng)光源(或者是最亮的)并朝著它前進(jìn)。在一間足夠暗的房間里進(jìn)行,以免產(chǎn)生干擾,你也可以用手電筒來(lái)控制你的機(jī)器人。
檢測(cè)外部光源的功能是非常有趣的,但是或許你不能用它來(lái)做最令人驚奇的事情。我們介紹一下光電傳感器的另一個(gè)用途:它不但可以用來(lái)檢測(cè)光強(qiáng),而且還可以自身發(fā)光。提供穩(wěn)定光源的是一個(gè)紅色的發(fā)光二極管,因此你可以用來(lái)測(cè)量反射光并傳給傳感器。
當(dāng)你用來(lái)測(cè)量反射光時(shí),你必須去避免一些來(lái)自其它光源的干擾。需要注意的是光電傳感器對(duì)IR所發(fā)出的光也非常紅外光,如攝像機(jī);或者是樂(lè)高紅外發(fā)射器。
敏感,像典型的遠(yuǎn)距離控制器發(fā)出的
設(shè)計(jì)與計(jì)劃
讀取周?chē)墓庵?br/>樂(lè)高光電傳感器并不適合于測(cè)量外部光源來(lái)說(shuō),因?yàn)槠潇`敏度比較弱。紅色發(fā)光二極管所所發(fā)出的光太靠近檢光器以致于過(guò)多的影響了光值的讀取。如果你想測(cè)外部光源,你應(yīng)該考慮盡可能的去減少紅色發(fā)光二極管的影響。一個(gè)簡(jiǎn)單的辦法就是在光電傳感器的前部放一個(gè)1×2的單孔積木塊,.更多的行之有效的辦法需要你對(duì)光電傳感器有些細(xì)微的改動(dòng)。在Ralph
Hempel的網(wǎng)站中,他提到了如何對(duì)光電傳感器作修改,既不是永久的改變也不會(huì)損害你的光電傳感器。(見(jiàn)附錄A)
光在表面的反射率取決于許多因素,主要是表面的顏色,質(zhì)地和它距光源的遠(yuǎn)近。黑色物體的反射能力要弱于白色物體;黑色光滑表面的反射能力要強(qiáng)于黑色不光滑表面。另外,距離光電傳感器越遠(yuǎn),光電傳感器所檢測(cè)到的反射光就會(huì)越少。
這些因素都是相互依賴(lài)的,通過(guò)光感讀取的值,并不能說(shuō)明是由哪個(gè)因素引起的。但你可以保持其它因素不便,而讓一個(gè)變化,這樣就可以通過(guò)讀取的數(shù)值來(lái)推斷出環(huán)境的一些變化。例如,如果你的光電傳感器經(jīng)常對(duì)著同一個(gè)物體,或者相同質(zhì)地和顏色的物體,你能夠用它去測(cè)出它的相對(duì)距離。另一方面,你可以把不同的物體放置在光電傳感器的前面,在恒定的距離內(nèi)分辨出它們的顏色。
4.3.1測(cè)量反射光值
為了舉例說(shuō)明測(cè)量反射光的原理,我們來(lái)做一個(gè)實(shí)驗(yàn)。拿一個(gè)RCX并打開(kāi)其電源,在任意一個(gè)輸入端口連接一個(gè)光電傳感器,在你的程序中正確的設(shè)置其端口(紅色發(fā)光二極管應(yīng)該發(fā)光)。準(zhǔn)備一間光線較暗的房間,RCX有個(gè)控制模式,可以實(shí)時(shí)查看光感讀取的值。按RCX上的VIEW鍵,當(dāng)小箭頭正確顯示在傳感器所接的輸入端口位置。在顯示屏上會(huì)顯示出讀取的光線值。接下去你把光感放到桌上,在桌上以一定間隔(0.5cm,1cm,1.5cm)并排放置不同顏色的積木塊,保證積木之間的間距相等。查看數(shù)據(jù),得到的是不同顏色的積木反射的光值是不同的。
再進(jìn)行第二個(gè)實(shí)驗(yàn):將白色的積木快慢慢的移向光感,然后再慢慢的移開(kāi),觀察顯示屏上的數(shù)據(jù),可以發(fā)現(xiàn)當(dāng)光感與積木間的距離加大時(shí)數(shù)值將減小。我們的目的就是為了證明光感是不能同時(shí)判斷出距離和顏色的。我們重點(diǎn)強(qiáng)調(diào)在你使用光感時(shí)盡量避免外界光線的干擾。
方法與技巧
理解原始值的概念
了解原始值是很關(guān)鍵的,對(duì)于熟練的使用機(jī)器人套裝并不是必須的。但從另一個(gè)方面講,它可以幫助你理解傳感器是如何工作的。
RCX把來(lái)自傳感器(不管是什么類(lèi)型)的電信號(hào)全部轉(zhuǎn)變成范圍在0至1023之間的數(shù)字信號(hào),我們稱(chēng)之為原始數(shù)值。在程序中,你在一個(gè)端口上設(shè)置了一個(gè)特定的傳感器,RCX會(huì)自動(dòng)設(shè)定該傳感器的原始數(shù)值范圍,例如,從觸動(dòng)傳感器讀取的數(shù)值范圍是1或者0,代表開(kāi)或者關(guān),當(dāng)從溫度傳感器讀取時(shí)就會(huì)轉(zhuǎn)變成攝氏溫度或華氏溫度。同樣地,光電傳感器讀取時(shí)就會(huì)通過(guò)下面的方程式轉(zhuǎn)換成一個(gè)百分?jǐn)?shù):
百分?jǐn)?shù)=146-原始數(shù)值/7
為什么我們需要知道這種轉(zhuǎn)換呢?對(duì)于大多數(shù)應(yīng)用程序來(lái)說(shuō),通過(guò)RCX返回的光感值的百分?jǐn)?shù)形式更加有效,但也有這種情況,你需要所有光感變化值而百分?jǐn)?shù)形式卻不能體現(xiàn)出光感值的一些變化。我們用一個(gè)例子來(lái)做一下說(shuō)明。假設(shè)會(huì)有兩種不同的情形,光電傳感器讀取707和713兩個(gè)不同的數(shù)值。把這兩個(gè)數(shù)值轉(zhuǎn)換成百分?jǐn)?shù),因?yàn)镽CX只使用整數(shù),需要將除的結(jié)果進(jìn)行圓整。
146-(707/7)=146-101=45
146-(713/7)=146-101=45
在第二個(gè)方程式中數(shù)值101實(shí)際上是101.857…,去掉小數(shù)部分為101.就看部不出兩個(gè)值是不同的。我們知道在大多情況下數(shù)值的小數(shù)部分是不重要的。但也會(huì)有其它情況需要用到這樣一個(gè)微小的變化的數(shù)據(jù)
如果你用LEGO圖形化的編程環(huán)境為RCX編寫(xiě)程序,你必須接受它的刻度值,否則無(wú)法處理原始數(shù)值。如果你選擇其它的編程語(yǔ)言,則可以直接處理沒(méi)有處理過(guò)的原始數(shù)值,在必須的時(shí)候,利用其優(yōu)勢(shì),可能會(huì)有更好的解決方案。識(shí)別不同的顏色是光電傳感器一個(gè)非常普通的應(yīng)用。我們?cè)f(shuō)過(guò),光電傳感器實(shí)際上并不是用來(lái)識(shí)別顏色的,而是用來(lái)讀取反射光值。因此,它很難把黑色和藍(lán)色的積木塊區(qū)別開(kāi)。但目前來(lái)說(shuō),我們?nèi)哉f(shuō)它能識(shí)別顏色,在讀完之后您會(huì)明白真正的意思是什么。
4.3.2沿線走
目前,光電傳感器最普遍的使用方法就是用它搭建一個(gè)沿線走的機(jī)器人。
這個(gè)項(xiàng)目的設(shè)置是很簡(jiǎn)單的,這也是之所以流行的一個(gè)原因。盡管其外觀簡(jiǎn)單,這項(xiàng)工作仍需要引起足夠的重視,并需要你仔細(xì)設(shè)計(jì)和認(rèn)真編程。我們將在第二部分詳細(xì)的討論這個(gè)主題的細(xì)節(jié)內(nèi)容。當(dāng)光電傳感器在輕質(zhì)地面上讀取一條黑線時(shí),你要注意有什么事情發(fā)生。
當(dāng)把光電傳感器放在地板上時(shí),假設(shè)說(shuō)讀取的數(shù)值為百分之七十,黑線為百分之三十。如果你想讓機(jī)器人緩慢的從地板移動(dòng)到黑線或者是有污點(diǎn)的地方.你會(huì)注意到,數(shù)值不是從一個(gè)值突然跳到另一個(gè)值,而是會(huì)出現(xiàn)一系列的中間值。原因是光電傳感器不是讀取一個(gè)點(diǎn),而是光電傳感器前部的一個(gè)小區(qū)域。所以當(dāng)光電傳感器穿過(guò)線的邊緣時(shí),它所讀取的是地板和黑線的邊界值并返回一個(gè)中間值。
這個(gè)功能有用嗎?當(dāng)然,有時(shí)有用,有時(shí)沒(méi)有用。尤其當(dāng)我們涉及到沿線走時(shí),它是有用的。實(shí)際上,你可以(或者說(shuō)應(yīng)該)編寫(xiě)一段程序讓你的機(jī)器人沿著邊界走而不是實(shí)際的黑線。這樣當(dāng)機(jī)器人需要改變它的行進(jìn)路線時(shí),它知道往哪個(gè)方向轉(zhuǎn)身:如果所讀取的值太”暗”,它應(yīng)該向亮的區(qū)域前進(jìn),或有污點(diǎn)的區(qū)域。
技巧與提示
校準(zhǔn)讀取值
有時(shí),你并不能預(yù)先知道光電傳感器實(shí)際上所讀取的數(shù)值是多少。假如你要參加一個(gè)沿線走的比賽:你并不能確定你的傳感器所返回的地板和黑線的數(shù)值。在這種情況下,一般的習(xí)慣是,在你的程序中不寫(xiě)入預(yù)期的常數(shù)值是比較好的。但可以讓你的機(jī)器人通過(guò)一個(gè)簡(jiǎn)單的測(cè)量程序來(lái)讀取這些數(shù)值。繼續(xù)我們沿線走的例子,你可以專(zhuān)設(shè)一個(gè)空的輸入端口用來(lái)接入一個(gè)觸動(dòng)傳感器,當(dāng)你把機(jī)器人放在地板上時(shí)手動(dòng)按下觸動(dòng)傳感器,然后再放在黑線上,因此它就可以保存下讀取到的最大值和最小值。或者你可以編寫(xiě)一個(gè)小的檢測(cè)程序,以取消那些限制。
當(dāng)你需要控制一個(gè)更復(fù)雜的區(qū)域時(shí),舉例來(lái)說(shuō),區(qū)域包括三種不同的顏色,想象一個(gè)臺(tái)面被劃為白色,黑色和灰色三個(gè)不同顏色的區(qū)域。在白色和黑色之間的邊界上你如何能區(qū)別出灰色區(qū)域?
這時(shí)你不能只做一個(gè)簡(jiǎn)單的讀取,你必須深入考慮其它的因素,
像預(yù)先讀取,或者你可以使你的機(jī)器人在一個(gè)地方收集更多的數(shù)據(jù)并推斷它所在的位置。要處理這樣的情況,對(duì)軟件的要求就會(huì)變得更加復(fù)雜。
光電傳感器如同一個(gè)萬(wàn)能器,它有很多種使用方法。你可以在光電傳感器的前部放置一個(gè)彩色的可以移動(dòng)的樂(lè)高梁來(lái)搭建一個(gè)對(duì)者拉梁的上部時(shí),光電傳感器就會(huì)讀取不同的光值。
圖4.6
用光電傳感器作一個(gè)模擬控制
光電傳感器與燈相結(jié)合(不包括在頭腦風(fēng)暴套裝中)可做成一個(gè)光電管(圖4.7);當(dāng)有物體擋在光電傳感器和燈之間時(shí),機(jī)器人就會(huì)察覺(jué)。值得注意的是,我們?cè)诠怆妭鞲衅鞯那懊娣胖昧艘粋€(gè)1×2的單孔梁,以減少來(lái)自周?chē)饩€的干擾。
圖4.7 光電管
4.3.3接近探測(cè)
你可以用光電傳感器做成一個(gè)雷達(dá)探測(cè)器用于檢測(cè)即將碰到的障礙物。這被稱(chēng)之為接近探測(cè)。這項(xiàng)技術(shù)所基于的特性我們已經(jīng)討論并探究過(guò)了,就是光電傳感器可以根據(jù)反射光線來(lái)測(cè)定相對(duì)距離。假如你的機(jī)器人要直線前進(jìn),用一個(gè)光電傳感器為它在前面引路。假如你的機(jī)器人要在一個(gè)暗室里移動(dòng),除了光電傳感器上的紅色發(fā)光二極管之外沒(méi)有任何的光源。在向前移動(dòng)的過(guò)程中,機(jī)器人連續(xù)不斷的讀取傳感器所檢測(cè)到的光值。如果讀取值趨向于迅速增大,就可以推斷出機(jī)器人正向著一個(gè)物體前進(jìn)。但不能推斷出障礙物的種類(lèi)及與障礙物之間的距離,如果房間內(nèi)沒(méi)有物體在移動(dòng),你確信機(jī)器人正在接近障礙物。現(xiàn)在我們有了一套系統(tǒng)可以躲避障礙物而不是局限于碰撞以后再檢測(cè)它們。
注意:
RCX內(nèi)部的IR
LED發(fā)射的是不可見(jiàn)光,光電傳感器的紅色二極管發(fā)射的是可見(jiàn)光。
遺憾地是,當(dāng)房間內(nèi)有光源時(shí),這項(xiàng)技術(shù)工作就有問(wèn)題了,原因是你的程序不能區(qū)別自身反射回的紅色光還外界環(huán)境光線。你需要在機(jī)器人身上有一個(gè)更明顯的獨(dú)立光源提供更高的參考。
令人欣慰的是,正好有一個(gè)!RCX內(nèi)部有一個(gè)IR
LED可以發(fā)射信息給紅外發(fā)射儀或是另一個(gè)RCX。用RCX內(nèi)部的IR
LED以比特的編碼形式發(fā)送信息可以被紅外發(fā)射器所接收到。關(guān)于信息的內(nèi)容我們并不關(guān)心;我們需要的僅僅是光。盡管紅外光對(duì)于肉眼來(lái)說(shuō)是不可見(jiàn)的,卻與可見(jiàn)光具有相同的性質(zhì),LEGO光電傳感器對(duì)此卻非常敏感。
所以,現(xiàn)在你的程序有了使用接近探測(cè)的所有條件。發(fā)送一個(gè)IR信息并立即讀取光電傳感器的值.你最好把讀取的數(shù)值進(jìn)行一下平均處理,這樣可以把外部光源所導(dǎo)致的影響降至最低(我們將會(huì)第12節(jié)討論這個(gè)竅門(mén))。如果你注意到在隨后的二組值中有顯著的增加,舉例來(lái)說(shuō),百分之十,說(shuō)明你的機(jī)器人很有可能正朝著障礙物前進(jìn)。
4.4角度傳感器
我們將要研究的第三個(gè)樂(lè)高傳感器是角度傳感器(圖4.8)。遺可是機(jī)器人套裝中沒(méi)有包含該部件,它的多功能性?xún)H次于光電傳感器。在3801
Ultimate
Accessory套裝里面包含一個(gè)角度傳感器,還有一個(gè)觸動(dòng)傳感器,一個(gè)燈,遙控器和少量的其它附件。
圖4.8 角度傳感器
角度傳感器是如何工作的呢?
因?yàn)榻嵌葌鞲衅饔兴姆N不同的狀態(tài),所以會(huì)返回四種不同的值。我們稱(chēng)之為A,B,C和D。對(duì)于每一次完整的旋轉(zhuǎn),它經(jīng)過(guò)了四種狀態(tài)各四次—這也就是我們?yōu)槭裁匆檬鶃?lái)計(jì)數(shù)的原因。如果角度傳感器是順時(shí)針旋轉(zhuǎn),它會(huì)讀序列ABCD…,如果是逆時(shí)針旋轉(zhuǎn),讀取的結(jié)果會(huì)是ADCBA…,RCX會(huì)時(shí)刻檢測(cè)傳感器,當(dāng)RCX檢測(cè)到狀態(tài)發(fā)生變化時(shí),它不但可以推斷出角度傳感器已經(jīng)轉(zhuǎn)動(dòng),而且還可以知道所旋轉(zhuǎn)的方向。舉例來(lái)說(shuō),從A轉(zhuǎn)變到B,或從D轉(zhuǎn)變到A,計(jì)數(shù)器將增加一個(gè)單位,然而,從D到C,或者是從A到D,計(jì)數(shù)器將減少一個(gè)單位。
角度傳感器,顧名思義,是用來(lái)檢測(cè)角度的。它的身體中有一個(gè)孔,可以配合樂(lè)高的軸。當(dāng)連結(jié)到RCX上時(shí),軸每轉(zhuǎn)過(guò)1/16圈,角度傳感器就會(huì)計(jì)數(shù)一次。往一個(gè)方向轉(zhuǎn)動(dòng)時(shí),計(jì)數(shù)增加,轉(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í),可以依據(jù)旋轉(zhuǎn)的角度和輪子圓周數(shù)來(lái)推斷機(jī)器人移動(dòng)的距離。然后就可以把距離轉(zhuǎn)換成速度,你也可以用它除以所用時(shí)間。實(shí)際上,計(jì)算距離的基本方程式為:
距離=速度×?xí)r間
由此可以得到:
速度=距離/時(shí)間
如果把角度傳感器連接到馬達(dá)和輪子之間的任何一根傳動(dòng)軸上,必須將正確的傳動(dòng)比算入所讀的數(shù)據(jù)。舉一個(gè)有關(guān)計(jì)算的例子。在你的機(jī)器人身上,馬達(dá)以3:1的傳動(dòng)比與主輪連接。角度傳感器直接連接在馬達(dá)上。所以它與主動(dòng)輪的傳動(dòng)比也是3:1。也就是說(shuō),角度傳感器轉(zhuǎn)三周,主動(dòng)輪轉(zhuǎn)一周。角度傳感器每旋轉(zhuǎn)一周計(jì)16個(gè)單位,所以16*3=48個(gè)增量相當(dāng)于主動(dòng)輪旋轉(zhuǎn)一周。現(xiàn)在,我們需要知道齒輪的圓周來(lái)計(jì)算行進(jìn)距離。幸運(yùn)地是,每一個(gè)LEGO齒輪的輪胎上面都會(huì)標(biāo)有自身的直徑。我們選擇了體積最大的有軸的輪子,直徑是81.6CM(樂(lè)高使用的是公制單位),因此它的周長(zhǎng)是81.6×π=81.6×3.14≈256.22CM。現(xiàn)在已知量都有了:齒輪的運(yùn)行距離由48除角度所記錄的增量然后再乘以256。我們總結(jié)一下。稱(chēng)R為角度傳感器的分辨率(每旋轉(zhuǎn)一周計(jì)數(shù)值),G是角度傳感器和齒輪之間的傳動(dòng)比率。我們定義I為輪子旋轉(zhuǎn)一周角度傳感器的增量。即:
I=G×R
在例子中,G為3,對(duì)于樂(lè)高角度傳感器來(lái)說(shuō),R一直為16.因此,我們可以得到:
I=3×16=48
每旋轉(zhuǎn)一次,齒輪所經(jīng)過(guò)的距離正是它的周長(zhǎng)C,應(yīng)用這個(gè)方程式,利用其直徑,你可以得出這個(gè)結(jié)論。
C=D×π
在我們的例子中:
C=81.6×3.14=256.22
最后一步是將傳感器所記錄的數(shù)據(jù)-S轉(zhuǎn)換成輪子運(yùn)動(dòng)的距離-T,使用下面等式:
T=S×C/I
如果光電傳感器讀取的數(shù)值為296,你可以計(jì)算出相應(yīng)的距離:
T=296×256.22/48=1580
距離(T)的單位與輪子直徑單位是相同的.
實(shí)際上,在程序不僅僅會(huì)用到乘法和除法的數(shù)學(xué)運(yùn)算,還有更多的需要多留心(有關(guān)內(nèi)容我們將在第12章進(jìn)行進(jìn)一步的討論)。
使用角度傳感器來(lái)控制你的輪子可以間接的發(fā)現(xiàn)障礙物。原理非常簡(jiǎn)單:如果馬達(dá)運(yùn)轉(zhuǎn),而齒輪不轉(zhuǎn),說(shuō)明你的機(jī)器已經(jīng)被障礙物給擋住了。此技術(shù)使用起來(lái)非常簡(jiǎn)單,而且非常有效;唯一要求就是運(yùn)動(dòng)的輪子不能在地板上打滑(或者說(shuō)打滑次數(shù)太多),否則你將無(wú)法檢測(cè)到障礙物。如果是一個(gè)空轉(zhuǎn)的齒輪連接到馬達(dá)上就可以避免這個(gè)問(wèn)題,這個(gè)輪子不是由馬達(dá)驅(qū)動(dòng)而是通過(guò)裝置的運(yùn)動(dòng)帶動(dòng)它:在驅(qū)動(dòng)輪旋轉(zhuǎn)的過(guò)程中,如果惰輪停止了,說(shuō)明你碰到障礙物了。
在許多情況下角度傳感器是非常有用的:控制手臂,頭部和其它可移動(dòng)部位的位置。值的注意的是,當(dāng)運(yùn)行速度太慢或太快時(shí),RCX在精確的檢測(cè)和計(jì)數(shù)方面會(huì)受到影響。事實(shí)上,問(wèn)題并不是出在RCX身上,而是它的操作系統(tǒng),如果速度超出了其指定范圍,RCX就會(huì)丟失一些數(shù)據(jù)。Steve
Baker用實(shí)驗(yàn)證明過(guò),轉(zhuǎn)速在每分鐘50到300轉(zhuǎn)之間是一個(gè)比較合適的范圍,在此之內(nèi)不會(huì)有數(shù)據(jù)丟失的問(wèn)題。然而,在低于12rpm或超過(guò)1400rm的范圍內(nèi),就會(huì)有部分?jǐn)?shù)據(jù)出現(xiàn)丟失的問(wèn)題。而在12rpm至50rpm或者300rpm至1400rpm的范圍內(nèi)時(shí),RCX也偶會(huì)出現(xiàn)數(shù)據(jù)丟失的問(wèn)題。
不用刻意的加入 正常編匯就可以了 單片機(jī)識(shí)別的是高低電平,不會(huì)識(shí)別是什么傳感器
樂(lè)高 NXT光電傳感器 和 HItechnic顏色傳感器 不一樣 。樂(lè)高光電傳感器只感受照射物體反射光的強(qiáng)弱,樂(lè)高有自己的顏色傳感器,實(shí)際內(nèi)部集成了光電傳感器功能 只是設(shè)置的時(shí)候要在nxt_g 中選擇光電選項(xiàng)就可以了。它們功能一樣,只是傳輸速度有差異。樂(lè)高的反應(yīng)要快點(diǎn)據(jù)說(shuō)是模擬信號(hào) ,HItechnic要慢用I2C總線,但要準(zhǔn)確很多。
所得到的多多多
4.1簡(jiǎn)介
馬達(dá)通過(guò)齒輪和滑輪傳動(dòng),可以讓你搭建的機(jī)器人動(dòng)起來(lái),他們就如同是移動(dòng)機(jī)器人腿和手臂的肌肉。同時(shí),你還可以使用傳感器來(lái)裝備你的機(jī)器人,它們就如同是機(jī)器人的眼睛、耳朵和手指。機(jī)器人套裝中包含兩種傳感器:觸動(dòng)傳感器(兩種)和光電傳感器。在此主要是描述它們的特性,對(duì)于其它的傳感器可以單獨(dú)購(gòu)買(mǎi),如:角度傳感器和溫度傳感器。每一個(gè)設(shè)備都有其特定的作用,你將會(huì)因?yàn)樗鼈兊墓δ軓?qiáng)大和所能涉及的范圍之廣而感到驚訝。當(dāng)然也包括這種情況,可以用一種傳感器仿效另一種傳感器,以用來(lái)代替不能使用的傳感器。利用RCX上的紅外光電,使用一些小技巧,你可以把把你的光電傳感器變成一個(gè)雷達(dá)。
4.2觸動(dòng)傳感器
觸動(dòng)傳感器(圖4.1)的工作方式非常像是你家門(mén)鈴上的按鈕:當(dāng)它被按下時(shí),電路接通,電流就會(huì)通過(guò),RCX就能夠檢測(cè)到這個(gè)數(shù)據(jù)流,你的程序就會(huì)讀取觸動(dòng)傳感器的當(dāng)前狀態(tài):開(kāi)或者關(guān)。
圖4.1 觸動(dòng)傳感器
如果閱讀了Constructopedia,并搭建了一些模型,你可能對(duì)傳感器的一般用途比較熟悉,如緩沖器。緩沖器是與周?chē)h(huán)境相互作用的一種簡(jiǎn)單方式,當(dāng)你的機(jī)器人遇到障礙物時(shí),可以用它們來(lái)進(jìn)行檢測(cè),并由此而改變運(yùn)動(dòng)狀態(tài)。
典型的緩沖器是一個(gè)重量較輕的可移動(dòng)裝置,事實(shí)上,當(dāng)它碰到障礙物時(shí)會(huì)把沖擊力傳遞給觸動(dòng)傳感器并使之關(guān)閉。你也可以發(fā)明出很多種緩沖器,但它們的外形應(yīng)該能夠反映機(jī)器人的外形,而且還能反映出環(huán)境中障礙物的外形。如圖4.2中所示一個(gè)非常簡(jiǎn)單的緩沖器,可以很容易發(fā)現(xiàn)墻壁,假如房間里有像椅子一樣等復(fù)雜障礙物,它的效果就不好了。在這種情況下,我們建議你通過(guò)實(shí)驗(yàn)來(lái)進(jìn)行。為機(jī)器人設(shè)計(jì)一個(gè)緩沖器,在房間的周?chē)x地板適當(dāng)高度的地方移動(dòng)它,檢查它是否能夠發(fā)現(xiàn)所有可能的碰撞點(diǎn)。如果你的緩沖結(jié)構(gòu)較大,當(dāng)它用最佳部位撞擊到障礙物并按下觸動(dòng)傳感器時(shí),不要以為這就是正確的。圖例4.2是一個(gè)不太好的緩沖器,因?yàn)楫?dāng)碰撞發(fā)生時(shí),它幾乎不能用橫軸的邊緣來(lái)關(guān)閉觸動(dòng)傳感器,說(shuō)它是一個(gè)不好的緩沖器是因?yàn)樗颜麄€(gè)碰撞產(chǎn)生的力直線傳輸給了傳感器,也就是說(shuō),在機(jī)器人身上安裝一個(gè)非常穩(wěn)固的支架對(duì)傳感器的安裝是非常有必要的。
圖4.2簡(jiǎn)單的緩沖器
根據(jù)經(jīng)驗(yàn),應(yīng)該嘗試不同的碰撞來(lái)看看緩沖器在各個(gè)位置是否能很好的工作。你可以編寫(xiě)一個(gè)無(wú)限循環(huán)的小程序,當(dāng)傳感器被按下時(shí),發(fā)出一聲蜂鳴聲用來(lái)測(cè)試你的緩沖器。
談起緩沖器,人們往往會(huì)想到當(dāng)遇到障礙物時(shí)開(kāi)關(guān)會(huì)被按下。這樣說(shuō)似乎有點(diǎn)絕對(duì),在發(fā)生碰撞的時(shí)候同樣可以松開(kāi)開(kāi)關(guān)。看一下圖4.3,橡膠皮筋可以使積木輕壓著傳感器,當(dāng)緩沖器的前面部分接觸到物體時(shí),開(kāi)關(guān)就會(huì)被釋放。
圖4.3
平常壓下的緩沖器
實(shí)際上,推薦這種緩沖器有這樣幾個(gè)重要的原因:
l 沖擊力不可能直接傳遞給傳感器,傳感器與標(biāo)準(zhǔn)的樂(lè)高積木相比更容易受損壞,因此應(yīng)避免不必要的撞擊。
l 橡皮圈可以吸收撞擊力,這對(duì)你的傳感器和機(jī)器人來(lái)說(shuō)都會(huì)起到保護(hù)作用,當(dāng)你的機(jī)器人速度非常快,或者重量大,或者反應(yīng)比較慢,或者具備其中的一個(gè)因素時(shí),這種保護(hù)作用顯得尤其重要。
緩沖器是一個(gè)非常重要的裝置,而且觸動(dòng)傳感器的應(yīng)用也非常廣泛。當(dāng)你想告之RCX一個(gè)事件發(fā)生時(shí),你可以使用按鈕一樣人為的把它按下去。你能想象出類(lèi)似的情況嗎?事實(shí)上,有很多。比方說(shuō),你可以按下銨鈕告訴RCX”現(xiàn)在讀取光電傳感器的值”,從而進(jìn)行讀取校準(zhǔn)(我們將在以后的部分進(jìn)行討論)。
另一個(gè)常用的作用就是把觸動(dòng)傳感器作為一個(gè)位置控制器來(lái)用。如圖4.4,機(jī)器人向前看時(shí)(圖
4.4b)就關(guān)閉了頭部(圖4.4a)的觸動(dòng)傳感器。通過(guò)編程可以在水平面上實(shí)時(shí)的控制頭部的旋轉(zhuǎn)(向左或向右),當(dāng)傳感器被按下時(shí),機(jī)器人的頭部就能轉(zhuǎn)回到正確的位置,值的注意的是,我們?cè)谶@個(gè)例子中用到的凸齒輪在與觸動(dòng)傳感器相配合時(shí)是非常的有用,你可以讓軸通過(guò)三個(gè)十字孔個(gè)中的一個(gè)來(lái)選擇合適的距離去關(guān)閉觸動(dòng)傳感器。
圖4.4
用觸動(dòng)傳感器定位
在本書(shū)的第三部分我們還會(huì)介紹位置控制的其它一些應(yīng)用。事實(shí)上,在搭建你的機(jī)器人之前需要你去研究一些不同的方法。
我們?cè)倥e幾個(gè)事例來(lái)說(shuō)明傳感器的應(yīng)用
都能停下。首先你會(huì)想到在每一層安放一個(gè)觸動(dòng)傳感器,當(dāng)按下其中一個(gè)時(shí),電梯室會(huì)在那一層停下。這是一個(gè)好方法,但這里有一個(gè)小問(wèn)題;你僅有兩個(gè)觸動(dòng)傳感器,對(duì)你來(lái)說(shuō),一個(gè)電梯僅有二層不是非常實(shí)際,你可以再買(mǎi)一個(gè)觸動(dòng)傳感器,但這只能再加高一層,并沒(méi)有解決實(shí)質(zhì)性的問(wèn)題。此時(shí),RCX的三個(gè)輸入端口已經(jīng)全部被占用。突然,你會(huì)想到一個(gè)辦法:為什么不把傳感器放在電梯廂上而不是外面呢?在電梯廂上固定一個(gè)傳感器,這樣只需一個(gè)傳感器就可以加高更多的樓層了。從最初的方案到現(xiàn)在更好的方案,兩個(gè)系統(tǒng)是完全相同的嗎?答案是否定的。首先,你需要決定廂的絕對(duì)位置,當(dāng)它在第二層時(shí),你僅是可以知道它的相對(duì)位置。那么,你需要一個(gè)初始點(diǎn),從起始點(diǎn)開(kāi)始計(jì)算就可以推斷出廂的位置.或者程序運(yùn)行時(shí),需要廂體在一個(gè)特定的位置,或者用第二個(gè)傳感器來(lái)探測(cè)一個(gè)特定的樓層。例如,在最底層放置一個(gè)傳感器,因此程序一開(kāi)始就降下電梯到最底層。那樣就可以計(jì)算出廂體的絕對(duì)位置了。
現(xiàn)在,電梯就能夠準(zhǔn)確的升降了。但你還有最后一個(gè)問(wèn)題需要解決:如何告訴你的電梯它應(yīng)該去哪一層呢?在每一樓層放置一個(gè)傳感器去提示電梯是不切合實(shí)際的。在RCX上只剩下一個(gè)輸入端口了。你要用這一個(gè)觸動(dòng)傳感器來(lái)做什么呢?你還可以采用以前的方法嗎?可以,你可以計(jì)算一個(gè)觸動(dòng)傳感器被按下的次數(shù)。比如說(shuō),被按下三次表示是三樓,依次類(lèi)推。現(xiàn)在你就可以去搭建你的電梯了。
。假如你想搭建一個(gè)電梯。你希望電梯可以在任何一層
計(jì)算按下次數(shù)
下面這個(gè)例子是用偽代碼來(lái)編寫(xiě)的,一個(gè)代碼并不與實(shí)際編寫(xiě)語(yǔ)言相對(duì)應(yīng),而是界于程序語(yǔ)言和機(jī)器語(yǔ)言之間。使用偽代碼編程在專(zhuān)業(yè)程序員中是一種非常普遍的做法。
計(jì)算觸動(dòng)傳感器被按下多少次需要一些小竊門(mén)。假如你寫(xiě)了一些簡(jiǎn)單的代碼,如下:
Counter=0
repeat
if Sensor1 is on then
Counter = Counter +1
end if
end repeat
當(dāng)你保持觸動(dòng)傳感器被按下很短的間隔內(nèi),你的程序代碼就會(huì)在你的RCX上飛快的執(zhí)行。然而,在記錄下一個(gè)新的按下之前,需要松開(kāi)觸動(dòng)傳感器:
Counter =0
repeat
if Sensor1 is
on then
Counter=Counter+1
wait until Sensor1 is off
end if
end repeat
現(xiàn)在,你編寫(xiě)的代碼正確地記錄了從斷開(kāi)到閉合的變化。在你的代碼中,有一個(gè)重要的特點(diǎn)需要介紹一下:當(dāng)它在一段時(shí)間內(nèi)接收不到觸動(dòng)信息時(shí),你希望你的計(jì)數(shù)程序停止。為了實(shí)現(xiàn)這一點(diǎn),你需要使用一個(gè)計(jì)時(shí)器用來(lái)測(cè)量上一次按下時(shí)間與最后一次時(shí)間的間隔:
Counter=0
interval=
reset Timer
repeat
if Sensor1 is on then
Counter=Counter + 1
wait until Sensor1 is off
or until Timer if greater then Interval
reset Timer
end if
until Timer is greater then
Interval
假如你的時(shí)間間隔是兩秒。當(dāng)計(jì)數(shù)程序開(kāi)始時(shí),計(jì)時(shí)器和計(jì)數(shù)器首先復(fù)位為0,然后開(kāi)始檢測(cè)傳感器的狀態(tài)。如果兩秒內(nèi)沒(méi)有按下觸動(dòng)傳感器,它仍將保持復(fù)位狀態(tài),如果有觸動(dòng)傳感器被按下,此動(dòng)作將被記下并等待使用者釋放按鈕,計(jì)時(shí)器復(fù)位為零,在程序停止運(yùn)行之前,使用者可以在兩秒內(nèi)第二次按下觸動(dòng)傳感器。
4.3光電傳感器
用”看”來(lái)形容光電傳感器的功能有點(diǎn)夸大其辭。實(shí)際上它只是用來(lái)檢測(cè)光并測(cè)量其強(qiáng)度。盡管受到限制,但其應(yīng)用范圍仍比較廣。
圖4.5 光電傳感器
光電傳感器和觸動(dòng)傳感器的最大區(qū)別是,后者返回的是一些數(shù)值而不是單純的開(kāi)/關(guān)狀態(tài)。你所讀到的數(shù)值由光電傳感器在那個(gè)時(shí)候所檢測(cè)到的光強(qiáng)所決定。這些數(shù)值以0至100的百分?jǐn)?shù)的形式返回,光值越大,百分?jǐn)?shù)就越大。你可以用光電傳感器來(lái)做什么呢?你可以用它搭建一個(gè)由光電傳感器所驅(qū)動(dòng)的機(jī)器人,我們稱(chēng)之為光的追隨者,它可以檢測(cè)周?chē)沫h(huán)境,找到一個(gè)強(qiáng)光源(或者是最亮的)并朝著它前進(jìn)。在一間足夠暗的房間里進(jìn)行,以免產(chǎn)生干擾,你也可以用手電筒來(lái)控制你的機(jī)器人。
檢測(cè)外部光源的功能是非常有趣的,但是或許你不能用它來(lái)做最令人驚奇的事情。我們介紹一下光電傳感器的另一個(gè)用途:它不但可以用來(lái)檢測(cè)光強(qiáng),而且還可以自身發(fā)光。提供穩(wěn)定光源的是一個(gè)紅色的發(fā)光二極管,因此你可以用來(lái)測(cè)量反射光并傳給傳感器。
當(dāng)你用來(lái)測(cè)量反射光時(shí),你必須去避免一些來(lái)自其它光源的干擾。需要注意的是光電傳感器對(duì)IR所發(fā)出的光也非常紅外光,如攝像機(jī);或者是樂(lè)高紅外發(fā)射器。
敏感,像典型的遠(yuǎn)距離控制器發(fā)出的
設(shè)計(jì)與計(jì)劃
讀取周?chē)墓庵?br/>樂(lè)高光電傳感器并不適合于測(cè)量外部光源來(lái)說(shuō),因?yàn)槠潇`敏度比較弱。紅色發(fā)光二極管所所發(fā)出的光太靠近檢光器以致于過(guò)多的影響了光值的讀取。如果你想測(cè)外部光源,你應(yīng)該考慮盡可能的去減少紅色發(fā)光二極管的影響。一個(gè)簡(jiǎn)單的辦法就是在光電傳感器的前部放一個(gè)1×2的單孔積木塊,.更多的行之有效的辦法需要你對(duì)光電傳感器有些細(xì)微的改動(dòng)。在Ralph
Hempel的網(wǎng)站中,他提到了如何對(duì)光電傳感器作修改,既不是永久的改變也不會(huì)損害你的光電傳感器。(見(jiàn)附錄A)
光在表面的反射率取決于許多因素,主要是表面的顏色,質(zhì)地和它距光源的遠(yuǎn)近。黑色物體的反射能力要弱于白色物體;黑色光滑表面的反射能力要強(qiáng)于黑色不光滑表面。另外,距離光電傳感器越遠(yuǎn),光電傳感器所檢測(cè)到的反射光就會(huì)越少。
這些因素都是相互依賴(lài)的,通過(guò)光感讀取的值,并不能說(shuō)明是由哪個(gè)因素引起的。但你可以保持其它因素不便,而讓一個(gè)變化,這樣就可以通過(guò)讀取的數(shù)值來(lái)推斷出環(huán)境的一些變化。例如,如果你的光電傳感器經(jīng)常對(duì)著同一個(gè)物體,或者相同質(zhì)地和顏色的物體,你能夠用它去測(cè)出它的相對(duì)距離。另一方面,你可以把不同的物體放置在光電傳感器的前面,在恒定的距離內(nèi)分辨出它們的顏色。
4.3.1測(cè)量反射光值
為了舉例說(shuō)明測(cè)量反射光的原理,我們來(lái)做一個(gè)實(shí)驗(yàn)。拿一個(gè)RCX并打開(kāi)其電源,在任意一個(gè)輸入端口連接一個(gè)光電傳感器,在你的程序中正確的設(shè)置其端口(紅色發(fā)光二極管應(yīng)該發(fā)光)。準(zhǔn)備一間光線較暗的房間,RCX有個(gè)控制模式,可以實(shí)時(shí)查看光感讀取的值。按RCX上的VIEW鍵,當(dāng)小箭頭正確顯示在傳感器所接的輸入端口位置。在顯示屏上會(huì)顯示出讀取的光線值。接下去你把光感放到桌上,在桌上以一定間隔(0.5cm,1cm,1.5cm)并排放置不同顏色的積木塊,保證積木之間的間距相等。查看數(shù)據(jù),得到的是不同顏色的積木反射的光值是不同的。
再進(jìn)行第二個(gè)實(shí)驗(yàn):將白色的積木快慢慢的移向光感,然后再慢慢的移開(kāi),觀察顯示屏上的數(shù)據(jù),可以發(fā)現(xiàn)當(dāng)光感與積木間的距離加大時(shí)數(shù)值將減小。我們的目的就是為了證明光感是不能同時(shí)判斷出距離和顏色的。我們重點(diǎn)強(qiáng)調(diào)在你使用光感時(shí)盡量避免外界光線的干擾。
方法與技巧
理解原始值的概念
了解原始值是很關(guān)鍵的,對(duì)于熟練的使用機(jī)器人套裝并不是必須的。但從另一個(gè)方面講,它可以幫助你理解傳感器是如何工作的。
RCX把來(lái)自傳感器(不管是什么類(lèi)型)的電信號(hào)全部轉(zhuǎn)變成范圍在0至1023之間的數(shù)字信號(hào),我們稱(chēng)之為原始數(shù)值。在程序中,你在一個(gè)端口上設(shè)置了一個(gè)特定的傳感器,RCX會(huì)自動(dòng)設(shè)定該傳感器的原始數(shù)值范圍,例如,從觸動(dòng)傳感器讀取的數(shù)值范圍是1或者0,代表開(kāi)或者關(guān),當(dāng)從溫度傳感器讀取時(shí)就會(huì)轉(zhuǎn)變成攝氏溫度或華氏溫度。同樣地,光電傳感器讀取時(shí)就會(huì)通過(guò)下面的方程式轉(zhuǎn)換成一個(gè)百分?jǐn)?shù):
百分?jǐn)?shù)=146-原始數(shù)值/7
為什么我們需要知道這種轉(zhuǎn)換呢?對(duì)于大多數(shù)應(yīng)用程序來(lái)說(shuō),通過(guò)RCX返回的光感值的百分?jǐn)?shù)形式更加有效,但也有這種情況,你需要所有光感變化值而百分?jǐn)?shù)形式卻不能體現(xiàn)出光感值的一些變化。我們用一個(gè)例子來(lái)做一下說(shuō)明。假設(shè)會(huì)有兩種不同的情形,光電傳感器讀取707和713兩個(gè)不同的數(shù)值。把這兩個(gè)數(shù)值轉(zhuǎn)換成百分?jǐn)?shù),因?yàn)镽CX只使用整數(shù),需要將除的結(jié)果進(jìn)行圓整。
146-(707/7)=146-101=45
146-(713/7)=146-101=45
在第二個(gè)方程式中數(shù)值101實(shí)際上是101.857…,去掉小數(shù)部分為101.就看部不出兩個(gè)值是不同的。我們知道在大多情況下數(shù)值的小數(shù)部分是不重要的。但也會(huì)有其它情況需要用到這樣一個(gè)微小的變化的數(shù)據(jù)
如果你用LEGO圖形化的編程環(huán)境為RCX編寫(xiě)程序,你必須接受它的刻度值,否則無(wú)法處理原始數(shù)值。如果你選擇其它的編程語(yǔ)言,則可以直接處理沒(méi)有處理過(guò)的原始數(shù)值,在必須的時(shí)候,利用其優(yōu)勢(shì),可能會(huì)有更好的解決方案。識(shí)別不同的顏色是光電傳感器一個(gè)非常普通的應(yīng)用。我們?cè)f(shuō)過(guò),光電傳感器實(shí)際上并不是用來(lái)識(shí)別顏色的,而是用來(lái)讀取反射光值。因此,它很難把黑色和藍(lán)色的積木塊區(qū)別開(kāi)。但目前來(lái)說(shuō),我們?nèi)哉f(shuō)它能識(shí)別顏色,在讀完之后您會(huì)明白真正的意思是什么。
4.3.2沿線走
目前,光電傳感器最普遍的使用方法就是用它搭建一個(gè)沿線走的機(jī)器人。
這個(gè)項(xiàng)目的設(shè)置是很簡(jiǎn)單的,這也是之所以流行的一個(gè)原因。盡管其外觀簡(jiǎn)單,這項(xiàng)工作仍需要引起足夠的重視,并需要你仔細(xì)設(shè)計(jì)和認(rèn)真編程。我們將在第二部分詳細(xì)的討論這個(gè)主題的細(xì)節(jié)內(nèi)容。當(dāng)光電傳感器在輕質(zhì)地面上讀取一條黑線時(shí),你要注意有什么事情發(fā)生。
當(dāng)把光電傳感器放在地板上時(shí),假設(shè)說(shuō)讀取的數(shù)值為百分之七十,黑線為百分之三十。如果你想讓機(jī)器人緩慢的從地板移動(dòng)到黑線或者是有污點(diǎn)的地方.你會(huì)注意到,數(shù)值不是從一個(gè)值突然跳到另一個(gè)值,而是會(huì)出現(xiàn)一系列的中間值。原因是光電傳感器不是讀取一個(gè)點(diǎn),而是光電傳感器前部的一個(gè)小區(qū)域。所以當(dāng)光電傳感器穿過(guò)線的邊緣時(shí),它所讀取的是地板和黑線的邊界值并返回一個(gè)中間值。
這個(gè)功能有用嗎?當(dāng)然,有時(shí)有用,有時(shí)沒(méi)有用。尤其當(dāng)我們涉及到沿線走時(shí),它是有用的。實(shí)際上,你可以(或者說(shuō)應(yīng)該)編寫(xiě)一段程序讓你的機(jī)器人沿著邊界走而不是實(shí)際的黑線。這樣當(dāng)機(jī)器人需要改變它的行進(jìn)路線時(shí),它知道往哪個(gè)方向轉(zhuǎn)身:如果所讀取的值太”暗”,它應(yīng)該向亮的區(qū)域前進(jìn),或有污點(diǎn)的區(qū)域。
技巧與提示
校準(zhǔn)讀取值
有時(shí),你并不能預(yù)先知道光電傳感器實(shí)際上所讀取的數(shù)值是多少。假如你要參加一個(gè)沿線走的比賽:你并不能確定你的傳感器所返回的地板和黑線的數(shù)值。在這種情況下,一般的習(xí)慣是,在你的程序中不寫(xiě)入預(yù)期的常數(shù)值是比較好的。但可以讓你的機(jī)器人通過(guò)一個(gè)簡(jiǎn)單的測(cè)量程序來(lái)讀取這些數(shù)值。繼續(xù)我們沿線走的例子,你可以專(zhuān)設(shè)一個(gè)空的輸入端口用來(lái)接入一個(gè)觸動(dòng)傳感器,當(dāng)你把機(jī)器人放在地板上時(shí)手動(dòng)按下觸動(dòng)傳感器,然后再放在黑線上,因此它就可以保存下讀取到的最大值和最小值。或者你可以編寫(xiě)一個(gè)小的檢測(cè)程序,以取消那些限制。
當(dāng)你需要控制一個(gè)更復(fù)雜的區(qū)域時(shí),舉例來(lái)說(shuō),區(qū)域包括三種不同的顏色,想象一個(gè)臺(tái)面被劃為白色,黑色和灰色三個(gè)不同顏色的區(qū)域。在白色和黑色之間的邊界上你如何能區(qū)別出灰色區(qū)域?
這時(shí)你不能只做一個(gè)簡(jiǎn)單的讀取,你必須深入考慮其它的因素,
像預(yù)先讀取,或者你可以使你的機(jī)器人在一個(gè)地方收集更多的數(shù)據(jù)并推斷它所在的位置。要處理這樣的情況,對(duì)軟件的要求就會(huì)變得更加復(fù)雜。
光電傳感器如同一個(gè)萬(wàn)能器,它有很多種使用方法。你可以在光電傳感器的前部放置一個(gè)彩色的可以移動(dòng)的樂(lè)高梁來(lái)搭建一個(gè)對(duì)者拉梁的上部時(shí),光電傳感器就會(huì)讀取不同的光值。
圖4.6
用光電傳感器作一個(gè)模擬控制
光電傳感器與燈相結(jié)合(不包括在頭腦風(fēng)暴套裝中)可做成一個(gè)光電管(圖4.7);當(dāng)有物體擋在光電傳感器和燈之間時(shí),機(jī)器人就會(huì)察覺(jué)。值得注意的是,我們?cè)诠怆妭鞲衅鞯那懊娣胖昧艘粋€(gè)1×2的單孔梁,以減少來(lái)自周?chē)饩€的干擾。
圖4.7 光電管
4.3.3接近探測(cè)
你可以用光電傳感器做成一個(gè)雷達(dá)探測(cè)器用于檢測(cè)即將碰到的障礙物。這被稱(chēng)之為接近探測(cè)。這項(xiàng)技術(shù)所基于的特性我們已經(jīng)討論并探究過(guò)了,就是光電傳感器可以根據(jù)反射光線來(lái)測(cè)定相對(duì)距離。假如你的機(jī)器人要直線前進(jìn),用一個(gè)光電傳感器為它在前面引路。假如你的機(jī)器人要在一個(gè)暗室里移動(dòng),除了光電傳感器上的紅色發(fā)光二極管之外沒(méi)有任何的光源。在向前移動(dòng)的過(guò)程中,機(jī)器人連續(xù)不斷的讀取傳感器所檢測(cè)到的光值。如果讀取值趨向于迅速增大,就可以推斷出機(jī)器人正向著一個(gè)物體前進(jìn)。但不能推斷出障礙物的種類(lèi)及與障礙物之間的距離,如果房間內(nèi)沒(méi)有物體在移動(dòng),你確信機(jī)器人正在接近障礙物。現(xiàn)在我們有了一套系統(tǒng)可以躲避障礙物而不是局限于碰撞以后再檢測(cè)它們。
注意:
RCX內(nèi)部的IR
LED發(fā)射的是不可見(jiàn)光,光電傳感器的紅色二極管發(fā)射的是可見(jiàn)光。
遺憾地是,當(dāng)房間內(nèi)有光源時(shí),這項(xiàng)技術(shù)工作就有問(wèn)題了,原因是你的程序不能區(qū)別自身反射回的紅色光還外界環(huán)境光線。你需要在機(jī)器人身上有一個(gè)更明顯的獨(dú)立光源提供更高的參考。
令人欣慰的是,正好有一個(gè)!RCX內(nèi)部有一個(gè)IR
LED可以發(fā)射信息給紅外發(fā)射儀或是另一個(gè)RCX。用RCX內(nèi)部的IR
LED以比特的編碼形式發(fā)送信息可以被紅外發(fā)射器所接收到。關(guān)于信息的內(nèi)容我們并不關(guān)心;我們需要的僅僅是光。盡管紅外光對(duì)于肉眼來(lái)說(shuō)是不可見(jiàn)的,卻與可見(jiàn)光具有相同的性質(zhì),LEGO光電傳感器對(duì)此卻非常敏感。
所以,現(xiàn)在你的程序有了使用接近探測(cè)的所有條件。發(fā)送一個(gè)IR信息并立即讀取光電傳感器的值.你最好把讀取的數(shù)值進(jìn)行一下平均處理,這樣可以把外部光源所導(dǎo)致的影響降至最低(我們將會(huì)第12節(jié)討論這個(gè)竅門(mén))。如果你注意到在隨后的二組值中有顯著的增加,舉例來(lái)說(shuō),百分之十,說(shuō)明你的機(jī)器人很有可能正朝著障礙物前進(jìn)。
4.4角度傳感器
我們將要研究的第三個(gè)樂(lè)高傳感器是角度傳感器(圖4.8)。遺可是機(jī)器人套裝中沒(méi)有包含該部件,它的多功能性?xún)H次于光電傳感器。在3801
Ultimate
Accessory套裝里面包含一個(gè)角度傳感器,還有一個(gè)觸動(dòng)傳感器,一個(gè)燈,遙控器和少量的其它附件。
圖4.8 角度傳感器
角度傳感器是如何工作的呢?
因?yàn)榻嵌葌鞲衅饔兴姆N不同的狀態(tài),所以會(huì)返回四種不同的值。我們稱(chēng)之為A,B,C和D。對(duì)于每一次完整的旋轉(zhuǎn),它經(jīng)過(guò)了四種狀態(tài)各四次—這也就是我們?yōu)槭裁匆檬鶃?lái)計(jì)數(shù)的原因。如果角度傳感器是順時(shí)針旋轉(zhuǎn),它會(huì)讀序列ABCD…,如果是逆時(shí)針旋轉(zhuǎn),讀取的結(jié)果會(huì)是ADCBA…,RCX會(huì)時(shí)刻檢測(cè)傳感器,當(dāng)RCX檢測(cè)到狀態(tài)發(fā)生變化時(shí),它不但可以推斷出角度傳感器已經(jīng)轉(zhuǎn)動(dòng),而且還可以知道所旋轉(zhuǎn)的方向。舉例來(lái)說(shuō),從A轉(zhuǎn)變到B,或從D轉(zhuǎn)變到A,計(jì)數(shù)器將增加一個(gè)單位,然而,從D到C,或者是從A到D,計(jì)數(shù)器將減少一個(gè)單位。
角度傳感器,顧名思義,是用來(lái)檢測(cè)角度的。它的身體中有一個(gè)孔,可以配合樂(lè)高的軸。當(dāng)連結(jié)到RCX上時(shí),軸每轉(zhuǎn)過(guò)1/16圈,角度傳感器就會(huì)計(jì)數(shù)一次。往一個(gè)方向轉(zhuǎn)動(dòng)時(shí),計(jì)數(shù)增加,轉(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í),可以依據(jù)旋轉(zhuǎn)的角度和輪子圓周數(shù)來(lái)推斷機(jī)器人移動(dòng)的距離。然后就可以把距離轉(zhuǎn)換成速度,你也可以用它除以所用時(shí)間。實(shí)際上,計(jì)算距離的基本方程式為:
距離=速度×?xí)r間
由此可以得到:
速度=距離/時(shí)間
如果把角度傳感器連接到馬達(dá)和輪子之間的任何一根傳動(dòng)軸上,必須將正確的傳動(dòng)比算入所讀的數(shù)據(jù)。舉一個(gè)有關(guān)計(jì)算的例子。在你的機(jī)器人身上,馬達(dá)以3:1的傳動(dòng)比與主輪連接。角度傳感器直接連接在馬達(dá)上。所以它與主動(dòng)輪的傳動(dòng)比也是3:1。也就是說(shuō),角度傳感器轉(zhuǎn)三周,主動(dòng)輪轉(zhuǎn)一周。角度傳感器每旋轉(zhuǎn)一周計(jì)16個(gè)單位,所以16*3=48個(gè)增量相當(dāng)于主動(dòng)輪旋轉(zhuǎn)一周。現(xiàn)在,我們需要知道齒輪的圓周來(lái)計(jì)算行進(jìn)距離。幸運(yùn)地是,每一個(gè)LEGO齒輪的輪胎上面都會(huì)標(biāo)有自身的直徑。我們選擇了體積最大的有軸的輪子,直徑是81.6CM(樂(lè)高使用的是公制單位),因此它的周長(zhǎng)是81.6×π=81.6×3.14≈256.22CM。現(xiàn)在已知量都有了:齒輪的運(yùn)行距離由48除角度所記錄的增量然后再乘以256。我們總結(jié)一下。稱(chēng)R為角度傳感器的分辨率(每旋轉(zhuǎn)一周計(jì)數(shù)值),G是角度傳感器和齒輪之間的傳動(dòng)比率。我們定義I為輪子旋轉(zhuǎn)一周角度傳感器的增量。即:
I=G×R
在例子中,G為3,對(duì)于樂(lè)高角度傳感器來(lái)說(shuō),R一直為16.因此,我們可以得到:
I=3×16=48
每旋轉(zhuǎn)一次,齒輪所經(jīng)過(guò)的距離正是它的周長(zhǎng)C,應(yīng)用這個(gè)方程式,利用其直徑,你可以得出這個(gè)結(jié)論。
C=D×π
在我們的例子中:
C=81.6×3.14=256.22
最后一步是將傳感器所記錄的數(shù)據(jù)-S轉(zhuǎn)換成輪子運(yùn)動(dòng)的距離-T,使用下面等式:
T=S×C/I
如果光電傳感器讀取的數(shù)值為296,你可以計(jì)算出相應(yīng)的距離:
T=296×256.22/48=1580
距離(T)的單位與輪子直徑單位是相同的.
實(shí)際上,在程序不僅僅會(huì)用到乘法和除法的數(shù)學(xué)運(yùn)算,還有更多的需要多留心(有關(guān)內(nèi)容我們將在第12章進(jìn)行進(jìn)一步的討論)。
使用角度傳感器來(lái)控制你的輪子可以間接的發(fā)現(xiàn)障礙物。原理非常簡(jiǎn)單:如果馬達(dá)運(yùn)轉(zhuǎn),而齒輪不轉(zhuǎn),說(shuō)明你的機(jī)器已經(jīng)被障礙物給擋住了。此技術(shù)使用起來(lái)非常簡(jiǎn)單,而且非常有效;唯一要求就是運(yùn)動(dòng)的輪子不能在地板上打滑(或者說(shuō)打滑次數(shù)太多),否則你將無(wú)法檢測(cè)到障礙物。如果是一個(gè)空轉(zhuǎn)的齒輪連接到馬達(dá)上就可以避免這個(gè)問(wèn)題,這個(gè)輪子不是由馬達(dá)驅(qū)動(dòng)而是通過(guò)裝置的運(yùn)動(dòng)帶動(dòng)它:在驅(qū)動(dòng)輪旋轉(zhuǎn)的過(guò)程中,如果惰輪停止了,說(shuō)明你碰到障礙物了。
在許多情況下角度傳感器是非常有用的:控制手臂,頭部和其它可移動(dòng)部位的位置。值的注意的是,當(dāng)運(yùn)行速度太慢或太快時(shí),RCX在精確的檢測(cè)和計(jì)數(shù)方面會(huì)受到影響。事實(shí)上,問(wèn)題并不是出在RCX身上,而是它的操作系統(tǒng),如果速度超出了其指定范圍,RCX就會(huì)丟失一些數(shù)據(jù)。Steve
Baker用實(shí)驗(yàn)證明過(guò),轉(zhuǎn)速在每分鐘50到300轉(zhuǎn)之間是一個(gè)比較合適的范圍,在此之內(nèi)不會(huì)有數(shù)據(jù)丟失的問(wèn)題。然而,在低于12rpm或超過(guò)1400rm的范圍內(nèi),就會(huì)有部分?jǐn)?shù)據(jù)出現(xiàn)丟失的問(wèn)題。而在12rpm至50rpm或者300rpm至1400rpm的范圍內(nèi)時(shí),RCX也偶會(huì)出現(xiàn)數(shù)據(jù)丟失的問(wèn)題。
下一篇: PLC、DCS、FCS三大控
上一篇: 電氣控制線路圖控制原
型號(hào):E3FARP21
價(jià)格:面議
庫(kù)存:10
訂貨號(hào):E3FARP21
型號(hào):E3Z-LS61 2M BY OMS
價(jià)格:面議
庫(kù)存:10
訂貨號(hào):E3Z-LS61 2M BY OMS
型號(hào):BOS R020K-PS-RX11-00,2-S49
價(jià)格:面議
庫(kù)存:10
訂貨號(hào):BOS R020K-PS-RX11-00,2-S49
型號(hào):HG-C1400
價(jià)格:面議
庫(kù)存:10
訂貨號(hào):HG-C1400
型號(hào):EE-SX672P
價(jià)格:面議
庫(kù)存:10
訂貨號(hào):EE-SX672P
型號(hào):E3Z-T61-D 2M
價(jià)格:面議
庫(kù)存:10
訂貨號(hào):E3Z-T61-D 2M