Filter 過濾器

Filter的作用是作為Behavior將Input的數值與預設一組數值進行對比及過濾,只有Input的數值在這一組數值之中才可以觸發後續編程。Filter需要用家預先輸入最低值及最高值,然後便可與Input的數值進行對比,如果數值是等於或大於最低值,同時等於或少於最高值是便可觸發後續編程。以數式而言,假設最低值為30,最高值為70,只要Input的數值是(30 ≥ x ≤ 70)便可。

影片分享

所需用料 :

Slider x1

RGB LED x1

Filter是無需連接的Behavior Block。可以在Sam Space中的Behavior欄目的Numbers類別中找到。

編程教學

1. 連接RGB LED和Slider到Sam Space,把Slider拉到介面上。

2. 到Behavior欄目的Numbers類別中找出Filter,並把它拉到介面上,連接在Slider後面。

3. 打開Filter的設定,你可以看到有一條灰色的軸,上面寫着綠色的最低值和最高值。這就是Filter的預設最低值和最高值,只要Input的數值在綠色的範圍內,就會被確認為True,觸發後續編程。現在先把數值設定為40-60。

4. 回到Sam Space,把RGB LED拉出來,連到Filter後面。

5. 將Slider的手柄向右移,將Input數值拉到等於40,看看RGB LED是否亮起來。

6. 將Slider的手柄向左移,將Input數值拉到低過40,看看RGB LED是否關閉了。

7. 將Slider的手柄向右移,將Input數值拉到等於60,看看RGB LED是否亮起來。

8. 將Slider的手柄向右移,將Input數值拉到高過60,看看RGB LED是否關閉了。

9. 將Slider的手柄向左移,將Input數值在40-60之間隨意移動,看看RGB LED是否亮起來。

Filter小知識

Filter是個會可以將Input的數值與一個預設數值作比較並過濾的Behavior,當接收到訊號時就會直接將數值與預設數值進行比較,看看是否達到預設的條件。Filter與Compare非常相似,只是Compare只能對比一個預設數值,而Filter可以對比兩個數值的。例如在數式上Compare是對比單一數值,就像 (X<70),而Filter則可以做到 (30 ≥ x ≤ 70)這樣的對比。在Compare的對比上,大家只可以看看Input數值是否低於70,所以即使是25也包含在內。但如果想要Input數值在30-70之間才可通過的話,Compare就做不到,反而Filter就可以將數值對比最低值及最高值的range。

Filter的泛用性很高,因為它將Compare不能做到的功能都做到,到這裏可能你會不解為什麼我們還需要用Compare。其實Filter也有它做不到的弱點,例如Compare可以做到 (x≠ 50)或 (x=50)這樣的數式比較,但Filter則做不到,因為Filter需要有最低值及最高值來比較,而兩者並不能是同一個數值,因此最少的range也需要做到例如 (49 ≥ x ≤ 50)這樣,而這個數值上,49和50都是可以通過的數值,因此Filter做不到=或≠以及>或<的對比。

另外有一點非常重要,由於Filter會將與設定數值不符的數值過濾走,因此如果想以Filter作為分類Input,並在後編程程上設定超過Filter數值的Output是不可行的。例如Filter的數值是30-70,如果在後續編程上想將RGB LED設定成100 Brightness的設是不可行的。在這個情況下RGB LED的最高Brightness只可以是70。

大家可以多嘗試,熟習Filter的用法。