FastBond智能可穿戴之USB键鼠转换器
将普通USB鼠标键盘,转换为BLE的hid设备以方便手机平板使用,同时能处理特殊按键操作以实现手机游戏辅助功能。
标签
嵌入式系统
USB
findie
更新2021-11-19
1038

内容介绍

起因

2020年初由于疫情原因,春节后一段时间处于居家办公的状态,对我来说基本就等于躺在床上玩手机或者平板,但是真的被安排工作的时候还是不得不打开电脑来干活,主要的原因就是手机或者平板敲字比较费劲,文档操作起来也比较费劲。为了实现长时间不离床也尝试过用otg连接键盘工作,但是使用otg线的时候手机无法充电,续航又成了问题,一个比较理想的解决方案就是蓝牙鼠标加键盘,单独购置一套蓝牙鼠标键盘不光利用率不高又嫌占地(毕竟家里已经有了一套usb键鼠)。试图在网上寻找能够实现usb鼠标键盘转蓝牙的设备,发现比买一套蓝牙键鼠还贵。正巧19年中开始学arduino编程,做一些简单的东西玩,产生了做次项目的想法。

硬件介绍

1、主控芯片:ESP32-WROOM-32。esp32是和esp8266同一个厂家的产品, 是一款通用型Wi-Fi+BT+BLE MCU 模组,功能强大,用途广泛,可以用于低功耗传感器网络和要求极高的任务。主频最高可达240 MHz,比8266拥有更多的io和外设。同样也可使用arduino环境进行开发。承担模块中的主控及BLE蓝牙部分。

2、MAX3421。这是由美信公司生产的一款usb转spi芯片,usb使用的是差分信号很多单片机都无法直接读取,此芯片负责连接usb键鼠将担任usbhost的功能,并将接受到的键鼠信息通过spi发送费esp32

3、ADXL345。这是ADI公司生产的一款常用的三轴数字加速度计,可通过SPI(3线或4线)或I2C数字接口访问。板子上只预留了一个usb接口通过三轴来模拟鼠标操作。

软件介绍:

使用arduino环境进行开发,大学毕业之后转行从事土木工作,单片机是业余爱好,arduino自带大量库接口统一十分适合业余爱好者做一些小东西。选用上边三种芯片的主要原因也是arduino用成品的库节约开发时间,毕竟光usb部分如果从头学起手册看了两页就脑壳疼。

原理图

单片机供电使用最简单的1117,增加TP4056实现锂电池充电从而更加便携,没有使用升压芯片当电池电量较低时1117将无法正常工作。实际测试普通usb键盘不用5V电压即可工作,带五颜六色灯的机械键盘除外,同时usb的差分信号为3.3电平可与MAX3421直接连接。三个芯片均为3.3工作电平之间也无需转换。额外增加了下载电路和按键,方便在不连接键盘的情况下也可用按键进行一些简单的操作,例如文档翻页或者播放暂停功能。

原理图

验证板

小样

空板

空板

主要功能原件焊接

焊接

关键性代码及说明

MAX3421使用的库为https://github.com/felis/USB_Host_Shield_2.0.git

这个库参与的人员非常多致使代码异常混乱,看起来非常费劲,库本身支持许多其他usb设备由于没有使用我删除了绝大部分只保留usb键鼠部分,为了方便操作修改了库中部分函数。

使用时修改以下几个函数中内容即可

void KbdRptParser::OnKeyDown(uint8_t mod, uint8_t key)  //键盘按下动作

void KbdRptParser::OnControlKeysChanged(uint8_t before, uint8_t after)//ctrl等功能键状态

void KbdRptParser::OnKeyUp(uint8_t mod, uint8_t key)//键盘抬起动作

void KbdRptParser::OnKeyPressed(uint8_t key)//按键持续按住动作

稍微修改一下就可以实现一键输入,或者一键大招功能,单机游戏刷怪非常好用,网游封号慎用。

 

esp32模拟ble键盘的库 https://github.com/T-vK/ESP32-BLE-Keyboard.git

基本不需要改动参考例程即可,测试支持安卓 ios PC等设备蓝牙的连接

项目中遇到的问题

键盘输入的功能初期买的成品模块,代码功能完成后疫情恢复了复工复产了,不 需要在手机上办公了,这东西就搁置了很久没打板,直到今年fastbond活动正好处于年中空闲想把这项目完成了,同时增加三轴鼠标功能,10月份pcb到手后在主要芯片焊接完成后发现无法读取usb信息了,spi可以识别芯片但是寄存器的信息无法读取,重新焊接会原来模块上也是同样问题,不确定是焊接问题(我手潮)还是芯片在焊接过程中受损了,或者是电路问题把芯片搞坏了,搁置了一个月。11月底活动方催促我完成项目,翻箱倒柜一阵之后发现一个悲哀的问题,板子找不到了

(╥╯^╰╥)

如果找不到基本就凉了

 

总结

原理图部分应该没有问题,按照模块抄的电路图,pcb布局啥的可能有问题就不发了,代码部分只实现了USB键盘ble键盘部分。现在板子找不到了也不准备重新买件,主要是MAX3421出来很多年了之前买的时候成品模块20左右,芯片几元,托疫情的福现在价格都翻倍了,商城全新芯片都接近百元了不如直接买成品键鼠转换器。等日后准备尝试用esp32+ch552的组合或者等esp32C3的arduino库完善直接驱动usb设备。

 

 

软件 & 硬件

电路图

附件下载

H2H.rar
MAX3421部分代码

团队介绍

评论

0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号