不是一个有效的蓝牙的有效传输距离设备地址是怎么回事

& & 用手机作为小车上的主控制器,通过蓝牙和底层控制板 Arduino 相连,蓝牙连接希望能不用手工干预,因为小车上的手机角色已经是一个嵌入式设备,而非人机操控终端,上面的操作应该越少越好。程序运行后应该不需要任何人工操作!
& & &当然通过将所需连接的蓝牙设备地址写入程序,是可以实现程序运行后自动连接,但这样每次更换蓝牙模块时就需要修改程序,并重新编译,有点麻烦,体验不好。
& & &第一个程序做的时候是通过操控端实现小车上手机蓝牙的选择和连接,虽然达到了&小车上的手机没有人工干预&的要求,但操控端需要实现一个蓝牙连接的人机界面,而用 Processing 写人机界面实在有点勉为其难。
& & &前面通过努力实现了IP地址的自适应,效果不错,于是想用同样的思路实现蓝牙设备的自动查找和连接。
& & &基本思路是:
& & &依次尝试连接手机中所有的配对设备;如果能连接上,则发送一个小车控制命令,如果有应答,且正确,则说明此设备为连接Arduino控制板的蓝牙模块,保持这个连接,进入正常的工作状态。
& & &配对过程只能用手机原有的操作,好像只能手工输入配对密码,所以不考虑将配对过程纳入,基于已配对的设备尝试。
& & &控制过程并不复杂,而且借助手机屏可以显示尝试的进程,还是很有意思的。
& & &详细的实现过程见所附程序。实现的基础是Processing第三方分享库&Ketai&,里面有完整的蓝牙库。
& & &视频地址:&
& & &不过在实现过程中还是遇到一点小问题:
& & &本来的构思是:如果连接上一个设备,发送小车控制命令后,没有应答,则将这个设备断开连接。但在所用的 Ketai 库中没有对应的断开函数!只好用stop() 函数,期望用关闭蓝牙接口的方式实现断开连接,之后再重新用start() 函数启动蓝牙接口。
& & &可运行后发现,stop() 函数会将程序结束了,不知道是什么原因,库的手册描述的很简单,又没有 Ketai库的源程序,所以只好放弃。
& & &变通的方式是:连接的设备如果不应答,不管它,保持连接,继续找下一个设备。
& & &这样处理有点不舒服,因为将一些程序不用的蓝牙设备也连接在手机上了,不知道是不是会占用额外的资源?
& & &不过,这样倒是提供了一种可能:控制多个蓝牙设备!
& & &&这个问题还望高手指点迷津!
& & &&似乎在Android 标准库中也没有看到类似的函数,是不是正常使用中不需要这个过程?不过在 AppInventor 中倒是有 connect 和 disconnect 函数。
& & &&最好能实现这种方式。
& & &&用手机作为主控制器控制小车的基础都已打好,下面就是尝试基于手机的 Wifi-Robot了!
& & & & & & & & & & & & & & & & & & & & & & &&&&&&&&&&&&
Processing 程序:
旗下网站:
与非门科技(北京)有限公司 All Rights Reserved.
京ICP证:070212号
北京市公安局备案编号: 京ICP备:号}

我要回帖

更多关于 小米手环蓝牙有效距离 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信