![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=1739369940-g9jf84Jc8ASIogGqRBHdMpgSNu6eKmNI-0-a076a9c4efba9e9c6511ad534e795230)
图1-7 “添加包…”界面
输入蓝牙软件包下载网址,开始搜索,如图1-8与图1-9所示。
![](https://epubservercos.yuewen.com/2835BE/17042066704482606/epubprivate/OEBPS/Images/38545_14_2.jpg?sign=1739369940-bCWse9kVnxy2CqMlxCylDk5RoyTTZmtL-0-5323a421c626c931429a6f71ef582ac8)
图1-8 输入蓝牙软件包下载网址
![](https://epubservercos.yuewen.com/2835BE/17042066704482606/epubprivate/OEBPS/Images/38545_14_3.jpg?sign=1739369940-xgbDqizku4KYP71M0i1DtoMRhb4myUrv-0-cd2cbdeab8e7a68fad17c4d47bbc16e9)
图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=1739369940-KCMPpvENM4sB65ennfE3Rm2fs5qymRx4-0-e0ee7fb1c1dfaf5460937fa8b9ec7f19)
图1-10 删除无线软件包并添加蓝牙软件包
![](https://epubservercos.yuewen.com/2835BE/17042066704482606/epubprivate/OEBPS/Images/38545_15_2.jpg?sign=1739369940-1xmAl7enx9zkVzUNklBuTYkW0HdpQqS2-0-7d452c383aa216538b6670ec9231cc23)
图1-11 编程积木块选区
蓝牙软件包中所包含的编程积木块截图如图1-12所示。
![](https://epubservercos.yuewen.com/2835BE/17042066704482606/epubprivate/OEBPS/Images/38545_15_3.jpg?sign=1739369940-Q6VqU3IdlW2kgDqrgWa4ZYorqDrV2Sve-0-02e56e05671e8ad9be0f0d6a4f63c8a5)
图1-12 蓝牙软件包所包含的编程积木块
步骤3:将蓝牙连接模式改为无校验模式。
单击“设置”按钮,选择“项目设定”。蓝牙连接方式选用第一项,免配对连接。不需要配对:任何人都可以通过蓝牙连接,如图1-13所示。
![](https://epubservercos.yuewen.com/2835BE/17042066704482606/epubprivate/OEBPS/Images/38545_16_1.jpg?sign=1739369940-hrTmt3VhXVkliWbVI20dKaQf3N6dQADf-0-cbde543629439eb0303f214ccbf2f04d)
图1-13 设置蓝牙连接模式
步骤4:输入蓝牙连接代码,如图1-14所示。
![](https://epubservercos.yuewen.com/2835BE/17042066704482606/epubprivate/OEBPS/Images/38545_16_2.jpg?sign=1739369940-5diwal9Ed04gGHGxdtwgDtubagOZIB9G-0-2b0ecf567366dfeccdbc330a14b4fabf)
图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=1739369940-GRaN83oF4DjoNEYHAbuxowNvkLcjjF63-0-07fbca7e4bd5523ed15a59812849858a)
图1-15 蓝牙部分组件设计
最重要的一个非可视化组件为与Micro:bit相适配的AI端蓝牙扩展包,将后缀名为.aix的拓展包导入,如图1-16所示。
![](https://epubservercos.yuewen.com/2835BE/17042066704482606/epubprivate/OEBPS/Images/38545_17_1.jpg?sign=1739369940-YNlBghixcA7l1CGsHQxdURrlb5LW6PK2-0-14d841312fa83a6100b5f3c601ed6136)
图1-16 导入蓝牙拓展包
![](https://epubservercos.yuewen.com/2835BE/17042066704482606/epubprivate/OEBPS/Images/38545_17_2.jpg?sign=1739369940-kTkJHfgA2SUfAPJV7eRcMmMhmvKm8fuw-0-d0298a650f96d4fccc203be78dd418d8)
拓展包附件下载
步骤3:蓝牙连接相关的逻辑设计。
当扫描按钮被按下时,触发蓝牙扫描,并且将标签显示为“当前蓝牙状态为:正在扫描……”。因为搜寻到Micro:bit的蓝牙是一个侦听事件,只有当你单击“开始”扫描按钮之后才将搜索到的Micro:bit蓝牙显示出来,所以用一个全局变量bScan来控制。
蓝牙扫描部分代码如图1-17所示。
![](https://epubservercos.yuewen.com/2835BE/17042066704482606/epubprivate/OEBPS/Images/38545_17_3.jpg?sign=1739369940-KA9TXlQSlU8sin7MbqSu6dxaP2meX75k-0-30528cdd342b4aab0a3781da3be5905a)
图1-17 蓝牙扫描部分代码
设置另一个全局布尔变量bConnected来表示连接状态,初始值为假。选择扫描到的Micro:bit蓝牙之后,再单击“连接”按钮,调用蓝牙连接行为。蓝牙连接与蓝牙断开是两个并行的侦听事件。只要蓝牙连接,变量bConnected值更改为真,标签显示为“当前蓝牙状态为:已连接”,并且按钮的图片更改为断开图片。此时如果单击“断开”按钮,调用蓝牙断开行为。侦听到蓝牙为断开时,变量bConnected值更改为假,标签显示为“当前蓝牙状态为:已断开”,并且连接的图片更改为连接图片。
蓝牙连接与断开部分代码如图1-18所示。
![](https://epubservercos.yuewen.com/2835BE/17042066704482606/epubprivate/OEBPS/Images/38545_18_1.jpg?sign=1739369940-J6bLJB7k7hlHuHaeF15CXm7QMmi3XzJE-0-277b03031ec3af38df333be88f7fde17)
图1-18 蓝牙连接与断开部分代码