atopile
atopile/atopile
3/5
🧩 软硬件结合
已发布
项目简介
Design circuit boards with code! ✨ Get software-like design reuse 🚀, validation, version control and collaboration in ha
atopile 是一个革命性的开源项目,它让硬件工程师能够像写软件一样设计电路板。该项目提供了一套完整的语言、编译器和工具链,通过声明式的 `.ato` 文件实现电路设计,并深度集成 KiCad 进行布局。其核心价值在于解决了传统电路设计中重复劳动多、模块复用难、设计意图难以精确传递等问题。使用 atopile,工程师可以定义可复用的模块和接口,在设计中直接嵌入带单位的数学方程来表达设计意图,并自动完成分立元件的参数化选型。技术栈方面,atopile 基于 Python 构建,提供了 VS Code/Cursor 扩展以提供语言服务和一键操作,其编译器能够求解约束、选择零件、运行检查并更新 KiCad 布局文件。项目还包含一个包注册中心,方便用户浏览、安装和发布电路模块。适用场景非常广泛,从简单的传感器板到复杂的多通道 DSP 或智能音箱系统,都能显著提升开发效率。无论是个人爱好者还是专业团队,都可以利用 atopile 将设计规范、元件选型、原理图捕获和布局检查串联成自动化的工作流,最终输出 BOM、制造文件和报告,直接用于 PCB 生产。
标签
项目特点
**声明式电路描述**:用 `.ato` 文件以代码形式定义电路拓扑、连接关系和参数约束,告别手动画原理图。
**模块化与复用**:支持定义可复用的电路模块和接口(如电源模块、传感器接口),一次编写,多处调用。
**带单位的数学方程**:在设计中直接嵌入带物理单位的数学表达式(如 `R = 10kΩ`),自动求解约束并选型。
**深度集成 KiCad**:编译器能自动生成或更新 KiCad 原理图和 PCB 布局,保持设计与代码同步。
**自动化参数选型**:根据约束条件(电压、电流、功率等)自动从库中匹配分立元件的具体型号。
**VS Code/Cursor 扩展**:提供语言服务、语法高亮、一键编译和更新操作,降低使用门槛。
技术规格
| 开发语言 | |
|---|---|
| 输入文件格式 | |
| 输出格式 | |
| 集成工具 | |
| 编译流程 | |
| 支持单位系统 | |
| 许可证 | |
| 最新版本 |
项目资源
搜索资源
物料清单 (BOM)
| 物料名称 | 数量 | 参考价格 | 备注 |
|---|---|---|---|
| Python | 1 | — | 运行环境,需 ≥3.8 |
| KiCad | 1 | — | 必需,用于原理图和 PCB 编辑 |
| atopile CLI | 1 | — | 核心编译器,通过 pip 安装 |
| VS Code / Cursor 扩展 | 1 | — | 可选,提供语言服务和一键操作 |
| pip 包(如 click, lark-parser) | 若干 | — | 自动安装 |
3D 模型
能力画像
**记忆与知识检索**:3/5 — 能通过约束方程自动匹配元器件参数,但依赖用户定义的规则和库。
**动手与操作**:2/5 — 本身不涉及物理操作,但最终输出需结合 KiCad 进行手动布局布线。
**编程与算法**:5/5 — 核心能力,通过声明式语言和约束求解实现电路设计自动化。
**设计与建模**:4/5 — 支持模块化、接口定义和参数化建模,但复杂模拟电路仍需手动调整。
**实验与调试**:3/5 — 编译器会运行检查并报告错误,但调试仍需结合仿真或实物测试。
**协作与分享**:4/5 — 代码化设计天然适合 Git 协作,模块可打包分享。
**学习与研究**:3/5 — 学习曲线较陡(需同时理解硬件和声明式语法),但文档和示例丰富。
**系统集成**:4/5 — 深度集成 KiCad,并能与 CI/CD 流程结合,实现自动化设计验证。
项目图库
视频
所需技能
基础电路知识(原理图、元器件选型)
Python 基础(安装、命令行使用)
KiCad 基本操作(查看和编辑原理图/PCB)
声明式编程思维(类似 JSON 或 YAML 的配置式描述)
版本控制(Git)基础(推荐)
适用场景
需要快速迭代和复用的数字/模拟电路设计
团队协作开发硬件项目,希望像软件一样管理版本
从现有原理图重构为模块化、参数化设计
自动化生成不同规格的电路板变体(如不同电压、功率版本)
教学场景:用代码清晰表达电路设计意图和约束
与 CI/CD 流水线集成,实现硬件设计的自动化验证和生成