查看: 4869|回复: 25

[基础教程] MIT App Inventor + Micro:bit蓝牙基本连接设置--1

[复制链接]
本帖最后由 rzyzzxw 于 2018-6-1 22:05 编辑

河南汝州市一中 朱现伟老师 翻译测试 转载请注明

在AppInventor中启动一个新项目,并将其命名为BasicIoTSetup。

首先,我们需要设置一些按钮来通过蓝牙查找和连接我们的 micro:bit

  • 组件面板中的界面布局块菜单中拖动一个水平布局,并向其中添加3个按钮。
  • 重命名按钮:ButtonScan、ButtonConnect和ButtonDisconnection。
  • 将他们的文本改为“扫描”、“连接”和“断开”。
  • 在水平排列下面添加一个标签。将其重命名为LabelStatus,并将其文本更改为“状态:”。
  • 用户界面下面拖动列表显示框,并将其重命名为ListBLE。

图片1.png

接下来,我们需要安装blockytalkyble扩展。

  • 下载edu.colorado.lpc.blockytalkyble.aix扩展到您的计算机。(扩展文件在附件)
  • 组件面板中,单击底部的Extension,然后单击“Import extension”,然后单击“选择文件”。
  • 在您的计算机上找到文件并上传它。


图片2.jpg


另一种方法是在组件面板中,单击底部的Extension,然后单击“Import extension”,然后单击“URL”。粘贴下面的地址:
将扩展拖到查看器上,添加它。

当它被拖到查看器上之后,它将出现在主屏幕下面,因为它是一个不可见的组件。
图片3.jpg


切换到逻辑设计视图

我们希望设置应用程序来扫描可用的蓝牙设备。为此,我们将使用ButtonScan按钮设置蓝牙组件以开始扫描,并更改状态标签。

  • 从模块窗格中,单击ButtonScan,然后拖出当ButtonScan.点击
  • BlockyTalkyBLE1的块菜单里,添加调用BlockyTalkyBLE1.StartScanning
  • LabelStatus块菜单中,添加设置 LabelStatus.文本
  • 文本块菜单中,添加一个文本块并键入“状态:扫描”。
  • Listable块菜单,添加设置ListBur.可见
  • 逻辑块菜单中拖出模块并对齐到设置ListBur.可见
注意:我们这样做是为了以后可以隐藏列表,因为如果附近有很多蓝牙设备,列表会变得很长。
图片4.jpg
我们需要用所有可用的蓝牙设备填充设备列表。

  • 从模块窗格中,单击BlockyTalkyBLE1,然后拖出
   当BlockyTalkyBLE1.MicrobitFound
  • ListBLE块菜单中,添加设置ListBLE.元素字串.为
  • BlockyTalkyBLE1的块菜单里,添加BlockyTalkyBLE1.McrobitList

图片5.jpg
现在,我们将使用应用程序通过蓝牙连接到microbit

  • 从模块窗格中,单击ButtonConnect,然后拖出
   当ButtonConnection被点击
  • blockytalkyble1块菜单中,添加调用blockytalkyble1.ConnectMicrobit index
  • ListBLE块菜单中,添加ListBLE.选中索引项
  • LabelStatus块菜单中,添加设置LabelStatus.文本
  • 文本块菜单中,添加文本模块并键入
  “状态:连接”。
图片6.jpg

让我们设置一下,这样我们就可以知道应用程序何时成功地连接到micro:bit

  • 从“”窗格中,单击“blockytalkyble1”,然后从块菜单拖出。
   当blockytalkyble1.Connected.
  • LabelStatus块菜单中,添加设置LabelStatus.文本
  • 文本块菜单中,添加文本模块并键入
    “状态:连接
  • ListBLE块菜单中,添加设置 ListBLE.可见性 为
  • 逻辑块菜单中,添加一个模块。

注意:我们这样做是为了隐藏名单。正如我们前面提到的,如果附近有很多蓝牙设备,它会变得非常长。
图片7.jpg

接下来,我们希望能够与蓝牙设备断开连接。

  • 从“”窗格中,单击“ButtonDisconnection”,然后拖出
   当ButtonDisconnection.点击
  • blockytalkyble1的块菜单里,添加调用blockytalkyble1.断开连接

图片8.jpg
我们还想知道蓝牙设备何时成功断开连接(知道按上面的按钮是否有效)

  • 从块窗格中,单击blockytalkyble1,然后拖出
   当blockytalkyble1Disconnected.
  • LabelStatus块菜单中,添加设置LabelStatus.文本
  • 文本块菜单中,添加文本模块并键入
   “状态:断开”
图片9.jpg
现在,让我们用MIT AI2Companion测试我们的APP,打包APK,手机浏览器扫二维码下载安装,并给APP启动蓝牙授权。

测试前做下准备工作,在makecode中写一个测试程序并刷入micro:bit:
建议蓝牙连接方式用免配对连接(不需要配对:任何人都可以通过蓝牙连接。,以节约调试时间,这个选择项是在makecode编程页面中找到的,前提是要在编程时添加https://github.com/LaboratoryForPlayfulComputation/pxt-blockytalkyBLE软件包
图片10.png
图片11.png
测试程序下载到micro:bit。例如:
图片12.png

给micro:bit供电。
手机端打开APP—BasicIoTSetup如图。
截图201805282026566520.png
请使用以下步骤测试该应用程序:

单击扫描按钮。
您应该会看到BLE设备的列表。

单击列表中的设备名称
单击“连接”。

如果您的设备成功连接到
LabelStatus应该改为“状态:连接”。

注意:本教程只将你的应用程序连接到你的物联网蓝牙设备上。要对设备做些有趣的事情,您需要设置它,然后尝试添加传感器(光、湿度等)来控制或显示信息。

本文英文文档由台湾@Alex Wang提供。原文是针对Arduino蓝牙连接的,翻译中改为对micro:bit,并进行了验证。
验证aia文件附后。
翻译中得到长春谷宁老师指导,一并谢过。

由于时间有限,译的匆忙,难免有错误之处,敬请指正。
我们建有专门的QQ群和微信群,有什么问题,可以在群里交流。
QQ群号:484477101(中小学microbit课堂教学群)。



BasicIoTSetup.rar

153.27 KB, 下载次数: 22, 下载积分: 创造力 -1

售价: 1 创造力  [记录]

edu.colorado.lpc.blockytalkyble.rar

150.42 KB, 下载次数: 13, 下载积分: 创造力 -1

售价: 1 创造力  [记录]

rzyzzxw  版主
 楼主|

发表于 2018-6-1 08:31:54

blockytalkyble扩展是专门为AI2写的micro:bit BLE扩展。
回复 支持 反对

使用道具 举报

digi_cow  中级技匠

发表于 2018-6-2 11:22:18

跟着朱老师的教程试了下,成功扫描并连接。不过连接后点击断开,没有反应。
回复 支持 反对

使用道具 举报

rzyzzxw  版主
 楼主|

发表于 2018-6-2 14:34:33

本帖最后由 rzyzzxw 于 2018-6-2 14:48 编辑
digi_cow 发表于 2018-6-2 11:22
跟着朱老师的教程试了下,成功扫描并连接。不过连接后点击断开,没有反应。 ...

有的哈,看我测试视频。你跑下附件中的程序哈,帮忙看下教程中有没有错误。
回复 支持 反对

使用道具 举报

micro  学徒

发表于 2018-7-23 16:10:29

照这个写的APP容易断开,是怎么回事?有遇到这个问题的吗?
回复 支持 反对

使用道具 举报

rzyzzxw  版主
 楼主|

发表于 2018-7-24 09:01:30

micro 发表于 2018-7-23 16:10
照这个写的APP容易断开,是怎么回事?有遇到这个问题的吗?

容易和bit断开。其实是bit死机了。原因请读另一个帖子韦青大师访谈:micro:bit蓝牙、教学定位、学习研讨及其它
http://mc.dfrobot.com.cn/forum.p ... &fromuid=727937
(出处: DF创客社区 - 分享创造的喜悦)
回复 支持 反对

使用道具 举报

micro  学徒

发表于 2018-7-26 14:29:08

rzyzzxw 发表于 2018-7-24 09:01
容易和bit断开。其实是bit死机了。原因请读另一个帖子韦青大师访谈:micro:bit蓝牙、教学定位、学习研讨 ...

看了,好像问题没能解决,请问你有更好的蓝牙APP吗?怎么编写个APP是利用那个高级事件的?
回复 支持 反对

使用道具 举报

rzyzzxw  版主
 楼主|

发表于 2018-7-26 14:42:08

micro 发表于 2018-7-26 14:29
看了,好像问题没能解决,请问你有更好的蓝牙APP吗?怎么编写个APP是利用那个高级事件的?
...

资料中有做用高级事件写好的 APP链接,我英文不中,不再钻了。
回复 支持 反对

使用道具 举报

科基  学徒

发表于 2018-8-16 16:01:28

我也喜欢
回复 支持 反对

使用道具 举报

gada888  版主

发表于 2018-8-24 17:05:29

喜欢
回复 支持 反对

使用道具 举报

gada888  版主

发表于 2018-9-19 17:36:27

再学一遍
回复 支持 反对

使用道具 举报

jcq333  学徒

发表于 2018-10-24 10:54:35

扫描没结果,不知道是不是蓝牙的关系
回复 支持 反对

使用道具 举报

rzyzzxw  版主
 楼主|

发表于 2018-10-24 11:15:30

jcq333 发表于 2018-10-24 10:54
扫描没结果,不知道是不是蓝牙的关系

bit端也要有程序运行来配合的。
回复 支持 反对

使用道具 举报

杰少  学徒

发表于 2018-11-5 12:40:49

在micro bit 下载的拓展是不是被修改了,完全不能用了
回复 支持 反对

使用道具 举报

rzyzzxw  版主
 楼主|

发表于 2018-11-5 15:08:19

杰少 发表于 2018-11-5 12:40
在micro bit 下载的拓展是不是被修改了,完全不能用了

这个帖子的内容不如前面的蓝牙连接好玩。bit的蓝牙本身就不强大,所以后面我已不再研读它了。
回复 支持 反对

使用道具 举报

杰少  学徒

发表于 2018-11-5 15:32:26

rzyzzxw 发表于 2018-11-5 15:08
这个帖子的内容不如前面的蓝牙连接好玩。bit的蓝牙本身就不强大,所以后面我已不再研读它了。 ...

我发现连接的库被做了修改,请问您还有别的方法做到连接吗
回复 支持 反对

使用道具 举报

rzyzzxw  版主
 楼主|

发表于 2018-11-5 15:35:40

杰少 发表于 2018-11-5 15:32
我发现连接的库被做了修改,请问您还有别的方法做到连接吗

没有啦,谢谢你提醒,后面的小伙伴少了个坑。
回复 支持 反对

使用道具 举报

梁军  见习技师

发表于 2018-11-20 15:55:59

做出来的连不上,闪退。不知哪里搞错了。
回复 支持 反对

使用道具 举报

rzyzzxw  版主
 楼主|

发表于 2018-11-20 17:28:41

梁军 发表于 2018-11-20 15:55
做出来的连不上,闪退。不知哪里搞错了。

有时会闪退,bit的蓝牙连接不稳定。
回复 支持 反对

使用道具 举报

梁军  见习技师

发表于 2018-11-20 19:32:12

rzyzzxw 发表于 2018-11-20 17:28
有时会闪退,bit的蓝牙连接不稳定。

的确是这样。是bit 本身问题吧,有没有更好的方法?谢谢了
回复 支持 反对

使用道具 举报

rzyzzxw  版主
 楼主|

发表于 2018-11-20 20:30:29

梁军 发表于 2018-11-20 19:32
的确是这样。是bit 本身问题吧,有没有更好的方法?谢谢了

有办法,用C写就好多了。可是我并不会。
回复 支持 反对

使用道具 举报

12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
wifi气象站

硬件清单

btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2019 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail