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

时间:2015-06-11 09:18:12 魔新豆网
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,可以在键盘上扩展出耳麦接口,实现蓝牙键盘耳机 。比如充电指示灯,等等。总之,潜力巨大,可以继续折腾。

  完了。

本文标签: