目錄 購物車 {{currentCart.getItemCount()}}

oplate App 分享區

 

銀髮樂活  /  職能治療  /  運動健身  /  程式教育  /  app客製化

 

程式教育 > 基礎課程 > Lesson07 / 小黑盤的基本控制02

課程大綱

1.  震動 - 微型馬達
2.  聲音 - 蜂鳴器
3.  燈光 - LED

 

課程內容

1.  連線成功後,我們就可以發出命令給小黑盤或是從小黑盤那接收訊息了。

     我們先從發出命令開始。
     小黑盤總共有只有三個命令,對應著三個元件: LED燈、蜂鳴器、微型馬達。
     請看以下示範影片。

2.  因為接下來也需要用到連線功能,所以我們就直接沿用「Lesson06」的內容,就不用重新製作了。

     請大家打開「Lesson06」。
     到左上方「專案」 → 「另存專案」。
     新名稱為「Lesson07」,App名稱為「命令傳送」。

3.  在原有畫面中加入兩個「水平配置」,裡面各放進兩個「按鈕」,分別控制震動和聲音的開和關。
     記得元件名稱要更改,等下程式設計的時候會比較清楚。
     然後從左方「使用者介面」裡拉進「文字輸入盒」,元件名稱改成「聲音頻率」,我們從這裡輸入要發出多少頻率的聲音。其他設定如圖。

4.  接著到「程式設計」頁面。

     當點擊「震動開」按鈕時,要發出震動的「命令」給小黑盤。
     先在「當”震動開”. 被點選 執行」裡放進「呼叫”BluetoothLE1”. WriteStrings」程式方塊。

     * 「命令」有不同格式,小黑盤的命令是以 ”字串” 組成。
        這裡用的「呼叫”BluetoothLE1”. WriteStrings」就是發出 ”字串” 命令的程式方塊。

5.  「呼叫”BluetoothLE1”. WriteStrings」程式方塊前兩個要填入的資料為「serviceUuid」和「characteristicUuid」。
     每個藍芽產品都有自己獨特的「serviceUuid」和「characteristicUuid」,小黑盤這兩個值分別如下:

               serviceUuid: 6E400001-B5A3-F393-E0A9-E50E24DCCA9E
     characteristicUuid: 6E400002-B5A3-F393-E0A9-E50E24DCCA9E

     最後一個「values」就是我們的「命令」。
     圖中顯示為打開震動的「命令」: MOT,1

     「命令」的編碼格式屬於「utf16」,所以第三項要組合「真」程式方塊。

     如果要發出其他命令,像是開燈或是發出聲音,前三項的內容都一樣,只有最後的「命令」不一樣。
     接下來我們會讓大家練習所有的「命令」。

6.  打開震動的「命令」是: MOT,1
     關掉震動的「命令」是: MOT,0

     按鈕「震動開」和「震動關」的程式方塊組合如圖。
     到此可以匯出試試看。

7.  打開聲音的「命令」是: BUZ,1,頻率
     關掉聲音的「命令」是: BUZ,0

     小黑盤能發出的聲音頻率是0 - 2000。
     假如要發出頻率500的聲音,命令是: BUZ,1,500

     打開聲音的「命令」由兩部分組成, ”BUZ,1,” 和 ”頻率” 。
     在「內件方塊」的「文字」裡拉進「合併文字」,這程式方塊可以將個別的文字組成一個完整的文字。

8.   ”頻率” 來自我們在「文字輸入盒」裡輸入的數值。
     將「”聲音頻率”. 文字」拉進,將輸入的數值和 ”BUZ,1,” 組合成一個完整的命令。

9.  按鈕「聲音開」和「聲音關」的程式方塊組合如圖。
     可以再匯出試試看。

10.  接下來,LED燈光的「命令」是: LEDDEC,數值
       數值從0 - 262143。
       每個數值是六組LED各種顏色組合中的一種,0的時候是所有燈都不發光。

       * 0 - 262143的數值是怎麼來的呢?
         每組LED可以發出紅、綠、黃、藍、紫、青、白7種顏色,加上不發光算1種,總共有8種選擇。
         有六組燈,所以一共是8*8*8*8*8*8=262144種可能。
         從0算起,所以數值就是從0到262143。

11.  我們回到「畫面編排」頁面,加入「燈光開」和「燈光關」按鈕和命名為「燈光」的「文字輸入盒」。

12.  然後自行完成燈光開關的程式方塊組合吧,跟聲音開關差不多喔。

13.  燈光有262144種組合,我們要怎麼知道哪種組合的數值是多少呢?
       請先下載「L07_顏色數值」,表格內容如圖所示。

14.  最上面是燈的排序,六組燈在小黑盤上的相對位置請見下圖。

       光是由RGB(紅綠藍)三色去組合成各種顏色,我們以1和0去代表三種顏色的開和關。

15.  我們以一號燈來看。
       當G和B都是0,R是1的時候,會發出紅光
       如果G和R都是1的時候,綠光加紅光會發出黃光。
       以此類推。

16.  我們可以分別控制各組燈(共六組)。
       如果是要三號燈發紅光,三號燈的G和B就要是0,然後R是1。

       一次控制多組燈的方式也一樣。
       如果要一號燈和三號燈都發紅光,各自的G和B是0,然後R是1。

17.  最後我們會得到一串由0和1組合成的數字。
       譬如說是001001001001001001,這可看成二進位的一組數字,再*轉換成十進位的數值。
       這十進位的數值才是我們LED燈光的命令可以用的數值。

       * 網路上有很多線上進位轉換的工具,可以將二進位數值轉成十進位。

18.  小黑盤所有的「命令」如下:

       震動 開: MOT,1
       震動 關: MOT,0

       聲音 開: BUZ,1,頻率
       聲音 關: BUZ,0

       燈光控制: LEDDEC,數值

       完整程式設計如圖,趕快匯出試玩看看吧!