EV3 Tutorial(7)使用顏色感應器實作掃描器
EV3 Tutorial(6)主機按鈕操控機器手臂 << 前情 EV3 的顏色感應器可以感應顏色、反射光線強度與環境光強度。顏色感應時,可以分辨的顏色是: 經常的應用是實作顏色分類器、色卡電子琴等。反射光線強度與環境光強度下,基本上都是感應光線的強度,差別在於,量測反射光線強度,紅色 LED 指示燈會開啓,感應器量測反射回到鏡頭內的光線,為了減少其他光源的影響,感應器要很接近但不接觸物體表面,環境光強度量測時,主要是收集周遭環境的各種光線的總強度。 反射光線強度應用這次我想使用反射光線強度量測,通常會使用來設計循跡機器人,以黑色軌道為例,光線從黑色區域反射回來的量會比較少,因此可將顏色感應器靠在黑色軌道旁: 如果黑線是在感應器的右方,當機器人越往左偏離黑線,反射光會越大,在大於某個值時可使其偏右接近黑線,如果機器人越偏右進入黑線,為避免它整個往右超出黑線,可在反射光小至某個值時,讓機器人偏左,像這樣始終讓感應的反射光維持在某個範圍內,保持黑線在感應器的右方,就可讓機器人延著劃下的軌道前進。 當然,這樣的方式只適合不交叉的黑線,如果軌道有交叉,就要使用兩個感應器夾住黑線,如此在兩個感應器反射光都小於某個值時,就表示目前處於交叉點。 實作掃描器我想到的是,使用反射光線強度量測來實作掃描器,將掃描的結果顯示在 EV3 主機螢幕上,積木的組裝可以下載檔案 Scanner.lxf,或者直接 線上觀看組裝過程,積木成品圖如下: 這是簡單的掃描器可掃描小面積的影像,底下是實際運作的影片: 掃描器程式實作照例,程式實作時分為數個自訂 Block,剛開始進行掃描時會清除螢幕,接著進行 Scan 自訂積木,完成掃描後會暫停等待按下任一主機按鈕,可以趁此看看掃描成果: 在進行掃描時,因為我的目的是測試顏色感應器的能力,因此在馬達控制上我投機了一些,直接測試它可以作動的範圍,得到大型馬達可轉動 因為解析度為 在這樣的設定下,ScanAll 自訂方塊的設計如下: 每前進一行,顏色感應器會掃描該行,進行反射光的偵測,這就是 ScanOneLine 自訂 Block 的作用: 在 CatchBlack 自訂 Block 中,實際的反射光該在什麼樣的量判定為黑色或白色,建議實際量測一塊全黑的表面,看看反射光值為多少,再於該值上下微調(你也可以設計將此設計為一個校準的自訂 Block,也可以保留一個拉桿,讓使用者可以微調該值,這就像是在設定對比度,閥值越高表示越容易判定為黑色,這樣掃出來的圖會比較多黑色區塊,反之就是白色區塊比較多)。 實際測試成果我印製了一張圖來做掃描測試: 中間三角型是用來測試可以掃描的黑色區塊最小極限,成果如下: 至於「EV3」圖樣,因為我畫的太大了,實際上只能掃描到「EV」兩個字母,成果如下: 有興趣的話,可以自行組裝一個更大台的掃描機,結合較多的顏色感應器,如果有另一台主機,串接起來,另組一台印表機的話,就會像是影印機了 … XD |