22 App inventor2+Micro:bit
(2017/12/20)
有朋友說:學生需要利用bit內的加速器偵測到物體移動後,將訊號傳致手機上!這讓我想到用App Inventor2寫手機APP應該可以做到,也藉此機會來學習App Inventor2的程式寫作~~
以下有一系列參考資料可參考
http://www.astar-tek.com.tw/micro%3Abit-appinventor-%E8%AA%B2%E7%A8%8B%E7%B3%BB%E5%88%97/
https://davistseng.blogspot.tw/2017/09/mit-app-inventor-app-ble-microbit.html
一、基本的藍芽連接設定
參考文章:http://www.astar-tek.com.tw/news/app-inventor-iot-basic-bluetooth-connection-setup/
進入 app inventor2 (http://ai2.appinventor.mit.edu)
建立一個新專案,命名為BasicIoTSetup
拉出一個【水平排列】的框
並在其中添加4個按鈕。重命名按鈕:ButtonScan,ButtonStopScan,ButtonConnect和ButtonDisconnect。
在【水平排列】下方添加一個標籤。 重命名LabelStatus並將其文本更改為 Status:
將ListView拉到Status:下方,並將其重命名為ListBLE
接下來,我們要安裝BluetoothLE擴展,點選import extension
將【藍牙擴展】拖放到Screen1上,因為它是不可見的組件,所以它會顯示在Screen1的下方
接下來,點選Blocks開始寫程式了
當ButtonScan.Click
當 ButtonStopScan.Click
當 ButtonConnect.Click
當 ButtonDisconnect.Click
按Scan後,要列出可用的藍牙設備
與藍牙設備連接後
當藍牙設備斷線後
大功告成,點選Build/App(provide QR code for .apk),並利用手機掃描QR code 來下載檔案到手機
利用手機來測試,執行BasicIoTSetup
二、利用手機讀取 Microbit 的 Temperature
使用App Inventor 寫程式來讀取micro:bit控制器上的溫度傳感器,藍牙程式同上
接下來加入讀取micro:bit 溫度的擴展功能 http://iot.appinventor.mit.edu/assets/com.bbc.microbit.profile.aix
產生很多micro:bit相關的東西,這次只讀取溫度,所以選擇Microbit_Temperature
在Microbit_Temperature1的“屬性”選項卡中,將BluetoothDevice設置為“BluetoothLE1”
再拉一個Label到LabelStatus和ListBLE之間,重新命名為LabelData,其text改為Data:
好,開始來將與溫度有關的程式寫進去,點選Blocks開始寫程式了
當藍牙連接成功後,把溫度值也叫過來
接下來,我們要增加一個變數來儲存從傳感器接收到的數據(溫度),起始值為“0”。
當我們得到新數據時,讓我們製作一個新的副程式來顯示LabelData中的當前讀數。
當取得micro:bit 的溫度時
也可以不用這兩個,直接下面程式即可
程式完成,再將檔案下載到手機來測試
完成!
三、利用手機來控制 Microbit 的 LED顯示器
參考資料:http://www.astar-tek.com.tw/news/appinventor-iot-microbit-led/
使用App Inventor 寫程式來控制micro:bit上LED顯示器上的內容,藍牙程式同上
接下來加入讀取micro:bit LED的擴展功能 http://iot.appinventor.mit.edu/assets/com.bbc.microbit.profile.aix(同上,如果做過就不用再做一次)
產生很多micro:bit相關的東西,這次要控制LED,所以選擇Microbit_LED
在Microbit_Led1的“屬性”選項卡中,將BluetoothDevice設置為“BluetoothLE1”
接下來加入一個TextBox及兩個按鈕,第一個按鈕改名為WriteLEDButton並將其Text屬性更改為write to LED;第二個按鈕改名為SmileyButton,並將其Text屬性更改為Draw Smiley。
開始來將與LED有關的程式寫進去,點選Blocks開始寫程式了
當 WriteLEDButton.Click
建一個畫笑臉的副程式
當 SmileyButton.Click
程式完成,再將檔案下載到手機來測試
測試完成,但畫笑臉好像有問題!
四、偵測到物體移動後,將訊號傳到手機上
以上為學習課程,照著別人的講義來做,接下來偵測到物體移動(micro:bit)後,將訊號傳到手機
這部分因不知如何呈現,所以學前面讀取溫度的方式來取得Accelerometer上X、Y、Z的值
使用App Inventor 寫程式來讀取micro:bit上Accelerometer上X、Y、Z的內容,藍牙程式同上
接下來加入讀取micro:bit Accelerometer的擴展功能 http://iot.appinventor.mit.edu/assets/com.bbc.microbit.profile.aix(同上,如果做過就不用再做一次)
Accelerometer
作法同上,再增加三個Label來呈現X、Y、Z的值
程式的部分:
當藍牙連接成功後,把Accelerometer值也叫出來
增加X、Y、Z三個變數
顯示X、Y、Z的值
這樣就可以在手機顯示X、Y、Z的值了,再看後續要做何運用,再做處理!