十一假期,今天早上我翻出一个搁了很久的单片机项目想做实验——不为别的,就想亲自感受一下现在的 AI 到底能把活干到什么程度。模型用的是 DeepSeek V4.1 Flash,9 月刚发布,图它便宜(输入 $0.30/百万 token)。
先交代一下实验对象:Stream Deck Mini 是 Elgato 出的一块小实体键盘,6 个按键,每个键就是一块小 LCD 屏,USB 一插即用(标准 HID 设备)。它本来是给主播切场景、绑快捷键用的,但按键能显示任意图案、也能上报按键事件——拿来做常驻监控面板,是块现成的好料。
Stream Deck Mini 监控面板实拍:CPU、温度、负载、内存、磁盘、运行时长,六键两页,长按熄屏
我新开一个工程,直接把 Stream Deck Mini 的驱动库拖进来,建了个子目录 mybox,然后用 OpenCode 下了一条任务指令:
读一下本工程,实现能显示系统 CPU、Load、温度信息,要能翻页,长按灭屏,再按亮屏,图标显示要美观。
十几分钟不到,原型就出来了:Stream Deck Mini 挂在我那台 8 核 ARM 小主机上,成了一个常驻的系统监控面板——任务指令里列的功能,一条不少全都有。跑通之后我 top 了一下,排在最前面的不是哪个服务,而是这个监控程序自己:python 进程占着约 3% 的 CPU,比它监控的大部分服务都费电。一个监控工具,把自己变成了最该被监控的对象。
于是我提了个更高的要求——降低它对 CPU 的占用。接下来一个小时,是 AI 在给我方案,而我在 配合 它(注意,是配合):它让我测按键灵敏性、对比不同方案的优劣,一步步逼近,最后给出了一个我过去想都没想过的做法——用阻塞式读取按键,替代我一直用的轮询。落地效果很好,一句话:更跟手,反而更省 CPU,空闲占用从 3% 压到 0.4%。
这次实验给我最大的一句话感受是:代码人写不过 AI,这件事不可逆——人应该主动去适配 AI 的任务执行范式,而不是反过来。 整个过程里最值得单独讲的,是中间那个坑:在 SDK 里把「非阻塞读」改成「阻塞读」会死锁。它不只属于 Stream Deck,任何「轮询 → 事件驱动」的改造都会遇到。下面拆开讲。
[Read More]