设置左右手蓝牙BLE

news/2024/10/18 12:27:13/

系列文章列表

  • 为什么要自己做一把蓝牙机械键盘
  • 用到的东西
  • 制作左手
  • 设置左右手蓝牙BLE
  • 制作右手
  • 轴体焊接及供电模块
  • 后记

BLE跟普通蓝牙相比, 功率低, 成本低, 所以用来做左右手数据的传输.

在前一章, 我们已经把左手的PCB焊接好了, 现在我们开始设置左右手的HM-10, 让两块HM-10在上电之后, 能够自动连接, 并且左手的HM-10将数据发送给右手的HM-10(即设置主从模式).

设置HM-10需要用串口发送AT指令. 如果你有USB转TTL的线, 并且使用的是windows系统, 那么这项工作会简单许多. 如果没有的话, 也有办法. 我们可以通过Arduino Pro Micro向HM-10发送AT指令.

首先拿出右手要用的Arduino Pro Micro, 弯脚排针, 装上排针, 插上几个杜邦线, 然后用胶带固定到下面的亚克力板上. 因为这块Arduino Pro Micro也是预计安装在这里的, 所以用这种方式焊, 可以避免最后这块凸起, 导致外壳合起来不严实. 针脚如果凸起, 可以用指甲刀剪掉一些.
在这里插入图片描述

焊好之后, 长这样.
在这里插入图片描述

然后拿出左手的HM-10, HM-10的VCC和GND接Arduino Pro Micro的VCC和GND, 然后TXD接Arduino Pro Micro的RXD, RXD接Arduino Pro Micro的TXD.
在这里插入图片描述

然后打开Arduino IDE, 找到示例里本项目里的"set_ble", 上传到Arduino Pro Micro里, 然后打开串口监视器, 就可以开始使用AT命令设置主从模式了. 输入"AT", 会返回"OK"(所有支持的指令可以去官网上找), 输入"AT+ROLE0", 将当前这块HM-10设置为从设备, 然后放在一边. 接着拿出右手的HM-10, 按照相同的方法连接上, 输入"AT+ROLE2".
在这里插入图片描述

“AT+ROLE2"这个指令会自动搜索并连接信号强度最强的从设备, 根据文档"主从设备第一次连接的时候,只需要简单的放到一起即可,只要主设备记住了成功连接过的从设备,那么无论周围有多少个从设备,也不会发生误连接的情况。”, 所以我们这时候把左手的HM-10上电, 两块HM-10放近些, 当两块HM-10上的红灯长亮, 就完成了主从配对.

主从配对完成后, 我们可以验证一下左手的HM-10确实给右手的HM-10发送正确的数据了. 拿出左手的PCB, 然后按照下图的方式连接. SDAM接HM-10的TXD, SCLM接HM-10的RXD, VCC和GND对应接上. 然后用USB给左手的Arduino Pro Micro供电. 这样就完成了配对.
在这里插入图片描述

为了验证左手的HM-10能给右手的HM-10发信息了. 打开示例本项目里的"test_ble", 上传到右手的Arduino Pro Micro里, 然后在左手PCB上用导线触发按键事件, 可以从串口监视器里看到左手传来的消息. FD开头, 接着是哪一行, 然后是行的状态(同样是16进制表示).
在这里插入图片描述

大功告成.

这是很关键的一步.

这里先说一下我遇到的坑, 这里的HM-10从官方的淘宝店买最好(虽然运费最贵), 因为其他淘宝店的指令, 会和官方的不太一样, 这会导致连接不上, 指令不识别等问题. 我绕了很大一圈, 买了一条USB转TTL的线, 把自己linux的电脑装成windows, 下载windows才支持的对应串口程序去设置, 还是有问题…当然, 如果你熟悉HM-10等, 可以无识, 自己折腾.


http://www.ppmy.cn/news/836874.html

相关文章

Android 9 原生设置关于蓝牙设置(二)

Setting关于蓝牙的界面 Android 9原生设置将连接(connect)相关的功能归成一类,UI定义了ConnectedDeviceDashboardActivity类来管理。本文不解析上面UI的生命周期,可参考https://blog.csdn.net/elzza/article/details/81560845。与…

Ubuntu下蓝牙设置

2019独角兽企业重金招聘Python工程师标准>>> 笔记版电脑安装了Ubuntu 18.04,可以开启和关闭蓝牙,但是手机、蓝牙音响、其他电脑蓝牙都无法扫描到它,它也扫描不到其他蓝牙设备。网上搜索了一下,应该是驱动没装好&#x…

蓝牙耳机Priority设置流程

当蓝牙耳机配对成功后,会发送一个BONDING_STATE_CHANGE的消息,在BondStateMachine状态机里会对这个消息进行处理,调用setProfilePriorty(dev)函数对当前的耳机进行优先级的设置, 把以前的设置优先级顺序Hid、A2DP、Headset改为He…

CSR8675项目实战:BlueAg蓝牙一拖二发射器

为了让CSR867x的开发更容易,现与思度科技联合推出CSR867x学习板【淘宝链接:思度科技CSR开发板】。 技术交流QQ群号:743434463 开发板会员QQ群号:725398389(凭订单号入群,赠PPT、项目源码、视频教程&#x…

蓝牙通用外观设置

蓝牙通用外观设置 在开发蓝牙设备时,需要设置蓝牙设备的外观,在代码中,通常这个关键字为appearance需要设置一个值,对于非通用设备,这个值一般为:0,对于是通用设备那么他是存在外观图标的&#…

ventura 双系统win之间切换蓝牙设备自动连接教程

ventura 双系统win之间切换蓝牙设备自动连接教程 见论坛有小伙伴在咨询ventura跟win双系统切换蓝牙鼠标无法自动连接上的问题,现在说说具体怎么设置才能实现双系统互换自动连接的教程,之前论坛上已经有大神发过类似的,并非原创,ve…

Android 9 原生设置关于蓝牙设置(五)

蓝牙配对及A2DP连接 参考:蓝牙配置流程 当点击设置界面的某个蓝牙设备时会调用DeviceListPreferenceFragment里面: 最终调用BluetoothDevicePreference.onClicked(),主要代码如下: 上面的逻辑里会根据不同的情况执行不同的…

手机蓝牙控制开关

先讲一下整体思路哈!手机肯定不能直接控制台灯的,需要一个中间物来协调,在这里我用的是51单片机(如果大家不知道也没关系,下面我还会说的)。接下来就是具体怎么控制的,其实原理挺简单的。1.手机…