给键盘屏幕加点乐子!给键盘加上打字统计、像素宠物、AI动画
DP104这把键盘,轴和键帽之前熊猫就收拾过一轮了,改造记录也发过。硬件弄完总觉得差点意思,差就差在键盘上那块8×24的点阵小屏。官方驱动里自带那几个动画,翻来翻去就那样,想放点自己的东西必须的用VIA的网页驱动,官方是没有自己的驱动的,玩两下就腻。
image.png所以这段时间写了套Windows小工具,也算是弥补官方没有本地驱动的坑,顺便加了开机自启动和后台托盘状态,这样就能真正作为键盘驱动用了。
先说思路
因为官方并没有提供固件的开源文件,为了避免键盘被写坏了,所以固件肯定是不碰。切内置模式、调灯效这些走HID通道,自己画的动画帧则从USB串口喂进去,界面拿Tk画了个像素游戏风的壳,点阵工坊、今日总览、小屋设置三个页面,窗口一关就缩进托盘里待着。
自检测因为走的是串口,所以也加了程序的自检测,插上键盘打开程序就能自动检测到DP104键盘,不需要自己折腾,很方便。
逆向.tabml
想自己喂帧,那得先弄明白官方格式长什么样。于是熊猫让AI帮我逆向了一下官方给的文件,最后看了下分析报告,.tabml拆开其实很简单,头32字节,后面就是一帧接一帧的RGB数据,一帧576字节。576除以3,正好192颗灯珠,跟DP104的8X24点阵屏对得上。
点阵屏比较麻烦的是帧数上限,为了搞清楚这块屏幕的上限,熊猫的办法比较笨,写脚本分批往真机上发帧,前前后后发了2200个分片,全部验证完发现固件就是200帧的硬上限。所以程序里也照这个数卡死,多传了也是白传。
点阵工坊
内置特效给了12种循环动画,火焰、心跳、心电图、雨滴、扫描光、波纹、彩虹流动、星河都在,点一下就走HID生效,不占串口。
内置特效想自己画也行,编辑器就在点阵工坊里面,这块屏是8×24的,一颗灯珠就是一个格子,拿画笔往上面点就可以了,画错了可以撤销,也可以开着上一帧的残影对着描。
动画编辑不想画的话也没关系,直接从素材下手,GIF直接丢进去就可以了,程序会照它原本的帧时长来采样,APNG、动画WebP这些动图,还有普通图片、序列帧,也都是认的,官方的.tabml照样能吃。
图片生成图片生成
AI 工坊
整个程序里面熊猫自己觉得最好玩的一块。
接口这块随便接,只要兼容Chat Completions就可以了。用法的话就是你一句话,说你想要个什么,AI会先去看这个主体有什么特征、做什么动作、循环怎么衔接,然后再一帧一帧往外画给你,画完了直接就能传。
AI生成至于难不难,要看你画的是什么。移动的角色最费事,AI得先出6到8张姿态图出来,程序再拿它展开成64帧。长景滚动的话是另一套做法,得给到48到96列。原地的小动画最省事,8到16张分镜就够了。
熊猫顺带说个固件的坑。色相接近零、明度又低于20的这种彩色像素,固件会一律给你渲染成红色,AI画个粉兔子,上去就变红块子了。所以程序会在出图之后先在本地钳一遍色,然后再往键盘传。
文本槽文本槽和灯效就简单了,文本槽5个,一个30字符ASCII,你写什么它就显示什么,写进去会自动转大写。
灯效控制为了方便控制,熊猫把键位和灯条的灯效控制也加了进来,键位RGB有45种,底部灯条43种,不需要去VIA的驱动界面,通过这个程序也能直接控制了。
今日总览
这页主要是看数据。
今日总览图今天按了多少下键,WPM跑到多少,一眼就能看到。WPM是按5个键折一个词来算的,看看趋势就行,别太当真,还顺便做了张104键的逐键热力图,每天清零。
小屋设置最后则是小屋设置了,前面提到的AI动画生成需要在这里设置AI模型和KEY,同时这里也可以设置定时场景,比如到了晚上几点自动将灯光调亮之类的,顺便还做了个打字里程碑,没啥用,纯玩玩。
写在最后
到这里,DP104的折腾记录就算齐了,硬件那篇收拾的是轴和键帽,这篇补上了软件。
键盘一览花这么多Token和时间做这个东西,说白了就是自嗨,毕竟DP104的用户肯定是没有什么ROG夜魔这个多的。但那块屏就长在键盘上,我一直觉得空着可惜,放个打字统计,或者蹲一只像素宠物,总比官方那几个循环特效转来转去要强。项目的开源地址在https://github.com/Panda-995/DP104-Studio ,有想法提Issue,想加功能直接PR,觉得有意思的话帮熊猫点亮小星星。
关注熊猫作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

校验提示文案
校验提示文案
校验提示文案
校验提示文案