作者/攝影 | 曾吉弘 |
時間 | 3小時 |
成本 | |
難度 | * * * * |
材料表 |
|
本文要介紹如何透過BBC Micro:bit開發板上的按鈕來控制App Inventor畫面上的小球左右移動,碰到畫面邊緣還會在Micro:bit LED matrix 上顯示對應的字樣。
藍牙配對
Micro:bit端設定:
- 同時按住Microbit 正面A、B按鍵,不要放掉
- 按住A、B鍵時,把背面的Reset 鍵按下後再放開。
- 這時應該可以看到 “PAIRING MODE!” 以跑馬燈方式出現在Microbit LED 螢幕上,若看到這訊息,便可以放開A、B鍵。
- PAIRING MODE! 結束後,會看到一個圖形出現在Microbit LED 螢幕上,不同的Microbit 出現的圖案也不同,這是Microbit 不同裝置獨特的”簽名” (Signature) 。
- 這時候的Microbit 已經準備好跟其他裝置配對,請看以下影片教學
Android手機端設定:
- 進入Android手機的設定–>藍牙
- 確認Micro:bit 已進入配對模式
- 當Micro:bit上的‘PAIRING MODE!’ 顯示完,搜尋(每隻Android手機這個選項的文字不一定相同,但意思差不多),應該會看到類似 micro:bit [XXXXX]的選項,其中XXXXX 會根據每片micro:bit而不同。點選該裝置來配對。
4.micro:bit 會出現向左的箭頭,然後Android裝置上會跳出畫面要求輸入配對PIN碼的視窗。
5.按住Micro:bit 的按鍵A ,這時microbit 會連續出現六個數字,這就是配對碼。
6.回到Android裝置上,輸入這六個數字。如果Microbit 出現[V],代表配對成功。如果是[X]代表沒成功,請再試一次
編寫程式
匯入BLE 與 micro:bit extension
請登入MIT App Inventor官方網站,建立新專案,在Designer頁面中點選Palette左下角的Extension,再點選”Import extension“與”URL:
- 貼入以下兩個 extension link:
- BLE: http://iot.appinventor.mit.edu/assets/resources/edu.mit.appinventor.ble.aix
- micro:bit: http://iot.appinventor.mit.edu/assets/com.bbc.micro:bit.profile.aix
2. 請加入 Microbit_Led與Microbit_Button這兩個Microbit元件。兩者的BluetoothDevice 屬性設為 “BluetoothLE1″。這步驟很容易忘記,別漏掉了
- 加入四個按鈕放入 horizontalArrangement元件中,分別用於掃描、停止掃描連線與斷線
- 新增Canvas畫布元件(寬高各為320像素,底色隨意),再放入一個Ball元件。完成後Designer頁面如下圖(可以不用一模一樣)
Blocks頁面
本範例的基本概念是按下Micro:bit板子上的兩個按鈕可以控制小球左右移動,碰到Canvas邊緣會在LED矩陣上顯示對應的文字。開始吧:
STEP1: BLE連線成功後啟動Clockl元件
在BluetoothLE1.Connected事件中,首先啟動Clock.Timer(timer Interval 設為100),並顯示相關訊息,最後要求Micro:bit開始更新兩個按鈕的狀態。
STEP2:按下Micro:bit左側A按鈕
在Microbit_Button1.ButtonAStateReceived事件中:
○如果按下了左側的A按鈕(Button_State_Value為true),則讓ball_X 變數值累減10。
○讓Ball1元件移動到(ball_X, 100),也就是左移10像素。
STEP3:按下Micro:bit右側B按鈕
現在看到右側的B按鈕,所做的事情幾乎一模一樣但是Ball1元件的移動方向是相反的。
在Microbit_Button1.ButtonBStateReceived事件:
○如果按下了右側的B按鈕(Button_State_Value為true),則讓ball_X 變數值累加10。
○讓Ball1元件移動到(ball_X, 100),也就是右移10像素。
STEP4 Ball reached canvas’ edge
當小球碰到Canvas畫面四邊時,我們希望在Micro:bit的LED矩陣上顯示對應的文字。
在Ball1.EdgeReached事件中,使用 if / else if 來檢查到底碰到了哪一邊,根據App Inventor的文件,1是北方,所以要透過Microbit_Led1.WriteLEDText指令來顯示’N’。其餘類推,請看下圖:
完工了!來試試看吧。請確認您的Micro:bit與Android已經配對好了。按下Microbit板子上的按鈕應該讓畫面上的小球左右移動,試試看讓小球去撞牆吧,看看有沒有顯示對應的文字。試試看用 Micro:bit LED 搭配 App Inventor 做出更多功能吧
相關文章: