跳到正文
Hacker News· imrishabh18·· 5 天前AI 评分34

从聊天窗口到桌面:用 AI 和 tscircuit 设计的分体键盘

From chat window to my desk: An AI-designed split keyboard

AI 导读

一位开发者用 AI 加 TypeScript 和 tscircuit,基于 Foostan 的 Corne 设计出可用的 RP2040 分体键盘,配备 Choc 轴、USB-C、两半之间的 TRRS 连接和配套外壳。AI 负责编写和修改代码,tscircuit 的自动布线器快速完成两半铜线与过孔布线,外壳与 PCB 共用同一套坐标。成品打字测试为 91 WPM、99% 准确率。

正文 · AI 翻译

2026年10月11日5分钟阅读

用AI、TypeScript和tscircuit构建RP2040 Corne及可打印外壳。

我想看看能否把与AI的对话变成一把能用的键盘。我从Foostan的Corne入手,让AI复制PCB尺寸和按键布局,然后在tscircuit中为它设计一个可打印外壳。

最终我做出一把可用的RP2040分体键盘,配备Choc轴、USB-C、两半之间的TRRS连接,以及配套外壳。我的工作是描述我想要什么、检查预览,并不断要求修改直到装配合适。AI负责编写和修改代码。

在tscircuit中,设计用TypeScript和JSX编写。每个按键都是可复用组件,带有位置和旋转的props。连接也用代码编写。以下是项目中的一个小例子:

tsx

<ChocKey
  name={component.name}
  pcbX={component.pcbX}
  pcbY={component.pcbY}
  pcbRotation={-(component.pcbRotation ?? 0)}
/>
<trace from=".SW1 > .pin1" to=".U1 > .pin14" />

ChocKey组件将导入的热插拔插座封装与轴的机械几何形状结合在一起。可拆卸轴被标记为doNotPlace,以便与工厂组装分开安装。

无需漫长等待的布线

组件和连接就位后,tscircuit的自动布线器处理了两半的铜走线和过孔。在tscircuit中为这块板布线很快。我试了Astra,然后失去了耐心,因为它花了3个多小时还在继续。能够通过tscircuit自动布线器快速重新布线,让尝试更改和检查结果变得更容易。

The Corne panel in tscircuit’s PCB viewer, showing both keyboard halves, board outlines, pads, and routing

tscircuit PCB查看器中的面板布局,两半键盘并排显示。

制造限制也在同一份代码中:

tsx

<board
  outline={outline}
  minTraceToHoleEdgeClearance={0.21}
  minViaHoleDiameter={0.2}
  minViaPadDiameter={0.45}
>
  {layout.components.map(renderComponent)}
</board>

对于外壳,我要求AI做一个扁平外壳、薄壁、轴板和支撑以减少形变。它使用PCB的外形、安装孔和按键位置,因此所有内容共享相同坐标。在把板子送去制造之前,我可以在tsci dev中检查PCB和外壳如何装配在一起:

tsx

import { assembly } from "tscircuit"

<assembly.device name="CORNE_LEFT">
  <CorneHalf side="left" />
  <CorneEnclosureParts side="left" />
</assembly.device>

在这个包装器内部,外壳和板是assembly.printedpart元素,带有生成的CAD几何形状。底座和板导出为单独的STEP文件,用于切片和3D打印。

对于CAD工作,CLI还可以将外壳的打印部件一起导出为STEP装配体。对于左半部分:

Shell

tsci export left.circuit.tsx \
  --format assembly-step \
  --output corne-left-enclosure.step

assembly-step格式将打印部件保留为一个装配体中的独立命名部件。使用--format step可导出PCB及其电子元件的STEP。

A 3D preview in tscircuit of one Corne keyboard half, with the PCB inside the black enclosure and switch plate

PCB和黑色外壳在tscircuit的3D查看器中一起预览。

当需要更改时,我可以直接要求:“把板做平”、“使用现有安装孔”或“给线缆留出空间”。然后我会在订购或打印任何东西之前检查更新后的预览。

我把导出的STEP文件导入Bambu Studio,为3D打印准备外壳和轴板。

The black Corne enclosure base and switch plate arranged on the build plate in Bambu Studio’s 3D preview

Bambu Studio中的外壳和轴板,准备打印。

在制造之前,我还在tscircuit的3D查看器中查看了包含两半键盘的面板。

The Corne PCB panel rendered in tscircuit’s 3D viewer, showing both keyboard halves and their components

制造前在tscircuit中渲染的3D面板预览。

从制造到首次固件测试

一旦我对设计满意,就把Gerber和钻孔文件、分组BOM以及包含两半的面板贴片文件发给PCBWay。制造文件打包进一个ZIP:

Shell

tsci export panel.circuit.json --format gerbers --output corne-fabrication.zip

The assembled PCB panel received from PCBWay, with both Corne keyboard halves still attached

PCBWay发来的面板,包含两半键盘。

AI 还生成了固件。刷写两半只需拖放:我在 bootloader 模式下通过 USB 分别插入每一半,然后把它的固件文件拖到出现的驱动器上。两半都刷好后,我把它们连接起来进行第一次测试。

Both Corne PCBs connected together, with their RGB LEDs glowing during the first test after flashing the firmware

刷写完 AI 生成的固件后的第一次测试,两半的 LED 都亮了。

完成的键盘

固件运行起来后,我装上了轴体和键帽,并把两半放进它们黑色的打印外壳里。就这样:我桌上出现了一把能用的键盘。

The finished Corne split keyboard with black keycaps and black printed enclosures, connected by a cable

The finished Corne split keyboard on my desk, with black enclosures and keycaps lit by blue LEDs

再看一眼完成的键盘,蓝色背光已亮起。

快速打字测试

91 WPM,准确率 99%。键盘能用;离我的最好成绩还有点距离。😅

Typing test result on the finished Corne keyboard: 91 WPM and 99% accuracy over 15 seconds

A man enthusiastically typing on a keyboard

疯狂的时代就在前方,你可以在不懂一行代码、也不是硬件专家的情况下,把一个产品从提示词变成现实。去看看 tscircuit.com

探索电路板和外壳源码。

来源:Hacker News · imrishabh18.github.io