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