Counter 計數器
Counter的作用是作為Behavior直接為前面的Input統計它的觸發次數。例如如果Counter連接在Button的後面的話,每一次Button被按下去時Counter便會計算一次,而Counter會一直累積次數,直到數值達到100為止。
影片分享
所需用料 :
Button x1
RGB LED x1
Counter是無需連接的Behavior Block。可以在Sam Space中的Behavior欄目的Numbers類別中找到。
編程教學
1. 連接Button和RGB LED到Sam Space,把Button拉到介面上。
2. 到Behavior欄目的Numbers類別中找出Counter,並把它拉到介面上,連接在Button後面。
3. 你會看到Counter的圖示寫着000,這代表你觸發Button的次數為0次。按下Button,你會發現圖示變成001。
4. 打開Counter的設定,你可以看到你可以設定Counter的類型和幅度。首先類型上你可以選擇當Counter累計到最高值時要重新reset Counter數值還是直接停在最高值就完。一般而言如果是需要持續運作的編程會用到"Restart"的Counter類型所以可以選擇Restart。但在這個教學中,先選擇"Stop"。
5. 在Counter的設定中你亦可以設定它的Range,意思即是選擇Counter開始時的數值,以及其最高數值。例如如果最高數值是5的時候,當Counter數值達到5,它就會Restart或Stop,取決於你選擇的Counter類型。在這個教學中,先把最高值設定為5。
6. 另外在Counter的設定中有一個Reset鍵,讓你在數值未達到最高點前可以手動Reset。由於我們在Step 3時按過一下,所以先按一次Reset。
7. 回到Sam Space,嘗試按下Button 5次,你會應該會看到數值達到005。
8. 再按一下Button,看看Counter數值是否維持在005。
9. 重新進入Counter的設定,把類型改成"Restart",然後回到Sam Space。
10. 你會發現數值仍然是005,因為你並沒有按Reset鍵。這時候再按一下Button,讓數值超過最高值。看看Counter是否Restart了。
進階編程教學
你可能會覺得Counter的功用只是計算觸發Input的次數,並沒有什麼實質的功用。當然如果只用Counter block的話功用的確不大,但當編程中加入其他Behavior blocks的話就會有很大分別。
11. 到Behavior欄目的Numbers類別中找出Compare,並把它拉到介面上,連接在Counter後面。
12. 打開Compare的設定,將 "=60"轉換成 ">3"。
13. 將RGB LED拉出來,連接到Compare的後面。
14. 按一下Button,令Counter的數值變成001,看看RGB LED是否維持關閉。
15. 再按3下Button,令Counter的數值變成004,看看RGB LED是否亮起來了。
Counter小知識
Counter是個會可以計算Input觸發數值的Behavior,當接收到訊號時就會直接將自身的計數器數值加1。如果是單獨使用的話作用就只是統計Input觸發次數而已,但當加入其他Behavior blocks形成一條數式的話就可以變得非常有用,因為在Sam Labs的Input中並沒有任何一個Input可以累計數值,這些Input一觸發就會直接將後面的編程都觸發了,因此對於想以累積觸發次數來啟動編程的Project,Counter就變得非常有用。例如在進階編程教學中,當按鍵次數超過3的時候就會開啟RGB LED,正正就是因為後面加入了Compare的指令才可以將"Button+Counter+Compare"變成一整個啟動編程的Input。
需要注意的是Counter在連接On/off Input時才會是每按一次累積一下。如果連接着如Slider一般的0-100 Input的話,每當數值有變化時它就會計算一次,例如如果你將Slider由0拉到20,Counter就會幫你累計為20次,因為數值上轉變了20次。這也是Counter連接手動的0-100 Input的一個缺點。不過如果是連接像Light Sensor一般的0-100 Input,而希望紀錄數值轉變次數的話,這個功能可非常有用。