2019年4月28日 星期日

App inventor2+Micro:bit

(2017/12/20)

有朋友說:學生需要利用bit內的加速器偵測到物體移動後,將訊號傳致手機上!這讓我想到用App Inventor2寫手機APP應該可以做到,也藉此機會來學習App Inventor2的程式寫作~~
以下有一系列參考資料可參考
一、基本的藍芽連接設定
  • 參考文章: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
  • BluetoothLE extension 的連結網址 http://iot.appinventor.mit.edu/assets/edu.mit.appinventor.ble.aix
  • 將【藍牙擴展】拖放到Screen1上,因為它是不可見的組件,所以它會顯示在Screen1的下方
  • 接下來,點選Blocks開始寫程式了
  • 當ButtonScan.Click
  • 當 ButtonStopScan.Click
  • 當 ButtonConnect.Click
  • 當 ButtonDisconnect.Click
  • 按Scan後,要列出可用的藍牙設備
  • 與藍牙設備連接後
  • 當藍牙設備斷線後
  • 大功告成,點選Build/App(provide QR code for .apk),並利用手機掃描QR code 來下載檔案到手機
  • 利用手機來測試,執行BasicIoTSetup




二、利用手機讀取 Microbit 的 Temperature
  • 參考資料:http://www.astar-tek.com.tw/news/%E7%94%A8appinvnetor-%E5%AF%AB%E7%89%A9%E8%81%AF%E7%B6%B2%E7%9A%84%E7%AC%AC%E4%B8%80%E5%80%8B-app-%E5%BE%9E-microbit-%E8%AE%80-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的值了,再看後續要做何運用,再做處理!
五、其他

沒有留言:

張貼留言