上一篇文章中我成功地透過手機傳送文字給ePy-Lite,傳送的資料型態有二進制與文字兩種。今天我繼續研究傳送資料的部分,並試著在積木上完成。畢竟未來我的教學對象有可能是國中小的學員,用積木會比較好切入教學!
那就開始吧
一開始我直接開啟線上實驗室進行編譯,但一直出現錯誤,請教吳奇峯老師後才了解一些要注意的地方。
首先我們開啟實驗室的網址要改為https://www.easy-py.net/test/,因為藍芽有些部分還需要更新,所以先以test版本來製作編譯。
https://www.easy-py.net/test/這個版本多了很多模組,這是浤鉅科技還在測試的模組積木,當測試完成之後就會更新到正式版本https://www.easy-py.net/
點選左手邊積木列中的應用,從藍芽通訊中拉出設置藍芽序列與Mode,使用預設就好了,接著我開啟一顆RGB LED顯示燈板,算是確定燈板的狀態,接著使用一個while迴圈,每隔0.5秒接收一次訊息。
設定一個變數,我稱作BLE_message,這個BLE_message變數專門暫存從藍芽傳送過來的數據
從「文字」中拉出「輸出」積木,我希望在序列埠視窗看到回傳的資料內容
接著我們做三個數據的判斷,分別是A、B、D,我在判斷是中也加入print的積木,並試著改變燈板的顏色。
接著我們要將一個Libery安裝到ePy-Lite中。當你拉出這些積木時,你會從右手邊轉譯的code中發現第二行import RL62M,這是專為ePy-Lite設計的BLE 5.0韌體,所以我們要先在ePy-Lite中載入這個libery,下載的位置在這裡。如何安裝到ePy-Lite我先不再這裡說明,我會另開文章講解。
安裝之後就可以進行程式碼燒錄的動作。
這邊有個小問題,就是如果出現無法使用UART的話(如下圖),就按一下ePy-Lite中間的重製紐,再上傳燒錄一次就可以了。
我們回到app inventor,我這邊稍微修改app的編程,我把aia檔案與Pycode放在這裡,請自行下載BLE_sendTo_ePyLiteV2.aia,並在app inventor中開啟,你會看到以下的畫面
這邊我稍微解釋一下,首先是中間的部分,我多做了防呆機制,如果BLE還沒連線,即便你已經按下連線的按鈕,ePy-Lite上亮起藍芽連線的藍色指示燈,但它不一定已經連上了,所以為了避免出現不必要的錯誤(有些人就會很急的去點傳送文字的按鈕)視窗,我做了讓藍芽確實連接後再啟動按鈕的機制,並透過改變UI來提醒使用者,同樣地當斷線的時候也是。
再者,我特別在傳送的value內容後面加入\n,也就是換行,這是根據RL26M的規範所需要。
了解編碼之後請點選app inventor上的打包apk,選擇Android App,它就會開始轉換成apk檔案,如我之前所說,我不知為何我的電腦無法使用安卓的模擬器,所以如果要測試都需要打包程apk檔案。
打包好了之後有兩個選項,一個是下載,另一個是掃描QR code,我都是選擇掃描QR code,因為比較快。
安裝好app之後,點選連線,等待按鈕轉紅就可以執行,當你點選傳送文字按鈕之後,積木介面也會print出你所傳送的訊息,LED燈板也會亮燈了!
單獨顯示的A、B、D是回傳的訊息,「我有收到A的訊息」則是進入判斷式後print出的訊息,這表示他確實有進入判斷,確實有執行改變LED顏色的積木,範例影片在這裡。
完成積木的程式碼後,我終於可以邁向下一步,我要將天氣的資訊透過藍芽傳輸的方式餵給ePy-Lite!
再透過判斷式顯示出不同的圖案。
感覺快要成功了
這邊特別感謝汯鉅科技的吳奇峯老師,整個早上在幫我debug。其實看似簡單的程式碼,我們來來回回測試了很多次,除非成功,不然我是不會離開電腦桌前的決心來完成這個小專案