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,而希望紀錄數值轉變次數的話,這個功能可非常有用。