atopile atopile/atopile

3/5 🧩 软硬件结合 已发布
atopile 792 Stars 未知 BOM 完整度: 0/5 教程完整度: 0/5
atopile

项目简介

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 模型

模型名称文件名文件
R0402_L1.0-W0.5-H0.4.step R0402_L1.0-W0.5-H0.4.step
R0603.STEP R0603.STEP
C0402_L1.0-W0.5-H0.5.step C0402_L1.0-W0.5-H0.5.step
C0402_L1.0-W0.5-H0.5.step C0402_L1.0-W0.5-H0.5.step
R0402_L1.0-W0.5-H0.4.step R0402_L1.0-W0.5-H0.4.step
R0402_L1.0-W0.5-H0.4.step R0402_L1.0-W0.5-H0.4.step
C0402_L1.0-W0.5-H0.5.step C0402_L1.0-W0.5-H0.5.step
C0402_L1.0-W0.5-H0.5.step C0402_L1.0-W0.5-H0.5.step
C0402_L1.0-W0.5-H0.5.step C0402_L1.0-W0.5-H0.5.step
TSSOP-24_L7.8-W4.4-H1.0-LS6.4-P0.65.step TSSOP-24_L7.8-W4.4-H1.0-LS6.4-P0.65.step

能力画像

**记忆与知识检索**: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 流水线集成,实现硬件设计的自动化验证和生成