能不能讓機(jī)器人不接觸就可以感知到障礙物的所在 呢?本節(jié)課我們就來令機(jī)器人具備一個(gè)新的能力:遠(yuǎn)距離探測障礙物。這項(xiàng)能力是使用 一種叫作紅外避障傳感器的模塊實(shí)現(xiàn)的。這種傳感器是一個(gè)數(shù)字開關(guān)傳感器,它還有個(gè) 學(xué)名叫“反射式紅外傳感器”,如圖10-1所示。它的原理和我們已經(jīng)掌握的地面灰度檢測 傳感器非常類似,也是由一個(gè)光線發(fā)射裝置和一個(gè)光線接收裝置組成的。所不一樣的是, 它的光線發(fā)射方向是朝向運(yùn)動(dòng)的方向而不是地面,而且發(fā)射裝置發(fā)出的光是紅外光而不是可見光。
安裝了這種傳感器后,在傳感器正對的方向有障礙物時(shí),它發(fā)出的紅外線就會(huì)被障礙 物反射回來被接收裝置所感知。于是,機(jī)器人上的主控制器就可以檢測到障礙物的存在。 至于這時(shí)機(jī)器人是應(yīng)該停下或是繞開障礙物還是轉(zhuǎn)身返回就要看我們的智能程序是如何 設(shè)計(jì)的了。
這種傳感器會(huì)返回一個(gè)數(shù)字開關(guān)狀態(tài),用起來再簡單不過。但它也有很明顯的缺點(diǎn), 只靠它機(jī)器人是很難得知障礙物的準(zhǔn)確距離的。雖然,通過用螺絲刀調(diào)節(jié)傳感器上的可 調(diào)電阻(圖10-1),我們能夠大致改變傳感器的感知距離(一般是20cm 左右)。但是在實(shí) 際使用中的很多因素都會(huì)對這個(gè)距離產(chǎn)生影響,比如,如果物體的表面是比較光滑的,就 會(huì)像鏡子一樣將紅外線往另一個(gè)方向反射出去,這時(shí)雖然小機(jī)器人離障礙物很近了,但是 也不能接收到比較強(qiáng)的反射信號(hào);物體的顏色深淺當(dāng)然也是一個(gè)決定性的因素;還有,如 果環(huán)境中有其他的光線源,比如陽光的直射,也會(huì)對接收到的信號(hào)造成影響。
因此,如果需要機(jī)器人準(zhǔn)確地探測障礙物的距離,就要用更“高J”的傳感器了。比 如,應(yīng)用仿生學(xué)原理,模仿蝙蝠的聲吶探測能力的超聲波傳感器,還有更加復(fù)雜的激光雷 達(dá)傳感器,甚至是模仿人類視覺的雙目攝像頭等。
并排安裝4個(gè)地面灰度傳感器,用杜邦連接線把它們按順序分別 連接到主控板的A0~A3 端口,其中最左端的傳感器連接A0口,最右端的連接A3口,只要是最左或最右端的傳感器檢測到了 黑線,就代表機(jī)器人遇到了路口
在使用 pinMode 命令為端口規(guī)定方向時(shí)肯定要用到它的編號(hào),然后再用 digitalRead 之類的命令操縱端口時(shí)也要用到同一個(gè)編號(hào),用analogRead 命令讀到了傳感器當(dāng)前的值
機(jī)器人傳感器的位置在靠近黑線的左側(cè)或者正好在黑線上;digitalRead 、digitalWrite 、analogRead 、analogWrite、 pinMode 、delay。它們構(gòu)成了Arduino 中最為重要、最為常用的功能
微觸開關(guān)也只有“開”和“閉” 兩種不同的狀態(tài),把它連接到主控制器,用程序就能很準(zhǔn)確地檢測到它的開閉變化了,只要用 digitalRead 命令就可以很 方便地讀取微觸開關(guān)的值了,這個(gè)命令的用法
將機(jī)器人、擴(kuò)展板和小燈模塊連接好,將右轉(zhuǎn)向燈連接D5 號(hào)口,左轉(zhuǎn)向燈連接D3號(hào)口;編寫程序,讓轉(zhuǎn)向燈亮滅的語句,左轉(zhuǎn)向燈熄滅,同時(shí)機(jī)器人向右轉(zhuǎn)彎
機(jī)器人的主控制器可以用這些插針和各種傳感器或執(zhí)行器共同工作,用灰色的RJ11 線連接各種傳感器 和執(zhí)行器,而不用擔(dān)心線路連錯(cuò)或連反,連接時(shí)如果聽到“咔嚓”就代表連接成功
常見的一種機(jī)器人驅(qū)動(dòng)方式—雙輪差速驅(qū)動(dòng),左輪和右輪以同樣的速率向前轉(zhuǎn)動(dòng),機(jī)器人向正前方前進(jìn);左輪和右輪 以同樣的速率向后轉(zhuǎn)動(dòng),轉(zhuǎn)彎半徑的大小取決于左右兩個(gè)輪子的轉(zhuǎn)動(dòng)速度之差
機(jī)器龜有一個(gè)PWM驅(qū)動(dòng)的活動(dòng) 底盤,底盤上搭載了一個(gè)可旋轉(zhuǎn)的傳感器平臺(tái),機(jī)器人頭部設(shè)置了一個(gè)距離傳感 器,底盤下裝有4個(gè)邊緣傳感器
制作靜片使用的材料是端子芯和黃銅管,把一根有彈性的金屬絲套在銅管里做開關(guān)的動(dòng) 片,碰到物體后,金屬絲和銅管內(nèi)壁接觸,電路導(dǎo)通,以用電阻引腳彎個(gè)圓圈做成靜片
電機(jī)的布局建議稍微靠后,給兩條前腿留出多 一點(diǎn)活動(dòng)空間。因?yàn)榍懊嬷谱鞯腃PG 是主-從神經(jīng)元結(jié)構(gòu),前腿帶著后腿走,前腿的動(dòng)作幅度大于后腿。這樣的設(shè)計(jì)可以使機(jī)器人跨越路面上的一些小障礙
神經(jīng)網(wǎng)絡(luò)中最關(guān)鍵的元件是電阻R3,R3的阻值過小,左、 右兩側(cè)機(jī)體就無法協(xié)調(diào)運(yùn)轉(zhuǎn),機(jī)器人就好像喝醉了一樣。實(shí)際R3的阻值可以選取 1~10MΩ
,74HC240,4個(gè),光敏二極管,2個(gè),0.22μF無極電容,6個(gè),微型電機(jī),2個(gè),1MΩ電阻,6個(gè),1.5MΩ電阻,2個(gè),PC電源端子(母,拆芯),2位,小型壓線端子(拆芯),2位,3mm黃銅管(可選),1小段,RCA插頭尾簧,1個(gè)