![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=1738810527-GpjMlKmtKMugAy0MIT8cdP7m6TQjI9Xv-0-ad6925edce709a5922b7ebaf11cfcb67)
图1-7 “添加包…”界面
输入蓝牙软件包下载网址,开始搜索,如图1-8与图1-9所示。
![](https://epubservercos.yuewen.com/2835BE/17042066704482606/epubprivate/OEBPS/Images/38545_14_2.jpg?sign=1738810527-yMrbvnaaX8LnSLLbvdcIRBZQOUUTIGag-0-5982343fb44730141816718cd1ef22d1)
图1-8 输入蓝牙软件包下载网址
![](https://epubservercos.yuewen.com/2835BE/17042066704482606/epubprivate/OEBPS/Images/38545_14_3.jpg?sign=1738810527-MDyklFH42INPmQGZAxFcsj77ORE9vhkj-0-39fd9ec3c219f267f60fe5ee12d92ebf)
图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=1738810527-L6otTf8ppig4iXnwySk9OJtauxCzufM9-0-47776829c76cd402b5c59213c4c10b1a)
图1-10 删除无线软件包并添加蓝牙软件包
![](https://epubservercos.yuewen.com/2835BE/17042066704482606/epubprivate/OEBPS/Images/38545_15_2.jpg?sign=1738810527-186ApaW9zWFliVWXTit9N0b3J1kKA7Q7-0-3429f6fc78273411519d9a89f2c29050)
图1-11 编程积木块选区
蓝牙软件包中所包含的编程积木块截图如图1-12所示。
![](https://epubservercos.yuewen.com/2835BE/17042066704482606/epubprivate/OEBPS/Images/38545_15_3.jpg?sign=1738810527-WbR0E7eDLt0bgA8IJ01KakRX71nB5TOh-0-2cdc24a38358642a9953ce7079d17674)
图1-12 蓝牙软件包所包含的编程积木块
步骤3:将蓝牙连接模式改为无校验模式。
单击“设置”按钮,选择“项目设定”。蓝牙连接方式选用第一项,免配对连接。不需要配对:任何人都可以通过蓝牙连接,如图1-13所示。
![](https://epubservercos.yuewen.com/2835BE/17042066704482606/epubprivate/OEBPS/Images/38545_16_1.jpg?sign=1738810527-aG6kAPQc9LpTNasCfwyKpyl6lbYMIhm7-0-c78b47d055df1c6685c9c61141ceae28)
图1-13 设置蓝牙连接模式
步骤4:输入蓝牙连接代码,如图1-14所示。
![](https://epubservercos.yuewen.com/2835BE/17042066704482606/epubprivate/OEBPS/Images/38545_16_2.jpg?sign=1738810527-sF4x66czGPamwyMtJMWUuAolCYhQZNH2-0-e1feb5238c869de26456ead9d069e963)
图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=1738810527-juXogiRtsnIgWXIWzgP8U28wKJIeIWvp-0-d79ac84c8d9112472bdecee2f2d7eab7)
图1-15 蓝牙部分组件设计
最重要的一个非可视化组件为与Micro:bit相适配的AI端蓝牙扩展包,将后缀名为.aix的拓展包导入,如图1-16所示。
![](https://epubservercos.yuewen.com/2835BE/17042066704482606/epubprivate/OEBPS/Images/38545_17_1.jpg?sign=1738810527-33hxGxLl5O0TG8P3Nw6HS5fWGEJ3wBCP-0-bf28c5f00650b5005e7432bb0a32cd23)
图1-16 导入蓝牙拓展包
![](https://epubservercos.yuewen.com/2835BE/17042066704482606/epubprivate/OEBPS/Images/38545_17_2.jpg?sign=1738810527-3AHSeR9IGn2RrwRhNiC8zYIaO0MGJv43-0-336a00a2b0a214e5027cf7a6a5cae612)
拓展包附件下载
步骤3:蓝牙连接相关的逻辑设计。
当扫描按钮被按下时,触发蓝牙扫描,并且将标签显示为“当前蓝牙状态为:正在扫描……”。因为搜寻到Micro:bit的蓝牙是一个侦听事件,只有当你单击“开始”扫描按钮之后才将搜索到的Micro:bit蓝牙显示出来,所以用一个全局变量bScan来控制。
蓝牙扫描部分代码如图1-17所示。
![](https://epubservercos.yuewen.com/2835BE/17042066704482606/epubprivate/OEBPS/Images/38545_17_3.jpg?sign=1738810527-0x64Eh9hkqLJrzOLlMzjxCyRWwbreFmh-0-46b0ae053720646ecc022c24c99ea2fd)
图1-17 蓝牙扫描部分代码
设置另一个全局布尔变量bConnected来表示连接状态,初始值为假。选择扫描到的Micro:bit蓝牙之后,再单击“连接”按钮,调用蓝牙连接行为。蓝牙连接与蓝牙断开是两个并行的侦听事件。只要蓝牙连接,变量bConnected值更改为真,标签显示为“当前蓝牙状态为:已连接”,并且按钮的图片更改为断开图片。此时如果单击“断开”按钮,调用蓝牙断开行为。侦听到蓝牙为断开时,变量bConnected值更改为假,标签显示为“当前蓝牙状态为:已断开”,并且连接的图片更改为连接图片。
蓝牙连接与断开部分代码如图1-18所示。
![](https://epubservercos.yuewen.com/2835BE/17042066704482606/epubprivate/OEBPS/Images/38545_18_1.jpg?sign=1738810527-J2XUuqXDMKirSpYCDsKiN8EGV5FCwHiR-0-fa017918b3e78a2d67b3b721b505bd28)
图1-18 蓝牙连接与断开部分代码