查看: 7173|回复: 20

[基础教程] 玩转micro:bit-手机APP和bit蓝牙通信测试(1)

[复制链接]
本帖最后由 rzyzzxw 于 2018-7-16 15:23 编辑

2018年的520,我爱创客圈,同时也感受到了创客圈里的友爱。 截图201805211000351822.png
首先感谢晋江李和洽老师,苔萌王老师,长春谷宁老师,有了你们的大力支持,才有了这感人的故事。

这个帖子,起源于论坛里的求助帖的问题:

截图201805210952439847.png
这个问题也是我想解决的问题,如果没有同学的帖子,我可能会放上很久,因为这里面有App Inventor我只接触了一点点,还有蓝牙通信这些对小白如我来说很高深的技术。

所以,这注定了我在寻找答案中的跌跌撞撞,所以才有让我感动的520。
这里记一下,给有同样需要的小伙伴参考。

第一步,查资料。
查到的资料网页主要有二。
BlockyTalkyBLE - LPC  http://www.playfulcomputation.group/blockytalkyble.html

https://lancaster-university.github.io/microbit-docs/ble/profile/

都是英文的,英语早还给老师的我借助翻译读起来也吃力。
其实答案主要在第一个网页中。为了蓝牙配对才读第二个资料。
第一个页面的内容主要是这样的。

BlockyTalkyBLE可以很容易地AppInventor手机应用程序与BBC micro:bit的蓝牙连接。想要制作一个可以用手机上的遥控程序控制的猫喂食器?或者用LED点亮你的自行车,你可以改变语音识别的颜色模式?通过在AppInventor和micro:bit中添加BlockyTalkyBLE,您可以在设备之间发送消息和数据,以创建出色的联网应用程序。

我如何使用它?
这有助于使用MIT的App Inventor和Microsoft MakeCode进行一些编程。两者都是直观的,易于使用的基于块的编程工具,可以在浏览器中免费并在网络上运行。一旦创建了一个或两个项目并探索其功能,就可以考虑如何在手机和micro:bit之间传递信息和命令,以创建一个很酷的网络应用程序。

传递信息和命令非常简单 - 一切都以关键值对的形式发送 - 您可以设计自己的网络协议。




AppInventor中BlockyTalkyBLE,当一个按钮被点击时,发送一条消息到microbit




MakeCode 中,在收到消息“show”“heart”时,将micro:bit显示设置为心脏图标


翻译自:http://www.playfulcomputation.group/blockytalkyble.html
以上内容由邵子扬老师翻译,表示感谢。

页面提供的AppInventor BlockyTalkyBLE extension扩展包及Micro:bit
BlockyTalkyBLE package、Micro:bit bluetooth friendly neopixel package软件包地址,如果你对它感兴趣,后面会用到。
AppInventor BlockyTalkyBLE extension:
https://github.com/LaboratoryForPlayfulComputation/AppInventorExtension-BlockyTalkyBLE/releases/download/alpha3.0/edu.colorado.lpc.blockytalkyble.aix
Micro:bit BlockyTalkyBLE package:
https://github.com/LaboratoryForPlayfulComputation/pxt-blockytalkyBLE
Micro:bit bluetooth friendly neopixel package:
https://github.com/LaboratoryForPlayfulComputation/pxt-neopixel-bluetoothallowed​

页面上有一个APP和micro:bit蓝牙通信的范例,我就想,这个跑通了,改一改,就能实现同学的想法了。再改一改,能玩出不少花样。由它延伸学习,可以有好多好玩的东东出来。以前感觉micro:bit的蓝牙是个鸡肋,如果能在鸡肋中嚼出点无用之用的肉味来,也挺有意思。

截图201805211036282449.png

由于小白的原因,有三天的工余时间都在蓝牙配对,App lnventor各种尝试。却一直没有跑通,这里说多了都是累。

快要绝望的我,开始在520这天向圈里大神求助。苔萌王老师,晋江李和洽老师,长春谷宁老师纷纷伸出了援手。
很快的,李老师跑通了程序,并修改了范例中的bug。先上李老师的测试视频,APP和bit间双向蓝牙通信。


苔萌王老师的测试视频。

就是视频中王老师的轻轻一点,点化了我,我终于明白,哪轻轻一点就是我和答案间的咫尺天涯。就这样,我也跑通范例了。

群里520这天因为我提的问题热闹了。

未命名_meitu_0.jpg


APP与micro:bit蓝牙双向通信测试
器材准备:
1、安卓手机 1
2、micro:bit 1
3、测试程序



1、测试准备,从http://www.playfulcomputation.group/blockytalkyble.html下载测试程序。帖子附件后也给有范例程序。
截图201805211512389414.png
microbit-BLEmin.hex是micro:bit端的。
ble_min.aia是APP端的。
2、启动http://app.gzjkw.net/login/,或者ai2.17coding.net
导入项目ble_min.aia
截图201805211523242136.png
会有这个提示,确定,不影响的。
程序是这样的。
截图201805211552086558.png
截图201805211554036714.png
截图201805211554571382.png
屏幕如下。
截图201805211556249126.png
打包apk并显示二维码。
手机浏览器扫码下载,安装,就是这个foo,请在手机设置的应用管理中给这个应用启动蓝牙的权限。
截图201805211531448452.png
3、启动https://makecode.microbit.org/
导入文件microbit-BLEmin.hex
截图201805211536153573.png
是面显示的是修正后的程序。
如果你从http://www.playfulcomputation.group/blockytalkyble.html下载测试程序,请自己修改一下,这个变量原范例有误(感谢李老师测试修正)。
截图201805211539535380.png
蓝牙连接方式就用第一项,免配对连接。不需要配对:任何人都可以通过蓝牙连接。
截图201805211544099440.png
后面会有专帖介绍蓝牙配对,所以这里不多写了。
4、测试内容
从上面程序截屏可以看出,测试的内容是:
micro:bit端
1、按A键,通过蓝牙向APP发送micro:bit读取的加速度值x
2、按B键,通过蓝牙向APP发送micro:bit读取的亮度值
3、按A+B键,通过蓝牙向APP发送字符kari
APP端
按send key value按钮,通过蓝牙向micro:bit发送字符hello
5、给micro:bit上电,显示爱心。
打开手机APP应用foo,启动蓝牙。
截图201805211618432612.png
现在Connection Status(连接状态)为found microbit(s)(发现micro:bit)
点一下Microbit ListPicker(micro:bit 设备列表)
截图201805211629126282.png
显示已搜索到的micro:bit(不同板子内容会不同),点一下这个micro:bit设备信息,(会变黄底显示,我就是没有选择设备导致迷茫了几天)。
截图201805211635251571.png
现在Connection Status(连接状态)为connected(已连接),这时micro:bit上显示C。
大功告成,后面就可以测试了。
截图201805211655364938.png
测试视频在上面哦。现在想来,其实挺简单的。可是我却经过曲折漫长的过程。

为了方便小伙伴们测试,我把APP端程序稍稍处理了下,界面变成中文后好理解一些。
截图201805211749053542.png
程序ble_min_df.aia放在附件中了。测试视频。


小结:这个帖子讲述了APP与micro:bit蓝牙双向通信测试,有传感器数据向APP传送,有APP向bit发送字符。一开始就看中了这些功能,解决同学的问题就不是问题了。程序改改,后面再把APP lnventor好好学学,可以做出好多好玩互动项目来的。一起玩起来。

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













ble_min.rar

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

售价: 1 创造力  [记录]

microbit-BLEmin.rar

231.48 KB, 下载次数: 26, 下载积分: 创造力 -1

售价: 1 创造力  [记录]

ble_min_df.rar

155.02 KB, 下载次数: 17, 下载积分: 创造力 -1

售价: 1 创造力  [记录]

sunkf  初级技师

发表于 2018-5-21 22:39:19

micro:bit 不用mp3模块也能播放音乐了,手机喇叭还响亮
回复 支持 反对

使用道具 举报

rzyzzxw  版主
 楼主|

发表于 2018-5-21 23:31:34

sunkf 发表于 2018-5-21 22:39
micro:bit 不用mp3模块也能播放音乐了,手机喇叭还响亮

高手,求教程。
回复 支持 反对

使用道具 举报

sunkf  初级技师

发表于 2018-5-22 10:30:24

rzyzzxw 发表于 2018-5-21 23:31
高手,求教程。

app  inventor 非可视组件添加“音频播放器”,可以实现micro:bit可以控制app播放音频啦
回复 支持 反对

使用道具 举报

rzyzzxw  版主
 楼主|

发表于 2018-5-22 10:33:03

sunkf 发表于 2018-5-22 10:30
app  inventor 非可视组件添加“音频播放器”,可以实现micro:bit可以控制app播放音频啦 ...

app  inventor 我还不会,不过开始学习啦。
回复 支持 反对

使用道具 举报

张果老  学徒

发表于 2018-7-12 22:37:04

谢谢分享
回复 支持 反对

使用道具 举报

rzyzzxw  版主
 楼主|

发表于 2018-7-13 14:33:40


一起玩,一起玩。
回复 支持 反对

使用道具 举报

网络白丁  初级技师

发表于 2018-7-13 21:20:51

测试成功,最难的地方是:“显示已搜索到的micro:bit(不同板子内容会不同),点一下这个micro:bit设备信息,(会变黄底显示,我就是没有选择设备导致迷茫了几天)。”
回复 支持 反对

使用道具 举报

rzyzzxw  版主
 楼主|

发表于 2018-7-14 08:45:47

网络白丁 发表于 2018-7-13 21:20
测试成功,最难的地方是:“显示已搜索到的micro:bit(不同板子内容会不同),点一下这个micro:bit设备信息 ...

回复 支持 反对

使用道具 举报

DFryhywoXv7  学徒

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

这个是英文,搞不定呀。
回复 支持 反对

使用道具 举报

FishGan  初级技师

发表于 2018-9-6 16:45:03

很不错,就是不知道为什么蓝牙经常会莫名断开连接
回复 支持 反对

使用道具 举报

rzyzzxw  版主
 楼主|

发表于 2018-9-6 20:01:56

FishGan 发表于 2018-9-6 16:45
很不错,就是不知道为什么蓝牙经常会莫名断开连接

bit的蓝牙是比较鸡肋,但有高级的流畅的方法,我还不会玩。
回复 支持 反对

使用道具 举报

FishGan  初级技师

发表于 2018-9-6 20:20:32

rzyzzxw 发表于 2018-9-6 20:01
bit的蓝牙是比较鸡肋,但有高级的流畅的方法,我还不会玩。

我之前用自带的蓝牙串口玩的。microbit上用的是自带的蓝牙库(就图里这个),APPInventor就是一般的蓝牙串口支持,然后两边用串口通讯。这个用下来挺稳定,但是长时间没通讯自己会断,然后自动重连也搞不定Orz
微信截图_20180906201638.png
回复 支持 反对

使用道具 举报

rzyzzxw  版主
 楼主|

发表于 2018-9-7 08:17:24

FishGan 发表于 2018-9-6 20:20
我之前用自带的蓝牙串口玩的。microbit上用的是自带的蓝牙库(就图里这个),APPInventor就是一般的蓝牙 ...

哈哈,有一阵子我迷在蓝牙里了,后来,韦青大师访谈后,韦青大师访谈:micro:bit蓝牙、教学定位、学习研讨及其它
http://mc.dfrobot.com.cn/forum.p ... &fromuid=727937
(出处: DF创客社区 - 分享创造的喜悦)
,我走出来了。

不过我发现小喵科技对bit的蓝牙探究挺深,也稳定。
回复 支持 反对

使用道具 举报

FishGan  初级技师

发表于 2018-9-7 11:50:13

rzyzzxw 发表于 2018-9-7 08:17
哈哈,有一阵子我迷在蓝牙里了,后来,韦青大师访谈后,韦青大师访谈:micro:bit蓝牙、教学定位、学习研 ...

说实话,bit的MCU性能真的不算弱了,真的是虚拟机渣优化。具体的例子,就是LED屏控制。LED屏控制有两个办法,一个是用类似于九宫格的那个方块,然后鼠标去点出要显示的画面,一个就是单个LED控制。九宫格的延迟时间竟然要达到几十毫秒我也是很迷醉,所以很多时候我情愿用多个单点控制的方块,程序看上去复杂了但是执行速度真的会快很多。而且,个人觉得,很多时候这种嵌入式单片机代码的高效执行仰赖于各种硬件特性,而非单纯的处理器内核性能。就用nRF51822举例,比如说DMA,比如event和task的联动,这些强大的特性都没被用上。
回复 支持 反对

使用道具 举报

FishGan  初级技师

发表于 2018-9-7 11:53:08

rzyzzxw 发表于 2018-9-7 08:17
哈哈,有一阵子我迷在蓝牙里了,后来,韦青大师访谈后,韦青大师访谈:micro:bit蓝牙、教学定位、学习研 ...

韦老师说的很对,如果不是专业的,只是教育or创客用途的,这就完全够了~但是我算是半个嵌入式开发工程师hhhhh更加喜欢用C语言尽可能榨干单片机的性能
回复 支持 反对

使用道具 举报

rzyzzxw  版主
 楼主|

发表于 2018-9-7 16:14:39

FishGan 发表于 2018-9-7 11:53
韦老师说的很对,如果不是专业的,只是教育or创客用途的,这就完全够了~但是我算是半个嵌入式开发工程师h ...

可以和小喵的攻城师聊聊,CC喵们做的软件很多蓝牙功能。
回复 支持 反对

使用道具 举报

FishGan  初级技师

发表于 2018-9-8 15:57:17

rzyzzxw 发表于 2018-9-7 16:14
可以和小喵的攻城师聊聊,CC喵们做的软件很多蓝牙功能。

哈哈,看了下小喵论坛里的各种官方项目,感觉很强,持续关注中~
回复 支持 反对

使用道具 举报

gada888  版主

发表于 2018-9-19 17:35:18

不错嘛
回复 支持 反对

使用道具 举报

杰少  学徒

发表于 2018-11-5 16:04:26

求解无法下载问题
回复 支持 反对

使用道具 举报

rzyzzxw  版主
 楼主|

发表于 2018-11-5 16:45:58

杰少 发表于 2018-11-5 16:04
求解无法下载问题

可以下啊。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail