数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 84|回复: 7

[外设] 做了一个类似deskhop的鼠标自动跟随kvm

[复制链接]
发表于 2 小时前 | 显示全部楼层 |阅读模式
最近做了一些小制作,主要是练练手,防止老年痴呆。好久没发帖了,慢慢的发上来。
下一贴,可能是Gameboy+NES掌机。立帖为据,争取不鸽。



一、灵感
之前无意之间发现了一个项目https://github.com/hrvach/deskhop
他的主要作用就是在鼠标移动的时候,自动判断是否要切换kvm屏幕,并且把键盘也切过去。
但和老式的kvm不同,他实际上是对两套模拟出来的鼠标和键盘进行分别控制,避免了手动切换和切换的延迟。
这个老外做的很成熟,配套的在线配置、外壳、pcb、文档、代码都很齐全。
我也成功的仿制了一个。但我感觉成本有点高。毕竟用了两个树莓派pico



二、我的方案
树莓派pico+2个CH9329。CH9329大概2块一个吧,成本比较低,而且功能比较完善,通信协议也比较简单。


CH9329的介绍在这里:https://www.wch.cn/products/CH9329.html
CH9329是一款串口转标准USB HID设备(键盘、鼠标、自定义HID)芯片,根据不同的工作模式,在电脑上可被识别为标准的USB键盘设备、USB鼠标设备或自定义HID类设备。该芯片接收客户端发送过来的串口数据,并按照HID类设备规范,将数据先进行打包再通过USB口上传给计算机。通过提供的上位机软件,用户也可自行配置芯片工作模式、串口通信模式、串口通信波特率、多种超时时间、VID、PID,以及各种USB字符串描述符。
我个人感觉CH9329就是CH552G加上了个固件,引脚完全一样。

CH9329优点挺多的,比如可以修改地址,一个串口可以挂多个芯片通信(需要手动分时通信)、有上位机可以进行配置、串口速度可调等。基本上满足我的需要。CH9329有一些缺点吧,比如回报率不会高于500hz。

三、原理图
主要就是利用树莓派pico延伸出2个usb host,(我发现左侧的GPIO14、GPIO15始终不能正常连接usb设备,还没研究出来)
pico的uart1接两个CH9239。修改了地址,分别是0x30/0x01。
两个led用来指示当前是哪个屏幕在输入。
左右两个typec接口都可以进行供电。


四、PCB
PCB相对很简单,采用了0.8mm的双面板。BOM已在PCB上标注


五、焊接后的成品


六、代码
https://github.com/stevenpaul007-creator/pico-ch9329-kvm
主要的逻辑:
判断左右typec是否接入:
a. 如果只接入了一个,会按照相对坐标鼠标进行上报;
b. 如果接入了两个,按照绝对坐标鼠标进行上报。


七、如何编译
1. 如果不修改电路,可以直接下载固件
https://github.com/stevenpaul007-creator/pico-ch9329-kvm/releases

2. 如果需要自己编译,需要安装vscode,platformio,然后build,upload

八、外壳
https://github.com/stevenpaul007 ... vm_3DShell_v1.0.zip


九、已知问题
1. 左侧的usb口无法识别usb设别,目前还不知道为什么。希望有大神帮忙分析分析,不甚感激。
我使用的优联接收器绑定了鼠标和键盘,目前一个usb口还够用
2. 绝对坐标鼠标没有加入“加速”设计,未来可能会加上。
3. CH9329在使用绝对坐标鼠标时,不支持linux下的点击事件,这是CH9329或者linux的问题。已经在代码上做了弥补。在上报绝对坐标鼠标的点击事件同时上报相对鼠标的点击事件。
4. 目前还不支持多媒体键,比如播放、计算器什么的。可能是pico的代码没写好。


十、回顾
主要的时间都花在写代码上了,毕竟好久没有写C语言了,有些还混搭了C和C++。尤其写指针的时候,经常出错。
还有一大块时间在看datasheet上,CH9329的datasheet写的还是很全的,只是有些软件版本的迭代更新,datasheet上没有体现出来。比如,CH9329会主动给MCU上报键盘指示灯的状态。
有一些代码是AI生成的,总体上还是能用的。

PCB和3d外壳都是JLC上白嫖的,在这也感谢JLC。毕竟白嫖了这么多年了,还是第一次感谢JLC。希望JLC能多给一些3d打印的机会~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
发表于 2 小时前 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 2 小时前 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 1 小时前 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 半小时前 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

 楼主| 发表于 半小时前 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

发表于 17 分钟前 | 显示全部楼层
游客请登录后查看回复内容
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-12-10 13:23 , Processed in 1.185602 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表