agentee

从这里开始

你的第一块电路板

从空目录到经过检查、布线的双层电路板及板厂制造文件包:电路板规格、KiCad 元件、原理图、布局、布线和 Gerber 文件。

本指南通过手动构建一个小电路板,每次一个命令:一个两针电源排针、一个电阻、一个绿色 LED 和一个去耦电容,位于双层 JLCPCB 电路板上。这是智能体遵循的相同序列,因此自己执行一次会使您更容易理解智能体稍后在做什么。

您需要 PATH 上的 agentee 和已安装的 KiCad 库。如果两者都没有,请参见安装。

启动项目

项目是一个目录。其下方具有已知后缀的所有内容都会被加载。

mkdir blinky && cd blinky
agentee new board blinky
agentee check

new board 写入 blinky.board.toml:50 乘 30 mm 轮廓,JLCPCB 双层 1.6 mm 叠层,一种过孔类型和四个网络类。检查加载它并报告无内容:

0 sims, 0 layouts, 0 schematics, 1 boards, 0 symbols, 0 footprints: 0 errors, 0 warnings

当项目干净时,check 退出码为 0,有错误时为 1,文件无法加载时为 2。该退出码使智能体或 CI 能够对其循环。

将电路板调整为正确尺寸

四个元件不需要 50 乘 30 mm。缩小轮廓:

agentee edit board blinky outline --size 30,18 --corner-radius 1mm

agentee edit 为您重写 TOML,保留其中的任何注释,并对触及的文件运行检查。对于如此简单的电路板,不要缩小太多:每个电路板都在其丝印中携带 agentee vX.Y.Z-HASH 版本,检查需要一个约 23 乘 1.2 mm 的清晰条带来放置它。在 20 mm 电路板上,它会报告 watermark 错误,并且板厂包被拒绝。

导入元件

agentee 读取 KiCad 库,而不是自带一套。搜索库,然后导入符号及其应使用的封装:

agentee search symbol conn_01x02
agentee import symbol Connector_Generic:Conn_01x02 --footprint Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical
agentee import symbol Device:R --footprint Resistor_SMD:R_0603_1608Metric
agentee import symbol Device:LED --footprint LED_SMD:LED_0603_1608Metric
agentee import symbol Device:C --footprint Capacitor_SMD:C_0603_1608Metric
agentee check

搜索的每个词都必须匹配 Library:Name。导入的内容以 TOML 格式写入 symbols/ 和 footprints/。现在检查有内容要报告:

warning: ./footprints/R_0603_1608Metric.fp.toml: R_0603_1608Metric silk: silk lines under the fab minimum width 0.15mm: 2, thinnest 0.12mm

KiCad 绘制 0.12 mm 的丝印,而 JLCPCB 要求 0.15 mm。打开每个封装,将其丝印图形中的 width = 0.12 改为 0.15,或者让智能体来做。这是使用 agentee 的典型工作形态:诊断指明文件、条目和数值,修复只需一次编辑。

编写原理图

agentee new schematic blinky

起始文件只是一个名称。在其下方添加 board = "blinky",以便原理图知道存在哪些网络类。然后用一批命令添加元件和网络,每行一条:

agentee edit sch - <<'EOF'
add J1 Conn_01x02 PWR --footprint PinHeader_1x02_P2.54mm_Vertical
add R1 R 1k --footprint R_0603_1608Metric
add D1 LED green --footprint LED_0603_1608Metric
add C1 C 100n --footprint C_0603_1608Metric
net VIN J1.1 R1.1 C1.1 --class Power
net LED_A R1.2 D1.A --class Signal
net GND J1.2 D1.K C1.2 --class Ground --style power
EOF

一批操作是一次加载和一次检查,因此中间未完成的状态不会被标记。引脚格式为 REF.PIN,按编号或唯一引脚名称: D1.A 是阳极,输出会确认解析到的编号。

added J1 (Conn_01x02)
added R1 (R)
added D1 (LED)
added C1 (C)
VIN now joins J1.1, R1.1, C1.1
LED_A now joins R1.2, D1.2
GND now joins J1.2, D1.1, C1.2
warning: /home/you/blinky/blinky.sch.toml: blinky part R1: body overlaps D1 (parts[2])
0 errors, 1 warnings in the files this touched

add 将每个元件放在最后一个元件的右侧,LED 落在了电阻上。移动它,顺便也移动电容,然后查看:

agentee edit sch blinky move D1 25.4,0 --rotation 90
agentee edit sch blinky move C1 12.7,10.16
agentee render sch:blinky -o sch.png

agentee 渲染的 blinky 原理图

你没有画导线。原理图以引脚列表形式列出网络,agentee 在绘制时会在 1.27 mm 网格上布线。每个网络都有一个 class;留在 Default 的网络会触发警告,因为网络类决定电路板上的走线宽度、间距和过孔。

放置元件

agentee new layout blinky

在起始文件中添加 board = "blinky" 和 schematic = "blinky"。现在检查会失败,这是正确的:

error: ./blinky.pcb.toml: blinky footprints: C1 is not placed

一次性放置所有元件:

agentee place blinky

place 将连接器放在边缘,保持无源元件靠近其连接的元件,优化结果,并移动现在重叠的参考标号。它打印 JSON 报告,并将 at 和 rotation 写入每个元件的 [[footprints]] 条目。这是一个快速开始:在实际电路板上,你查看结果,手动移动重要元件,标记为 locked = true,然后重新放置其余部分。

布线

现在检查列出所有缺失的连接:

error: ./blinky.pcb.toml: blinky net VIN: [unrouted] 2 unrouted: J1.1 | R1.1 | C1.1 are not joined

在两层上为地铺铜,将地焊盘连接到铺铜,并布线其余两个网络:

agentee edit pcb blinky zone GND --layers F.Cu,B.Cu
agentee tie blinky
agentee route blinky --nets 'VIN,LED_A'
agentee check

tie 在每个有铺铜区域的网络的 SMD 焊盘旁放置短接线和过孔,这是地和电源焊盘应连接到平面的方式。 route 在网格上布线指定网络,保持每个网络类的宽度和间距,并将普通的 [[tracks]] 和 [[vias]] 追加到布局中。之后你可以编辑它们。

0 sims, 1 layouts, 1 schematics, 1 boards, 4 symbols, 4 footprints: 0 errors, 0 warnings
agentee render pcb:blinky -o pcb.png

布线后的 blinky 布局

编写板厂文件包

agentee fab pcb:blinky -o fab/

布局有错误时 fab 会拒绝。没有错误时,它写入每层的 Gerber、钻孔文件、JLCPCB 列格式的 BOM 和贴片文件、IPC-D-356 网络表、装配图、板厂注释,以及用于上传的 blinky-gerbers.zip。

你做了什么

每一步都是相同的循环:一次编辑,检查,查看。文件之外没有保留任何状态,因此你可以在任何点停止,在 git 中打开目录,或者将其交给拥有 技能 的智能体并要求它添加一个反向极性二极管。

下一步:

改进此指南 · 面向智能体的 Markdown