欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Cherry 樱桃 G84-4125 加装蓝牙模块

程序员文章站 2023-09-26 23:49:06
Cherry 樱桃 G84-4125 加装蓝牙模块淘宝上有很多现成的蓝牙模块卖,但不是所有的蓝牙模块都适用于改装蓝牙键盘。根本的原因是蓝牙协议分成不同的profile,蓝牙协议的Profile定义了设备如何实现一种连接或者应用,有四种... 15-07-08...
Cherry 樱桃 G84-4125 加装蓝牙模块

一、蓝牙模块

淘宝上有很多现成的蓝牙模块卖,但不是所有的蓝牙模块都适用于改装蓝牙键盘。根本的原因是蓝牙协议分成不同的profile,蓝牙协议的profile定义了设备如何实现一种连接或者应用,有四种是基本的profile:gap/sdap/spp/goep。淘宝上卖的蓝牙模块大多是支持spp profile。spp全称是serial port profile,即串口,主要用于交换数据,不适用于键盘设备。从技术角度讲,我们也可以用这种spp蓝牙模块来改装我们的键盘,这种键盘需要在pc端安装相应的驱动才能实现pc与改装后的键盘的连接。使用spp蓝牙模块的好处是技术成熟,成本低。缺点是通用性差,需要写pc端驱动,如果蓝牙键盘与新电脑连接需要重新安装驱动。而且使用spp蓝牙模块的键盘也不能用于连接手机。一般蓝牙键盘使用的是hid profile,全称是human interface device profile,即人机接口设备profile,主要用于鼠标,键盘,游戏杆等设备。因为hid profile是蓝牙协议中支持的标准profile,所以只要是支持hid profile的蓝牙设备都可以互联。张大妈常推荐的罗技k480就是使用hid profile的蓝牙键盘,所以罗技的k480可以同时和多款手机配对互联。

淘宝上有卖采用csr芯片的hid蓝牙模块,价格便宜。原本我也想使用这款,但是联系卖家后,卖家不提供技术支持,文档也没有,更不用说例程。最后在github上找到了一个键盘开源工程tmk_keyboard,里面使用的蓝牙模块是bluegiga生产的wt12蓝牙模块。这款蓝牙模块使用的也是csr的芯片,bluegiga公司在标准的蓝牙profile上封装了自己的协议栈iwrap,用户通过iwrap控制wt12模块。wt12的售价比较高,淘宝上也有卖wt12的,价格大概在300元人民币。我个人建议不要在淘宝购买,如果想购买可以试试bluegiga官网上推荐的几个网站,一片的价格大概在90元人民币左右。所以如果各位值友有兴趣改装蓝牙键盘,最好是上淘宝买到有技术文档或者技术支持的csr蓝牙模块。

二、电源总成

这次要改装成无线键盘,整个键盘的电源需要从usb单供电改成电池和usb双供电。手里正好有块多余的索爱手机电池,大概900ma的样子,用来给键盘供电绰绰有余。 锂电池充电电压是4.2v,输出3.7v,需要一个5v输入/4.2v输出的充电模块和一个3.7v升5v的升压模块给主控板供电。wt12蓝牙模块是3.3v的电源,需要一个5v转3.3v的降压模块。 另外,wt12和主控板使用串口通信,但是电压不同,还需要一个电平转换模块。

这么一堆转换模块下来,整个键盘系统就太复杂了,键盘内部的空间不一定够用,而且各种转换模块的额外电源消耗太多,必须优化。

avr的单片机是可以5v或者3.3v供电的,但是使用3.3v供电的时候需要降级主频。主控板上的avr型号是atmega32l,是atmega32的低电压版本,标称主频最高8mhz。由于avrusb协议栈要求主频最低是12mhz,已经超频使用了,如果再用3.3v供电,有可能达不到avrusb协议栈要求的12mhz。不过运气不错,3.3v上12mhz晶振跑avrusb完全没有问题。 这样整套系统的电源模块就可以精简成:1. 锂电池充电模块。2.3.7v转3.3v电压转换模块。

为了让键盘能够继续使用usb接口,需要avr能够检测usb线缆是否插入。检测逻辑是:如果有usb线缆插入,则优先使用usb接口,如果没有usb线缆插入,则使用蓝牙连接。所以从usb的+5v引脚引了一根线到avr的gpio。usb的+5v不能直接连到3.3v的gpio上,所以通过一个5v-3.3v的电压转换模块。

画了个草图,大家凑合看一下。

Cherry 樱桃 G84-4125 加装蓝牙模块

三、调试

我买回来的wt12的iwrap协议栈是4.0的,现在wt12支持的最新iwrap协议栈是5.0,所以用串口升级了wt12的固件。升级固件及升级方法可以在bluegiga的官网找到,按照步骤做就可以了。

升级完固件后需要对wt12做初始化设置。其实这部分工作可以通过主控板完成,但是我懒了,直接用串口设置好了。具体的初始化和设置方法可以参考这个网页。

由于加装了蓝牙模块,主控板原有的代码必须改写来支持蓝牙模块。主控板是从淘宝买的,楼主没有源程序只好自己先扒pcb板,然后扒键盘矩阵,还好在github上找到了键盘开源工程tmk_keyboard,省了写键扫代码。楼主在tmk_keyboard基础上替换了串口驱动,改了键映射,加了一丢丢蓝牙搜索功能。完整代码可以在这里找到。

四、组装

g84-4125的内部空间很扁平,只有上半部一小部分稍微厚一些可以放下电池。电池勉强塞进主控板与键盘底板间的缝隙。

Cherry 樱桃 G84-4125 加装蓝牙模块

Cherry 樱桃 G84-4125 加装蓝牙模块

锂电池充电模块。

Cherry 樱桃 G84-4125 加装蓝牙模块

键盘底板的横向沟槽里放置蓝牙模块,用热熔胶固定。

Cherry 樱桃 G84-4125 加装蓝牙模块

键盘底板的横向沟槽里放置电压转换模块,用热熔胶固定。

Cherry 樱桃 G84-4125 加装蓝牙模块

在原有的线缆出口放置电源开关。

Cherry 樱桃 G84-4125 加装蓝牙模块

最后一张,总体布局图。

Cherry 樱桃 G84-4125 加装蓝牙模块

全部模块放置完后,由于电池有点高,键盘的上半部不能完全闭合,不过不影响使用。

Cherry 樱桃 G84-4125 加装蓝牙模块

五、使用

键盘会优先搜索原先配对成功的设备,如果配对不成功会等待其他设备的配对请求,直到完成配对。打开键盘开关,我的q10,同事的三星note2和笔记本电脑都均可将键盘识别成蓝牙hid设备,配对成功后打字输入没有延迟。

电池充满大概需要3个小时,由于没有留电池充电指示灯,所以每次判断是否充电完成只能靠蒙,不过电池续行还是挺给力的,每天工作时间使用,下班关掉电源开关,可以连续使用一个星期。因为没有使能蓝牙和单片机的低功耗功能,所以一个星期的续航还是可以接受的。

不足的是,没有挖掘出蓝牙模块的全部潜力,比如没有动态切换设备功能,就像逻辑k480那样可以在3个设备之间*切换;比如wt12模块还支持a2dp profile,可以在键盘上扩展出耳麦接口,实现蓝牙键盘耳机 。比如充电指示灯,等等。总之,潜力巨大,可以继续折腾。

完了。