Thinkpad X1 Tablet gen2键盘改typec键线分离

在这里插入图片描述

前言

  对于整日与键盘打交道的程序员来说,拥有一把称心如意的键盘还是很重要的,我的键盘本来一直用的高斯GS104D,最近感觉敲代码和打字键程太长了,故想着找一把薄膜键盘换换手感。

  找来找去发现还是thinkpad的薄膜手感比较棒,最后我锁定了thinkpad出的小红点指点杆蓝牙键盘Kt1255,于是便在闲鱼收了一把。

ThinkPad kt1255使用体验一般

在这里插入图片描述

到手感觉手感确实不错,但是缺点也不少。

1、接口是micro usb接口,且插上只能充电,不能当有线键盘使用;

2、键盘和键帽的表面处理塑料感很强,且不耐用,很容易打油;

3、没有背光,大小写切换键也没有指示灯;

综合这把键盘的价格,感觉不是很满意,所以我又开始搜寻新的目标。

本文主角:ThinkPad X1 Tablet gen2

  本文的主角ThinkPad X1 Tablet gen2便吸引了我

1、首先这把键盘的表面处理相比Kt1255要好很多
2、其次它很薄,还带触摸板,触摸板两边的位置还可以当手托
3、最关键的是,它带背光!

而且它在闲鱼上只要140块钱左右就可以收到了,二话不说我就下单收了一把。

在这里插入图片描述

  由于这把键盘本是为ThinkPad X1 Tablet这款二合一笔记本电脑所设计的,接口是磁吸接口。所以还需要买一块转接板。

在这里插入图片描述

  这把键盘我用了几天之后又发现新的问题:

1、这块转接板的连接没有我想象中那么方便,有时候接触会有点问题,需要摆弄一下才能连得上;
2、还有一个就是这块键盘前面这块软趴趴的连接部分有些碍眼。

ThinkPad X1 Tablet gen2改造

开始改造前搜集资料

所以我又开始想有没有什么办法可以解决上述问题,然后我就在b站上看到这个视频:

https://www.bilibili.com/video/BV1ME411M7vB

在这里插入图片描述

这个up主把一块排线坏了的gen3键盘从排线飞线接出一个micro usb接口,连接倒是稳定了,但就是不够美观。

然后我又在这个视频底下看到了这位大佬发的帖子:

https://forum.51nb.com/forum.php?mod=viewthread&tid=1932134

在这里插入图片描述

我一看到这图片就感觉没错了!就是它了,它就是我想要的薄膜键盘的样子。不过这位大佬改的是gen3版本的键盘,而且也没有出详细教程,于是我只能着手自己摸索着改造我手里的这块gen2键盘。

这块键盘的磁吸接口走的是usb,我们只要把一个typec母座跟磁吸接口上对应的针脚连接起来就可以使用了。我从大佬给别人的回复中得知大佬是把上部连接部分拆掉之后,从排线飞线接到typec母座,最后在键盘的背板开槽放入typec母座,最后用碳纤维贴膜美化。

正式改造前拆解试水

我从大佬给别人的回复中还得知这把键盘主要是靠大量的胶水粘合固定的,我怕我直接拆会把我这把键盘拆坏了,所以我就上闲鱼又收了一把坏了的gen2键盘,卖家称键盘连接不上电脑,我猜测应该又是一把排线坏了的键盘。

在这里插入图片描述

收回来之后我就开始拆这把坏键盘,先从上部连接处开始拆起,从边缘处撕开包皮。

在这里插入图片描述

果然是排线断了。

在这里插入图片描述

撬开塑料盖板。

在这里插入图片描述

磁吸接口特写

当我仔细查看这把键盘的排线时,我的心凉了半截。

这把键盘的gen3版本的排线是这样的:

在这里插入图片描述

而我手中这把gen2版本的排线则是这样的:

在这里插入图片描述

好家伙,我直接好家伙。这么细的排线,以我的技术根本就焊不了啊。

难道我要就此放弃吗?

生活就像海洋,只有意志坚强的人才能到达彼岸。

我开始探索新的改造方案!

我一不做二不休,干脆把整块键盘背板都拆了下来,想研究研究这排线跟键盘主板连接处会不会比较容易焊。说实话,这个键盘的背胶是真的多,很难拆!

在这里插入图片描述

拆到一半,我就发现小红点连接处可能已经被我搞断了。

ThinkPad X1 Tablet gen2拆解图

在这里插入图片描述

整个背板拆出来的样子。

在这里插入图片描述

在这里插入图片描述

背板的上的排线。

在这里插入图片描述

键盘主板特写。

在这里插入图片描述

找到了排线跟键盘主板连接处,这个感觉应该还比较好焊,但是对于我来说还是很细小,而且这焊好之后飞线飞到键盘上边不太好处理,所以这个方案也被否决了。

思来想去,我最后决定在键盘的磁吸接口处做做文章。

确定改造方案

在这里插入图片描述

计划把线焊到上图所示位置。

在这里插入图片描述

然后将正面的磁吸针脚剪掉,磨薄,一起藏在键盘背部。

设想完毕!开搞!

关于磁吸针脚的定义我参考了这个贴子:

https://blog.csdn.net/Xiaobai__Lee/article/details/92076506

获知这把键盘磁吸接口6个针脚的定义:

上排:白(Data-),红(+5V),NC,

下排:黑 (GND),绿(Data+ ),NC(gnd)

其中NC就是No Connection的意思,无线路连接,也就是空余引脚。而白、红、黑、绿四个针脚呢就对上usb的定义线,如下图所示。

在这里插入图片描述

在这里插入图片描述

正式开始改造

接下来就开始真刀真枪改我这块键盘了。

第一步、把键盘上面连接部分的拆开。这里主要注意不要把排线弄断就好了

撬开顶部塑料盖板

在这里插入图片描述

注意排线被各种胶和塑料板交错覆盖,拆的时候一定要注意!

在这里插入图片描述

拆好之后如下。

在这里插入图片描述

剪下磁吸针脚并打磨。

在这里插入图片描述

为方便后面在背板上开槽,我们要先将背板上部分开一部分。

其实本来应该把背板整块分离,再使用线锯开槽会比较好,但是鉴于这块键盘实在是太难拆了,你要把它完好无损地拆下来实在是太难了,所以这里我们只将其上部分开一部分,要注意不要把小红点连接处弄断了,我拆的这第二把小红点连接处也还是被我弄断了。。。

在这里插入图片描述

接下来开始焊接。焊接新手,技术很渣见谅!

我第一次typec母座的D+、D-接反了,导致连上电脑有反应但是显示无法识别usb设备。不过这个倒是问题不大,把D+、D-换回来就好了。

在这里插入图片描述

在这里插入图片描述

焊好后再次测试能不能正常使用。这次就ok了,背光按键触摸都正常!

之后就开始在键盘背板开槽。

在这里插入图片描述

由于背板只分开了一部分,可操作空间较小,加上这背板是金属材质的,所以我只能用水口钳一点一点地把背板剪开。。。

在这里插入图片描述

在这里插入图片描述

丑是丑了点,但是凑活能用。开完槽以后使用e7000胶水把键盘背板重新粘好。

在这里插入图片描述

在这里插入图片描述

用热熔胶把typec母座固定好。

尽管我在背板开了槽,但是typec母座仍然会凸起,而且也很不美观,所以为了背板美观和平整,我使用4mm的abs板把开槽周围加高(用的也是e7000胶水)。

在此建议大家,超过1mm厚度的胶板还是选择pvc的比较好,使用笔刀切割很方便,abs的厚板非常难以切割。
在这里插入图片描述

再使用1mm的abs板封好。

在这里插入图片描述

下部为平衡上部的厚度使用5mm的PVC板加高,中间不填满是为了尽可能轻量化。粘好以后用320目的粗砂纸打磨一下边边角角。

在这里插入图片描述

最后用碳纤维贴膜包边美化。

在这里插入图片描述

在这里插入图片描述

最终改造效果展示

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

好的,我会尽力为您解答。首先,让我们来了解一下凑硬币问题。 在凑硬币问题中,我们需要找到最少的硬币数来凑成给定的金额。例如,如果我们需要凑成 11 元,而有 1 元、2 元、5 元三种不同面值的硬币可供使用,那么最少需要使用 3 枚硬币,即 5 元、5 元和 1 元。 下面是一种使用动态规划解决凑硬币问题的方法: 1. 创建一个长度为 amount+1 的数组 dp,其中 dp[i] 表示凑成面值为 i 元所需的最少硬币数。 2. 初始化 dp[0] 为 0,其余元素初始化为一个较大的数(例如 amount+1),表示当前面值无法被凑成。 3. 遍历硬币数组 coins,对于每个硬币,遍历 dp 数组,更新 dp[j] 的值为 dp[j-coins[i]]+1,其中 j>=coins[i],表示当前面值可以被凑成。 4. 最终 dp[amount] 就是凑成 amount 元所需的最少硬币数,如果 dp[amount]>amount,则表示无法凑成给定金额。 下面是使用 JavaScript 实现该算法的代码: ```javascript function coinChange(coins, amount) { const dp = new Array(amount + 1).fill(amount + 1); dp[0] = 0; for (let i = 0; i < coins.length; i++) { for (let j = coins[i]; j <= amount; j++) { dp[j] = Math.min(dp[j], dp[j - coins[i]] + 1); } } return dp[amount] > amount ? -1 : dp[amount]; } ``` 这个函数接受两个参数,一个是硬币数组 coins,另一个是需要凑成的金额 amount。最终返回凑成 amount 元所需的最少硬币数,如果无法凑成则返回 -1。 例如,若 coins = [1, 2, 5],amount = 11,则 coinChange(coins, amount) 的返回值为 3,表示凑成 11 元最少需要 3 枚硬币。 希望这个简单的解释和代码能够帮到您,如果您还有其他问题,请随时问我。
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值