{{ 'fb_in_app_browser_popup.desc' | translate }} {{ 'fb_in_app_browser_popup.copy_link' | translate }}
{{ 'in_app_browser_popup.desc' | translate }}
{{word('consent_desc')}} {{word('read_more')}}
{{setting.description}}
{{ childProduct.title_translations | translateModel }}
{{ getChildVariationShorthand(childProduct.child_variation) }}
{{ getSelectedItemDetail(selectedChildProduct, item).childProductName }} x {{ selectedChildProduct.quantity || 1 }}
{{ getSelectedItemDetail(selectedChildProduct, item).childVariationName }}
課程大綱
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,數值
完整程式設計如圖,趕快匯出試玩看看吧!