Robo Input Block overview
我們之前詳細地講解了Output的部份,然而我們先前的示範都是非常簡單地控制output,例如只是按個按鈕,並不「智能」。
我們先前說過,編程就是使用Input控制output的過程。因此,我們這裡會詳細地講解如何使用Input Block收集數據,並用這些數據來控制output。
如果你沒有插上任何方塊的話,「Sensing」是不會出現的,只有你插上相應的方塊才會出現這些Block。如果你不知道什麼是Input方塊,你可以很簡單地分辨:它們全部都是紅色的。
我們可以清楚地看到這些紅色blocks分為兩大種類,六角形和圓形。
六角形的部份不多解釋了,上面的例子大家應該可以輕易做出。詳情請參考If...then Block 如果
至於圓形的部份,其實我們要做的是「把圓形塞入六角形之中」,那麼怎樣做呢?
我們之前一路沒有介紹Operator,因為如果只有單獨的個體,它本身是沒有意義的。
我們可以在Operator中找到讓我們塞入圓形blocks的六角blocks,這些六角blocks除了塞入另一個block之外,也可以輸入數字(見上圖)。
它的功能就是把block串聯起來,最明顯的例子可以看上圖的「>」、「=」和「<」。它們可以為Input方塊收集到的讀數加入邏輯關係。例如光強度大於20的話就...、聲音強度小於50的話就...等等。
例子:
做一個以光強度(input)控制聲音(output)的編程吧
這是和上面的按鈕接近一樣的編程,只是我們把剛剛做好的Options block取代了按鈕的block。
我們這裡用了光感應器,當光強度大於50時,便自動播放車的聲音;當小於50便靜止下來。
你可以用手機的電筒照射light sensor試試看,就可以知道實際運作。
這裡相信編程上大家也沒有什麼疑問,但大家疑惑的是,我怎樣知道讀數是多少呢?我要如何設定這個數字呢?
相信大家都應該不曾留意右上方有一個類似閃電的符號,其實這裡是讓大家test input的。
如圖片一樣,只要你把input blocks拉進去,它就會顯示即時的讀數是多少。
例如圖中的distance sensor 是以 cm 為單位 , 你把物件放到 senosr 的前方就能偵測出兩者之間的距離。
這裡的blocks和你的編程是沒有衝突的,只是顯示數字供你參考,並不會影響到編程的運作。