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

      • 請同學設計一個【呼吸燈】作品,所謂【呼吸燈】是指燈光在微電腦的控制之下完成由暗到亮,再由亮到暗的逐漸變化,感覺好像是人在呼吸一樣。其實我們慢慢把滑桿往上移動,再慢慢把滑桿往下移動,重複幾次,就是呼吸燈的感覺了!

    • 教學影片

五、星星點燈(眼明手快)的實作

  • 程式說明

    • 程式雖然很長,但不會太難

    • 教學影片