67 凱斯KSB039之星星點燈
(2020/06/03)
小小機器人的專題製作,任務七:星星點燈 (也稱為眼明手快)
一、設備
一樣採用 KSB039的擴展板
二、遊戲玩法
按A鍵會隨機顯示一個數字
底下的燈條會依序移動亮燈(1、2、3、4、1...)
按B鍵停止亮燈移動
控制亮燈停止的位置剛好與之前顯示的數字一樣則過關
一共有三關,三關都通過則過關。過關後又會從第一關開始玩起。
按A+B鍵,遊戲重新開始
另外,把滑桿往上移動時,設計了一個終極關卡(跑燈的速度很快)
三、【WS2812B RGB LED】串燈(燈條)的介紹
認識【WS2812B RGB LED】
WS2812B晶片是一個集控制電路與發光電路於一體的智慧外控LED光源。常見含有幾十顆LED燈的燈條,就是它的應用。
擴展板上的這組WS2812B RGB LED含有4顆全彩RGB LED燈,接到Micro:bit主板的P16腳位上,其實不管有幾顆RGB LED燈,也都只會用到一個腳位,把原本很複雜的控制,變得簡單又方便。(RGB:Red(紅色)、Green(綠色)、Blue(藍色))
擴展板上的第一顆燈在最右邊,依序為第2、第3、第4顆燈(如上圖)
擴展【WS2812B RGB LED】所需的積木 : neopixel套件
由於在一般類積木及進階類積木都沒有【WS2812B RGB LED】這裝置可用的積木,所以要去額外添加這些裝置可用的積木。
添加【WS2812B RGB LED】這裝置可用的積木neopixel套件
點選進階下方的【擴展】(或點選右上方的齒輪圖示,會看到【擴展】)
直接點選下方的neopixel套件 (或在搜尋欄輸入 https://github.com/microsoft/pxt-neopixel )
完成後,就會在積木區中發現【Neopixel類】積木
點亮同一顏色的燈
作品說明:將4顆RGB LED點亮同一顏色
程式說明:
說明:
先建一個名稱為【RGB燈】的變數(名稱請自取)
第一行程式為宣告【WS2812B RGB LED】這燈組有幾顆RGB LED燈,所用的腳位為何?是一開始就要宣告的程式。
按A鍵點亮紅燈(四顆RGB LED燈一起亮)。注意,這RGB LED燈的亮度很強,不要直視,以免傷害眼睛。
按B鍵關燈
如果不要點亮全部的燈,只要亮某幾顆燈,採用下面方式來處理。
作品說明:只點亮前2顆燈
程式說明:
數字0代表第1顆燈(最右邊的那顆燈),數字2代表共要亮2顆燈
教學影片
四、滑桿的介紹
認識滑桿
又稱為可變電阻器或滑動電位器,是一種具有三個端子,其中有兩個固定接點與一個滑動接點,可經由滑動而改變滑動端與兩個固定端間電阻值的電子零件。
擴展板上的滑桿(滑動電位器)接到micro:bit主板的P2腳位上
是一個【類比輸入】裝置
類比信號為連續信號,其值介於0(相當數位信號的0 )到1023(相當數位信號的1 )之間,不像數位信號只有0、1兩種狀態。
讀取滑桿的類比值
程式
把滑桿移到最下方取得的值接近0(我的設備是3)
把滑桿移到最上方取得的值為1023
利用滑桿來控制RGB LED燈的亮度
程式
RGB LED燈的亮度最亮為255,所以要做對應的換算,把0~1023換算0~255
請同學設計一個【呼吸燈】作品,所謂【呼吸燈】是指燈光在微電腦的控制之下完成由暗到亮,再由亮到暗的逐漸變化,感覺好像是人在呼吸一樣。其實我們慢慢把滑桿往上移動,再慢慢把滑桿往下移動,重複幾次,就是呼吸燈的感覺了!
教學影片
五、星星點燈(眼明手快)的實作
程式說明
程式雖然很長,但不會太難
教學影片