• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      APP Invertor編程讓Micro:bit板連接手機(jī)

      2020-07-15 06:12:41白二娃
      電腦報(bào) 2020年24期
      關(guān)鍵詞:邏輯設(shè)計(jì)列表藍(lán)牙

      白二娃

      我們已經(jīng)用Micro:bit做過(guò)不少編程試驗(yàn),也用APP Invertor編寫過(guò)手機(jī)APP。今天我們將兩者結(jié)合起來(lái),編寫一個(gè)APP,讓安卓手機(jī)和Micro:bit通過(guò)藍(lán)牙連接起來(lái)。由于實(shí)現(xiàn)兩個(gè)設(shè)備連接后進(jìn)行基礎(chǔ)交互的代碼量較多,篇幅所限我們僅實(shí)現(xiàn)兩設(shè)備通過(guò)藍(lán)牙掃描和連接。后續(xù)實(shí)現(xiàn)交互的代碼您可以在掃碼下載源代碼后自行分析學(xué)習(xí)。

      一、 器材列表

      1. 安卓手機(jī)

      2. Micro:bit板及數(shù)據(jù)線

      3. APP Inventor編程平臺(tái)app.gzjkw.net或ai2.17coding.net

      4. 擴(kuò)展下載網(wǎng)站iot.appinventor.mit.edu

      5. Micro:bit編程平臺(tái)makecode.microbit.org

      二、 下載項(xiàng)目擴(kuò)展

      為了更好兼容Micro:bit的低功耗藍(lán)牙,我們沒(méi)有使用APP Invertor自帶的藍(lán)牙連接組件,而是添加了新的藍(lán)牙擴(kuò)展。

      打開APP Invertor的支持網(wǎng)站(iot.appinventor.mit.edu)。在左邊Internet of Things菜單中可以找到BluetoothLE和BBC Micro:bit頁(yè)面。

      1. BluetoothLE是APP Invertor專用的低功耗藍(lán)牙擴(kuò)展。在BluetoothLE頁(yè)面中點(diǎn)擊“Download the BluetoothLE extension ”把.aix擴(kuò)展文件下載到本地備用,也可以復(fù)制aix文件的網(wǎng)絡(luò)地址(http://iot.appinventor.mit.edu/assets/resourc

      es/edu.mit.appinventor.ble-201907

      01.aix)在導(dǎo)入項(xiàng)目擴(kuò)展時(shí)填入。

      安裝該擴(kuò)展后可以讓APP Invertor編寫的程序通過(guò)手機(jī)藍(lán)牙搜索和連接低功耗藍(lán)牙設(shè)備,并進(jìn)行通信。

      2. 在BBC Micro:bit頁(yè)面中,點(diǎn)擊“Download the BBC Micro:bit extension”可以下載到Micro:bit的專用擴(kuò)展。或在導(dǎo)入擴(kuò)展時(shí)直接填寫下載網(wǎng)址(http://iot.appinventor.mit.edu/assets/resources/SimpleMicrobit.aix)。APP Invertor安裝該擴(kuò)展后可以在手機(jī)連接后與Micro:bit板上的按鈕、引腳、LED等設(shè)備交互。

      本例中我們僅需要實(shí)現(xiàn)兩個(gè)設(shè)備的藍(lán)牙連接,無(wú)需用手機(jī)與Micro:bit板做更多交互,因此只有需要測(cè)試有交互功能的源代碼MicrobitLED.aia時(shí)才需要安裝。

      三、 組件設(shè)計(jì)

      我們需要APP有搜索、連接、斷開等按鈕,有顯示周圍藍(lán)牙設(shè)備的列表,有顯示當(dāng)前狀態(tài)的文字。選擇搜索到的Micro:bit設(shè)備后點(diǎn)連接可以通過(guò)藍(lán)牙實(shí)現(xiàn)連接,點(diǎn)斷開可以斷開藍(lán)牙(如圖1)。

      1. 登錄app.gzjkw.net,新建項(xiàng)目lanya,在APP Invertor組件面板的最后一項(xiàng)Extension——擴(kuò)展中導(dǎo)入下載的項(xiàng)目擴(kuò)展文件edu.mit.appinventor.ble-20190701.aix,也可直接填入網(wǎng)址安裝擴(kuò)展包。

      2. 將BluetoothLE拖入工作面板。

      3. 界面布局→水平布局,水平對(duì)齊→居中,寬度→充滿;從用戶界面拖入3個(gè)按鈕,組件列表中改名為“掃描、連接、斷開”,并修改按鈕文本為相應(yīng)名稱。

      4. 用戶界面→標(biāo)簽,修改標(biāo)簽名和標(biāo)簽文本為“狀態(tài)”,用于顯示當(dāng)前藍(lán)牙狀態(tài)。

      5. 用戶界面→列表顯示框,改名為“藍(lán)牙列表”,用于顯示和選擇搜索到的藍(lán)牙設(shè)備列表。

      四、 掃描按鈕邏輯設(shè)計(jì)

      我們希望APP可以掃描可用的藍(lán)牙設(shè)備。當(dāng)點(diǎn)擊掃描按鈕,調(diào)用藍(lán)牙組件開始掃描,并更改狀態(tài)標(biāo)簽,顯示列表。

      1. 切換至邏輯設(shè)計(jì)界面。

      2. 組合模塊。掃描按鈕→當(dāng)掃描被點(diǎn)擊執(zhí)行。

      3. BluetoothLE1→調(diào)用BluetoothLE1.StartScanning。組合積木:狀態(tài)→設(shè)置狀態(tài).文本為和文本→文本中填入“狀態(tài):掃描”。

      4. 組合積木:藍(lán)牙列表→設(shè)置藍(lán)牙列表.可見(jiàn)性為和邏輯→真。設(shè)計(jì)這個(gè)可見(jiàn)性邏輯判斷是為了連接成功后可以隱藏列表,因?yàn)槿绻浇泻芏嗨{(lán)牙設(shè)備,列表會(huì)很長(zhǎng)(如圖2)。

      五、 藍(lán)牙列表邏輯設(shè)計(jì)

      我們需要在列表中列出周圍所有可用的藍(lán)牙設(shè)備。

      1. 組合模塊。BluetoothLE1→BluetoothLE1.DeviceFound,當(dāng)掃描到可用藍(lán)牙設(shè)備時(shí)。

      2. 組合積木:藍(lán)牙列表→設(shè)置藍(lán)牙列表.元素字串為和BluetoothLE1→BluetoothLE1.DeviceList(如圖3)。

      六、 連接按鈕邏輯設(shè)計(jì)

      我們希望實(shí)現(xiàn)在列表中選中設(shè)備名稱后,點(diǎn)擊“連接”按鈕后通過(guò)藍(lán)牙連接Micro:bit。

      1. 組合模塊。連接按鈕→當(dāng)“連接”被點(diǎn)擊。

      2. 調(diào)用BluetoothLE1→Bluetoo

      thLE1.StopScanning,停止掃描設(shè)備。

      3. 組合積木:調(diào)用BluetoothLE1

      →BluetoothLE1.連接,藍(lán)牙列表→選中項(xiàng)索引。通過(guò)藍(lán)牙連接選中的設(shè)備。

      4. 設(shè)置狀態(tài).文本為“狀態(tài):連接中”。在手機(jī)中標(biāo)明當(dāng)前連接狀態(tài)(如圖4)。

      七、 表示成功連接

      當(dāng)成功連接設(shè)備時(shí),我們希望通過(guò)狀態(tài)文本獲知連接已經(jīng)成功,并關(guān)閉藍(lán)牙設(shè)備列表。

      1. 組合模塊。BluetoothLE1→當(dāng)BluetoothLE1.Connected。

      2. 設(shè)置狀態(tài).文本為“狀態(tài):已連接”。

      3. 設(shè)置藍(lán)牙列表可見(jiàn)性為“假”,關(guān)閉藍(lán)牙設(shè)備列表(如圖5)。

      八、 斷開按鈕邏輯設(shè)計(jì)

      點(diǎn)擊斷開按鈕后,我們希望手機(jī)斷開設(shè)備連接,并通過(guò)顯示當(dāng)前狀態(tài)確認(rèn)斷開按鈕有效。

      1. 組合模塊。斷開按鈕→當(dāng)“斷開”被點(diǎn)擊。

      2. BluetoothLE1→調(diào)用Bluetoot

      hLE1.斷開連接。

      3. 組合模塊。BluetoothLE1→BluetoothLE1.Disconnected。

      4. 設(shè)置狀態(tài)文本為“狀態(tài):已斷開”(如圖6)。

      九、 出錯(cuò)時(shí)邏輯設(shè)計(jì)

      程序運(yùn)行中可能會(huì)遇到各種錯(cuò)誤,如果程序沒(méi)有閃退的情況下我們希望能知道報(bào)錯(cuò)信息。

      1. 組合模塊。Screen1→當(dāng)“Screen1”出現(xiàn)錯(cuò)誤。

      2. 設(shè)置狀態(tài)文本為和文本→合并字符串,連接文本“錯(cuò)誤:”和出現(xiàn)錯(cuò)誤模塊本身的“消息”→“取消息”(如圖7)。

      十、 給Micro:bit編程

      手機(jī)中的程序還需要Micro:bit中的程序配合。當(dāng)藍(lán)牙連接和斷開時(shí)在LED屏幕上顯示圖像作為連接成功的標(biāo)示。

      1. 在https://makecode.microbit.org/中編寫程序。新建項(xiàng)目。

      2. 設(shè)置Micro:bit藍(lán)牙連接方式為免配對(duì)連接,這樣任何設(shè)備都可以連接Micro:bit板且無(wú)需輸入密碼,這樣可以節(jié)約調(diào)試時(shí)間,而且APP中我們也沒(méi)有寫配對(duì)相關(guān)的語(yǔ)句。

      點(diǎn)擊右上角齒輪圖標(biāo)→項(xiàng)目設(shè)定→打開No Pairing Required: Anyone can connect via Bluetooth選項(xiàng)。

      3. 添加藍(lán)牙擴(kuò)展。

      4. 編程當(dāng)藍(lán)牙連接時(shí)和斷開時(shí)顯示不同圖標(biāo)(如圖8)。

      十一、 連接調(diào)試

      現(xiàn)在,在APP Invertor中將程序打包APK,手機(jī)掃二維碼下載安裝,給APP啟動(dòng)藍(lán)牙授權(quán)。將Micro:bit程序刷入Micro:bit板中。

      手機(jī)打開APP,點(diǎn)擊掃描,看藍(lán)牙列表是否正常。在藍(lán)牙列表中選擇Micro:bit,點(diǎn)擊連接按鈕。開始Micro:bit與手機(jī)藍(lán)牙連接。通過(guò)手機(jī)上狀態(tài)顯示和Micro:bit的LED顯示圖標(biāo)判斷連接是否成功。

      根據(jù)我的試驗(yàn),程序可能出現(xiàn)連接易斷開或在部分手機(jī)上出現(xiàn)閃退等問(wèn)題。這可能是因?yàn)镸icro:bit本身運(yùn)算處理能力不足造成藍(lán)牙斷開,或是APP Invertor擴(kuò)展對(duì)一些型號(hào)的手機(jī)兼容性不好導(dǎo)致閃退。你可以更換其他品牌手機(jī),或者根據(jù)iot.appinventor.mit.edu對(duì)擴(kuò)展包的詳細(xì)說(shuō)明來(lái)優(yōu)化程序。

      如果經(jīng)過(guò)努力連接成功后你還有興趣,可以繼續(xù)添加拓展功能,比如點(diǎn)擊按鈕發(fā)送文本或預(yù)設(shè)的圖標(biāo)到設(shè)備中顯示等。

      掃描本版二維碼后你可以下載到實(shí)現(xiàn)基礎(chǔ)連接的源代碼lanya.aia和有交互的源代碼MicrobitLED.aia。

      猜你喜歡
      邏輯設(shè)計(jì)列表藍(lán)牙
      巧用列表來(lái)推理
      藍(lán)牙音箱的直線之美
      學(xué)習(xí)運(yùn)用列表法
      擴(kuò)列吧
      簡(jiǎn)單、易用,可玩性強(qiáng)Q AcousticsBT3藍(lán)牙音箱
      火電機(jī)組公用電泵系統(tǒng)介紹及邏輯設(shè)計(jì)
      電子制作(2018年12期)2018-08-01 00:47:44
      適合自己的才是最好的 德生(TECSUN) BT-50藍(lán)牙耳機(jī)放大器
      提高火力發(fā)電廠熱工保護(hù)可靠性方案與策略探討
      緊急:藍(lán)牙指尖陀螺自燃!安全隱患頻出
      玩具世界(2017年8期)2017-02-06 03:01:38
      排課系統(tǒng)中數(shù)據(jù)庫(kù)表的設(shè)計(jì)
      科技資訊(2015年15期)2015-06-29 17:31:46
      武鸣县| 九台市| 慈利县| 马龙县| 郁南县| 舟山市| 讷河市| 虞城县| 清镇市| 左贡县| 临洮县| 象州县| 永福县| 昭平县| 汉川市| 莱芜市| 淅川县| 滨海县| 友谊县| 玛纳斯县| 黄大仙区| 楚雄市| 崇左市| 巴林左旗| 祁连县| 长寿区| 蚌埠市| 车致| 潮州市| 北安市| 绥芬河市| 井陉县| 和平县| 行唐县| 方正县| 晋中市| 临沭县| 滦平县| 景德镇市| 鄂伦春自治旗| 正安县|