20221201 鳳山國中

主題:micro:bit基礎藍芽應用

教材網址:http://gg.gg/20221201fs

研習日期:111.12.01 (四)上午08:30~11:30

地點:鳳山國中藝術大樓二樓

講師:黃文玉老師 (shspswenyu@gmail.com)

  • 高雄市新上國小電腦老師

  • 高雄市SCRATCH推廣教師

  • 教育部中小學教師運算思維增能研習種子教師

  • Facebook S4A社團管理員之一

  • 第一屆聯發科 2022 STEM造課師

  • 致力Scratch、Arduino、micro:bit、Web:Bit、凱比機器人... 等程式教育及創客教育的推廣

一、軟體部份

  • 擴展藍牙積木

    • 添加「藍牙」積木(在【擴展】搜尋【Bluetooth】(在【廣播積木】改為【藍牙積木】,兩者不能共存)

    • 藍牙與廣播的比較

  • 使用配對說明

    • 藍牙連線的設定,如下圖

      • 有三種,直接使用第一種【不需配對】比較方便!

        • 不需配對:使用手機APP時,仍要先要到手機藍牙配對,但在藍牙下搜尋即可發現此設備,並直接進行配對。

        • 自動配對(預設值):micro:bit開發板先進入【配對模式】(按A+B、Reset、放 Reset、放A+B),手機藍牙才可發現此設備,不用輸入密碼即可配對成功!

        • 密碼配對:開發板先進入【配對模式】(按A+B、Reset、放 Reset、放A+B),手機藍牙才可發現此設備,按A鍵後,開發板會出現6位密碼,輸入手機後才可配對成功!

      • 使用上,如果發現無法進行上面三種配對方式切換時,請關閉makecode再重新開啟程式

      • 如果一直無法搜尋到此藍牙設備時,請將開發板進入【配對模式】再進行搜尋

二、micro:bit Blue手機APP的使用


  • 先利用makecode寫一個啟動所有藍牙服務的程式(如下圖)

    • 原本有一韌體再先加入,在這邊直接把我們寫的程式上傳到micro:bit

  • 控制LED或繼電器

    • 利用IO Digital Output

      • 將LED的正極接Pin0、LED的極接GND

      • 將繼電器的OUT接Pin0、繼電器的+接3V、繼電器的接GND (繼電器要支援3V的)

  • 控制小車

    • 利用Dual D-Pad Controller

    • 如果沒有micro:bit Blue APP,Google Play下有一免費的Microbit DPAD Bluetooth Ctrl的APP可用

  • 以【麥昆小車V3】來範例

  • 註:無法使用登月小車(不支援藍牙積木)

    • 登月小車積木:在擴展中輸入 https://github.com/iCShopMgr/MoonCar

、藍牙串口服務測試

  • 實作內容說明:

    • 一開始啟用藍牙串口(UART)服務

    • micro:bit會一直讀取來自串口的資料,並判斷是否有【換行】

    • 如果讀取到的資料是1,就將屏幕的呈現【愛心】圖案 (就相當於近端開燈)

    • 如果讀取到的資料是0,就將屏幕的所有LED燈點滅掉 (就相當於近端關燈)

    • 如果讀取到的資料不是1或2,就將屏幕上顯示所輸入的資料

    • 按A按會將目前的【光線感測值】寫入到串口

    • 按B按會將目前的【方位感測值】寫入到串口 (使用方位角一開始可能要求畫圓來校正羅盤,可改用光線感測值)

    • 補充說明:串口UART(Universal Asynchronous Receiver/Transmitter,即通用異步收發器)串口通信是單片機最常用的一種通信技術,通常用於微控制器和電腦之間、微控制器和微控制器以及微控制器和無線模組之間的通信。

  • 程式如下:https://makecode.microbit.org/_E91br333ra1i

  • 如何判斷【資料接收完畢】

    • 利用是否收到一些【特殊符號】來做判斷

    • 最常見有:

      • LF(Line Feed)最後加上特殊字元 \n,表示「換行」。(建議用此)

      • CR(Carriage Return)最後加上特殊字元 \r,表示「回車」,把裝置的位置重設到一行字的頭。

四、利用手機APP透過藍牙與micro:bit互動

      • nRF Connect (除支援android,也支援ISO)

      • V7RC

        • 到Google Play安裝V7RC的APP

        • 原理如下圖

        • 連線後APP會一直送出訊息

  • 作品說明

          • 利用轉盤來控制屏幕顯示內容

            • CH1(左右移動),基準值1500

              • CH1>1700點亮右方(4,2)的燈

              • CH1<1300點亮左方(0,2)的燈

            • CH2(上下移動),基準值1500

              • CH1>1700點亮上方(2,0)的燈

              • CH1<1300點亮下方(2,4)的燈

            • CH3(上下移動),基準值1500

              • CH1>1700 關閉上方(2,0)的燈

              • CH1<1300關閉下方(2,4)的燈

            • CH4(左右移動),基準值1500

              • CH1>1700關閉右方(4,2)的燈

              • CH1<1300關閉左方(0,2)的燈

            • makecode程式如下:https://makecode.microbit.org/_D9VYTJ2FAR0o

、利用App Inventor 來寫手機的APP

  • 進入 app inventor2 (http://ai2.appinventor.mit.edu)

    • 使用google帳號登入

    • 可以轉繁體中文,但建議直接用英文版就好了

    • 建立一個新專案(Start new project),命名為microbitBLE01

  • 拉出一個【水平排列】的框

  • 並在其中添加4個按鈕。重命名按鈕:ButtonScan,ButtonStopScan,ButtonConnect和ButtonDisconnect

  • 在【水平排列】下方添加一個標籤。 重命名LabelStatus並將其文本更改為 Status:

  • 將ListView拉到Status:下方,並將其重命名為ListBLE

  • 將【藍牙擴展】拖放到Screen1上,因為它是不可見的組件,所以它會顯示在Screen1的下方

  • 接下來,點選Blocks開始寫程式了

        • 首先,點右上角的 block ,進入程式編輯畫面

        • 當ButtonScan.Click (當Scan按鍵被點擊的時候)

  • 當 ButtonStopScan.Click

  • 當 ButtonConnect.Click

  • 當 ButtonDisconnect.Click

  • 按Scan後,要列出可用的藍牙設備

  • 與藍牙設備連接後

  • 當藍牙設備斷線後


  • 基本介紹到此