蓝牙透传实验_USB键盘转蓝牙键盘的设备

本文介绍了一种使用Arduino UNO、USB Host Shield和HID蓝牙芯片将USB键盘转换为蓝牙键盘的实验。通过切换键盘到Boot Protocol模式,解析按键信息并按照蓝牙模块格式发送,实现USB键盘到蓝牙的透传。实验中提到了可能存在的问题,如音量键失效、并非所有键盘支持Boot Protocol等,并分享了一个利用USB逻辑分析仪找出软件错误的故事,强调了底层传输验证的重要性。
摘要由CSDN通过智能技术生成

键盘可以算作PC上最古老的设备了,它的出现使得人类可以用非常简单的方法与电脑进行交互。同样的,由于各种历史原因,键盘也是PC上最复杂,兼容性问题最多的设备之一(类似的还有硬盘,不过从IDE到SATA的进化过程中,标准明确,兼容性问题少多了)。


网上流传着一篇DIY USB键盘转换为无线的文章,非常不幸的是,那篇文章是错误的,很明显的错误是作者认为键盘是单向传输,而实际上传输是双向的。比如,USB每次通讯都需要HOST和SLAVE的参与,即便是PS2键盘的通讯也同样如此。此外,大小写键之类切换是主机端进行控制的。


硬件部分Arduino UNO , USB Host Shield 和 HID 蓝牙芯片。强调一下这里使用的是 HID 蓝牙芯片,并非普通的蓝牙串口透传芯片。关于这个模块可以参考我在【参考1】中的实验。


硬件连接很简单,USB HOST Shield插在 Arduino上,然后VCC/GND/TX/RX将Arduino 和 HID蓝牙模块连接在一起。

d35e570b1458c8be7c4d66b60ae55bfa.png

原理:首先,为了通用性和编程简单,我们用USB HOST发送命令把键盘切换到Boot Protocol 模式下。这样即使不同的键盘,每次发出来的数据也都是统一的格式。然后,我们直接读取缓冲数据就可以解析出按键信息了。最后,将取下来的按键信息(ScanCode)按照HID蓝牙模块的格式要求

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值