「燈光」,是人類生活重要的一部份,不僅幫我們照亮了黑夜,也替生活增添不一樣的變化。在BOSON套件裡,除了LED模組可以發光之外,另一個可以發光的「彩色LED燈條模組」,就是我們今天的主角喔,一起來玩玩看吧!
作者/攝影 |
撰寫:郭皇甫攝影:郭皇甫 |
文章分類 | 教學技術文 |
時間 | 30mins |
成本 | |
難度 | *(1~10) |
材料表 |
在先前的文章中,有介紹到「彩色LED燈條模組」應用在「皇冠」的作品上,那麼,若是使用Micro:bit的話,我們要如何進一步控制它呢?當然,BOSON是無法直接與Micro:bit連接,在這裡,必須要透過一塊Micro:bit BOSON擴充板,二者才能互相溝通。請先將Micro:bit以圖1的方向,往下嵌入至擴充板,並將「彩色LED燈條模組」用連接線接上擴充板的P1引腳。至此,硬體的連接就算完成囉!
圖1 硬體連接
接下來,讓我們先寫一個簡單的閃爍(Blink)程式吧!程式的概念很簡易:「讓燈條每隔一秒鐘亮滅」,瞭解後請跟著以下步驟進行編寫:
Step1:設定引腳初始狀態。在擴充板上有著各式引腳,瞭解這些引腳的狀態,您就能進一步控制連接的感測器。由於我們僅要燈條呈現「亮、滅」的狀態(也就是開跟關),所以在這裡,我們需要「數位信號」方塊。請在【進階】→【引腳】裡,找到「數位信號寫入」的方塊,將「引腳」設定為P1;「數字」設定為0(0代表關;1代表開),並放在「當啟動時」的方塊內。那麼,在程式一開始執行時,燈條會是關閉的狀態。
圖2 設定P1引腳初始狀態
Step2:間隔一秒亮滅。接下來,我們要重複執行每隔一秒鐘讓P1引腳開、關的動作,因此,程式的順序會變成暫停一秒、P1開、暫停一秒、P1關。在這裡,我們會需要暫停方塊。請在【基本】裡,找到「暫停(ms)」方塊,ms在這裡指的是毫秒,並將數字改為1000(1000ms = 1秒鐘),放在「重複無限次」的方塊內,接著再放入「數位信號寫入」方塊;再放一個「暫停(ms)」方塊、「數位信號寫入」方塊,設定如圖3所示。
圖3 重複執行燈條閃爍
完整程式碼如下:
Blink程式碼
圖4 Blink程式碼
請將程式碼下載到Micro:bit板子上執行,觀察燈條是不是順利閃爍了呢?
接下來我們要使用BOSON的「紅色無段按鈕」,控制燈條閃爍。請將「紅色無段按鈕」接在擴充板的P0引腳,如圖5所示。再來我們要準備編寫程式,您可以先使用圖6的程式碼,觀察BOSON的按鈕模組,在按下與放開時的數值變化會是「0、1」。利用這二個數值,我們就可以進一步控制燈條閃爍。
圖5 P0接上紅色無段按鈕
圖6 顯示P0引腳數值
程式的概念為,按住按鈕模組、燈條閃爍、放開按鈕模組、燈條關閉,請按以下步驟進行程式編寫:
Step1:初始狀態設定。請開啟上一個範例程式「Blink」,並從【引腳】裡,找到「數位信號寫入」方塊,「引腳」設定為P0、「數字」設定為0,放入「當啟動時」方塊內。
圖7 設定P0引腳初始狀態
Step2:設定重複執行條件。在這裡,我們要讓程式偵測到P0數值為「1」時,燈條閃爍;P0數值為「0」時,燈條關閉。請在【邏輯】裡,分別找到「如果…那麼…否則」與「=」 方塊,並放進「重複無限次」方塊內,將「=」方塊接在「如果」的後方(如圖8所示)。接著在【引腳】裡找到「數位信號讀取」方塊,放入「=」的前方空格內,並將後方空格的「0」改為「1」(如圖9所示)。最後,我們將之前寫的燈條閃爍放進「那麼」裡,接著在「否則」裡放入「數位信號寫入」,並將「引腳」改為「P1」、「數字」改為「0」(如圖10所示)。您也可以自行設定「暫停」的秒數,效果會很不一樣喔!
圖8 如果符合「=」條件
圖9 設定條件P0 = 1
圖10 設定否則執行程式
Button_Blink完整程式碼
圖11 Button_Blink程式碼
以上為基本的燈條閃爍控制,您也可以在閃爍的地方,加入執行次數的限制,這樣一來,您就不用一直按住按鈕,只需按一下,就能看到閃爍的效果。今天介紹到這邊,請期待下次還有其它好玩的BOSON與Micro:bit應用喔!下次見!