![App Inventor创意趣味编程进阶](https://wfqqreader-1252317822.image.myqcloud.com/cover/643/31486643/b_31486643.jpg)
蓝牙连接
关于Micro:bit的一些基础知识已经介绍完毕,接下来正式开始介绍视力检测App项目。首先,我们要解决的第一个问题是Micro:bit与App Inventor的蓝牙连接问题。
我们知道Micro:bit是自带蓝牙编程包的,但是这个软件包与App Inventor不易进行交互,适配工作量大,庆幸的是创客界的大神已开发完成Micro:bit与App Inventor蓝牙连接的软件包,我们只需在Micro:bit端和App Inventor端分别导入这两个软件包即可。
(一)Micro:bit端
步骤1:新建一个项目。
步骤2:导入蓝牙软件包。
单击“设置”按钮,选择“添加包…”,界面如图1-7所示。
![](https://epubservercos.yuewen.com/2835BE/17042066704482606/epubprivate/OEBPS/Images/38545_14_1.jpg?sign=1739281697-5l3Uw7JYlKHEar89juB9kKfFH9vx6l5u-0-9d9450e476c7781460a1cebdb7280c5c)
图1-7 “添加包…”界面
输入蓝牙软件包下载网址,开始搜索,如图1-8与图1-9所示。
![](https://epubservercos.yuewen.com/2835BE/17042066704482606/epubprivate/OEBPS/Images/38545_14_2.jpg?sign=1739281697-9S1BcXLTxMyMttdSAVePCGuXgrgavqi1-0-3da48816a54f9100df2136a25fb980e5)
图1-8 输入蓝牙软件包下载网址
![](https://epubservercos.yuewen.com/2835BE/17042066704482606/epubprivate/OEBPS/Images/38545_14_3.jpg?sign=1739281697-MhkZHcB9jB5OcBVKrqoe0Ttib6ejHGeY-0-cf03e59320c52ac3edf288e601f1853c)
图1-9 搜索到蓝牙软件包
网址为:
https://github.com/LaboratoryForPlayfulComputation/pxt-blockytalkyBLE
选中此软件包后,会跳出一个删除软件包的界面,这是因为无线和蓝牙不兼容,只能选其一。删除无线软件包,就能成功导入蓝牙软件包,如图1-10所示,可以看到编程积木块选区已出现蓝牙,如图1-11所示。
![](https://epubservercos.yuewen.com/2835BE/17042066704482606/epubprivate/OEBPS/Images/38545_15_1.jpg?sign=1739281697-V5JF6ZKL9jKNavNLYTXFYSDLwQ1G4GKm-0-80811de53ed5598d9ad54c6df4d8c46b)
图1-10 删除无线软件包并添加蓝牙软件包
![](https://epubservercos.yuewen.com/2835BE/17042066704482606/epubprivate/OEBPS/Images/38545_15_2.jpg?sign=1739281697-0gq1aCMTgET1TmJKDLJhlcQ4lMANKZpQ-0-1e89471ddc83787a6c1daff5fcb114c1)
图1-11 编程积木块选区
蓝牙软件包中所包含的编程积木块截图如图1-12所示。
![](https://epubservercos.yuewen.com/2835BE/17042066704482606/epubprivate/OEBPS/Images/38545_15_3.jpg?sign=1739281697-n14ncMjeK5sz5qTqSfjtEx2TCTrhxmwN-0-e70dbf1dbc5b2f4858941fc57a66c1e2)
图1-12 蓝牙软件包所包含的编程积木块
步骤3:将蓝牙连接模式改为无校验模式。
单击“设置”按钮,选择“项目设定”。蓝牙连接方式选用第一项,免配对连接。不需要配对:任何人都可以通过蓝牙连接,如图1-13所示。
![](https://epubservercos.yuewen.com/2835BE/17042066704482606/epubprivate/OEBPS/Images/38545_16_1.jpg?sign=1739281697-3JY7ecX6W9AkuzbS2Z3m6Cyn5IEX1wcN-0-d78934d5299d3f084be8367dc321673d)
图1-13 设置蓝牙连接模式
步骤4:输入蓝牙连接代码,如图1-14所示。
![](https://epubservercos.yuewen.com/2835BE/17042066704482606/epubprivate/OEBPS/Images/38545_16_2.jpg?sign=1739281697-sXTfjXdVT0bLe9DVz1acycHWNYqcan6Y-0-938e0e8a042ac1c7291affe2ee8b0b58)
图1-14 蓝牙连接代码
(二)App Inventor端
步骤1:输入网址http://app.gzjkw.net/login/,登陆App Inventor。
步骤2:蓝牙连接相关的界面设计。
需要两个按钮,一个标签和一个列表显示框。其中一个按钮用于扫描蓝牙,另一个按钮用于蓝牙的连接与断开。标签用于文字显示蓝牙当前状态。列表显示框用于显示扫描到的蓝牙设备。蓝牙部分组件设计如图1-15所示。
![](https://epubservercos.yuewen.com/2835BE/17042066704482606/epubprivate/OEBPS/Images/38545_16_3.jpg?sign=1739281697-HvvknjWAPgu8dXk2B7POT808GuqpQkHN-0-1b1138821440e8a04ab32b48ca210c4c)
图1-15 蓝牙部分组件设计
最重要的一个非可视化组件为与Micro:bit相适配的AI端蓝牙扩展包,将后缀名为.aix的拓展包导入,如图1-16所示。
![](https://epubservercos.yuewen.com/2835BE/17042066704482606/epubprivate/OEBPS/Images/38545_17_1.jpg?sign=1739281697-IEhf3dfRjdVxb5CmfkNpRd2FneVCQ2Yq-0-018ec72f1e0cd99f92b91311aad42f3e)
图1-16 导入蓝牙拓展包
![](https://epubservercos.yuewen.com/2835BE/17042066704482606/epubprivate/OEBPS/Images/38545_17_2.jpg?sign=1739281697-EakOyER3u91W7OccwdFittbLrYAQM9az-0-6edce40b905f67fcbfe0c8e303b14651)
拓展包附件下载
步骤3:蓝牙连接相关的逻辑设计。
当扫描按钮被按下时,触发蓝牙扫描,并且将标签显示为“当前蓝牙状态为:正在扫描……”。因为搜寻到Micro:bit的蓝牙是一个侦听事件,只有当你单击“开始”扫描按钮之后才将搜索到的Micro:bit蓝牙显示出来,所以用一个全局变量bScan来控制。
蓝牙扫描部分代码如图1-17所示。
![](https://epubservercos.yuewen.com/2835BE/17042066704482606/epubprivate/OEBPS/Images/38545_17_3.jpg?sign=1739281697-8yrAID5P4h36j3yDm8P3sfJouzM9jyz3-0-b9d3633b733079912ccfd330b8694303)
图1-17 蓝牙扫描部分代码
设置另一个全局布尔变量bConnected来表示连接状态,初始值为假。选择扫描到的Micro:bit蓝牙之后,再单击“连接”按钮,调用蓝牙连接行为。蓝牙连接与蓝牙断开是两个并行的侦听事件。只要蓝牙连接,变量bConnected值更改为真,标签显示为“当前蓝牙状态为:已连接”,并且按钮的图片更改为断开图片。此时如果单击“断开”按钮,调用蓝牙断开行为。侦听到蓝牙为断开时,变量bConnected值更改为假,标签显示为“当前蓝牙状态为:已断开”,并且连接的图片更改为连接图片。
蓝牙连接与断开部分代码如图1-18所示。
![](https://epubservercos.yuewen.com/2835BE/17042066704482606/epubprivate/OEBPS/Images/38545_18_1.jpg?sign=1739281697-mXOcetJB5Yi7W6F1lf5ExcY92FzgxC92-0-c93d56e7dfbe5bf0eb48b7233bd65de8)
图1-18 蓝牙连接与断开部分代码