8951| 13
|
Micro bit 与 App Inventor2 蓝牙通信 |
最近要用到Micro bit与App Inventor蓝牙通信功能,查询网上的一些资料,遇到了各种问题,现将自己的成功经验总结如下,分享给大家。 首先参考了rzyzzxw的[入门教程]MIT App Inventor + Micro:bit蓝牙基本连接设置--1,但APP有连接后闪退现象。 第二参考sadanubis2008的【原创】Appinventor 与Microbit BLE连接测试。解决困扰我的问题,UUID。但文中未实现对App传过来的字符做判断。 第三参考米加盒子如何通过蓝牙连接micro:bit?,解决App传来的字符Microbit做判断,但只判断一次,循环条件上有问题。 最后参考 Makecode官方网站UART Read。正解!!! 总结如下: 1、使用的编辑器及插件 Mackecode用的是Microsoft MakeCode的Makecode在线板,扩展用自带的BLE蓝牙插件。 Appinventor 用的是wxbit的 Appinventor 汉化包,它的BLE扩展也是自带了的。 2、Microbit 部分 2.1原理是,先设置Microbit的蓝牙可被所人连接,再点保存。 2.2代码: 2.2.1 连接时显示字符“C”,置连接标识为“1” ,重复接收来自APP数据并判断数据内容,做出相应动作。为K时显示勾,P14引脚置高电平(接电磁继电器,并接上台灯);为G时显示差,P14引脚置低电平。 2.2.2断开时显示“D”并置连接标识为“0”。 2.2.3另,记得启动uart服务,一会要用这个来通信。 3、App inventor部分 3.1 界面部分 3.2 逻辑部分 3.2.1 BLE扫描及连接 第一次扫描时,Microbit的地址会直接显示在列表中。记下 ,然后让App直接对搜索结果比对,然后连接Microbi。这样可以加快测试速度。 然后改成下面的模块。 其实上图绿色的一行已经不需要了,只是为了测试好看而已。记得地址用的是文本,“:”号用的是英文。 连接后记得停止搜索,不然它会一直做无用功。 3.2.2 BLE侦听 1)这里有三个参数需要记住,分别服务UUID,发送UUID,以及接收UUID。在Makcode的帮助中可以查出来,分别是: public static String UARTSERVICE_SERVICE_UUID = “6E400001B5A3F393E0A9E50E24DCCA9E”; public static String UART_RX_CHARACTERISTIC_UUID = “6E400002B5A3F393E0A9E50E24DCCA9E”; public static String UART_TX_CHARACTERISTIC_UUID = “6E400003B5A3F393E0A9E50E24DCCA9E”; 2)服务、收、发UUID 的差异在这里 分别是1B、2B、3B 我们侦听模块如下: 因为我们是侦听,所以用的是接收的特征UUID:“6E400002B5A3F393E0A9E50E24DCCA9E”。收到信息就作以下处理,收到信息后,状态标签就会显示内容了。 3)发送 发送的模块如下: 我们这次是发送,所以特征UUID用的是6E400003B5A3F393E0A9E50E24DCCA9E。 OK可以了。 4、测试 分别把Appinventor及Macode代码下载到手机(与可以用手机伴侣)和Microbit,经实测,双向数据都是通过的。 附件代码: 1、Macode代码 2、蓝牙通信.rar |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed