一、项目简介

“构思源于生活,东西始于懒散。” 全体造型外观参阅了最近比较火的夫妻游戏《双人成行》第一关里边那个吸尘器的推杆开关,结构中选用阻尼器/滚珠轴承等器材,使其非常具有质感和手感。功用上我构思不能只有电脑开关这么简略地一个功用,所以内部选用CH32V103、霍尔编码器,振荡马达驱动等外设构建了一个具有开关/线性操控,力感反应推杆,经过自界说USB TYPE-C接口和HID协议,完结了对电脑的开关机、音量操控、鼠标/键盘/摇杆模仿、乃至能够针对不同应用完结方便键等功用。

二、硬件构成

我认为一个想法要有完好的规划,不能只停留在开发板上,所以在前期我运用开发板完结了软件功用的完结,后面又规划并打样了PCB和机械结构,把开发板上仅有的一枚CH32V103焊到了自制的PCB板上,安装到3D打印的DEMO模型中,所以比较晚才完结提交项目。接下来我将从硬件和机械两部分进行介绍。

首先是硬件部分,全体的硬件架构如下图所示:

根据CH32V103的多功用推杆规划

作为一个推杆,编码器是必须的,为了结构简略而不失分辨率功用,我挑选了12bit分辨率的AD5600线性旋转霍尔传感器,经过IIC与主控CH32V103相衔接。为了丝滑推感同时增加可玩性,我增加了DRV2605和线性马达作为力反应,DRV2605内置多种震感波形,结合线性马达能够供给多种力反应特性,也经过IIC与主控相衔接。

根据CH32V103的多功用推杆规划

在推杆一端,我规划了一个DRV2605带灯的微触开关,微触开关的开关量,结合摇杆的线性操控量能够完结许多功用。在推杆本体中规划了两个并联的LED作为装修灯光,经过定时器能够完结呼吸灯作用。

根据CH32V103的多功用推杆规划

在对推杆怎么衔接电脑这块,我考虑了好久,为了让推杆能够完结电脑开关机功用,最简略的方法便是将一个开关输出量与主机开关键并联,直接操控短接就能开机了。但这也就意味着要有两根线直接与主机相连。为了让推杆和电脑还能走USB协议,那么也就还要至少接上DM DP GND三根线,再想获得下电脑当前开机状况,那就还得再接两根线到主机的POWER LED上(或许你会说,为啥不用USB衔接状况判别?因为刚开机那会儿还没建立USB衔接,这个状况不可靠啊),算下来这就七根线了,别的推杆模块也需求供电,要么外接电池,要么再接一个VCC到电脑上,那就需求8个线了,其间4跟能够用USB micro接口,但别的四根就很难受了。

或许你会说,为啥不用USB来启动呢?我也想到了,但是查了不少资料,都说现再新的电脑都不支撑USB远程唤醒关机了的电脑,想想也是,系统都关了,USB通讯也建立不起来啊,(当然也是有部分电脑能够经过BIOS加载USB设备来启动,但我的电脑不支撑。。)

所以在简洁漂亮性的寻求下,我的目光聚焦到了USBType-C接口,标准Type-C接口有24P,其间包含两组USB3.x的差分数据线,但那个线间距是真的小啊,并且半插半帖的衔接器也欠好焊,所以我挑选了12P的取舍版Type-C接口,其间包含一组USB2.0的接线,一组CC操控引脚和SBU操控引脚,后面这两组引脚一般用于正反差辨认、快充协议上,而我这里用不到这些功用,就正好代替成主机开关键和开关机状况读取功用,这样一个Type-C接口就搞定了8根线的需求。为了也能正反插,在中间用二极管搭了个换向处理结构,这部分电路如下图所示:

根据CH32V103的多功用推杆规划

整个硬件原理图如下图所示:

根据CH32V103的多功用推杆规划

layout并打个样板:

根据CH32V103的多功用推杆规划
根据CH32V103的多功用推杆规划

当然,界说了Typr-c的接口,对应的数据线也需求特殊处理下,才干支撑开关机功用,不过上述规划好的地方便是 一般的数据线接上推杆,也能够进行HID通讯,不妨碍USB的功用;特殊处理过的数据线也能够当做一般的USB Type-C线来用,妙哉吧~

根据CH32V103的多功用推杆规划

接下来是机械结构。在构思结构时,最开端我想象是导播室里边那个切换台的推杆,那个质感不错,仅仅感觉元素少了许多,所以就又找了找,正好刷到《双人成行》的游戏视频,看到第一关里边夫妻变小了,在家里闯关时,需求一起拉动吸尘器的推杆,这推杆不正是我所想象的么!

根据CH32V103的多功用推杆规划

所以以此为原型,我规划了本项目的推杆的ID,如下图所示

根据CH32V103的多功用推杆规划

光有外观还不行,还要有内部堆叠,为了完结柔顺并有推动阻尼感,我选型了好几款阻尼器,终究挑选了一个适宜力度的,规划了内部堆叠,蓝色高亮部分为阻尼器,并增加了四个滚珠轴承来减小轴上不可控摩擦,如下图所示:

根据CH32V103的多功用推杆规划

3D打印了个DEMO,试了下手感,那种顺滑舒服只可意会不能言传啊!

根据CH32V103的多功用推杆规划

因为手上只有开发板上一颗CH32V103的芯片,所以只好给它做个心脏移植手术了:

根据CH32V103的多功用推杆规划

移植好了,仅仅烧写器还是需求用开发板上的,上电测验,功用一切正常:

根据CH32V103的多功用推杆规划

三、软件说明

开发渠道:MounRiver Studio

硬件MCU:CH32V103R8

代码库房:gitee.com/zealerlu/mu…

软件部分的全体的功用规划和程序规划如下思想导图所示:“构思源于生活,东西始于懒散。”

根据CH32V103的多功用推杆规划

软件部分首要逻辑都体现在上面的思想导图中。因为在开发AS5600外设时,要是用IIC,本认为CH32V103的会比较好用,也看到有网友用起了他的硬IIC,但我经过好久的调试,还是卡在初始化之后,总线处于busy状况,硬件排查了信号也没啥问题,便是欠好使。

四、项目演示

本项目规划的多功用推杆依靠HID协议,能够完结键盘输出任意字符、鼠标点击移动操控、系统操作、各种软件方便操作等,实用性、漂亮性和可玩性极高。多功用推杆的照片:

根据CH32V103的多功用推杆规划
根据CH32V103的多功用推杆规划
根据CH32V103的多功用推杆规划