mcpField
B
bom-generator

bom-generator

github.com/wedsamuel1230其他28145 次安装2 周前更新
代码仓库

关于 bom-generator

bom-generator 用于为创客项目生成物料清单,并提供元器件建议、供应商链接和兼容性检查。它面向规划零件与采购的用户,可将 BOM 导出为表格、CSV、Markdown 或 JSON。

主要功能

  1. 01通过交互方式或 JSON 创建 BOM
  2. 02导出 xlsx、CSV、Markdown 和 JSON
  3. 03浏览元器件数据库
  4. 04检查电压、电流和 I2C 兼容性
  5. 05附上供应商及购买链接

适用场景

  1. 01规划电子项目所需零件
  2. 02下单前估算元器件成本
  3. 03检查元器件与目标开发板的兼容性
  4. 04导出 BOM 用于项目文档或采购

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/wedsamuel1230/embedded-engineering-skills --skill bom-generator

安装后在 Claude Code 中输入/bom-generator确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

assets/
example-project.json
references/
example-bom.md
scripts/
generate_bom.py

详细介绍

BOM 生成器

为创客项目创建包含供应商链接和兼容性检查的详尽物料清单。

资源

  • scripts/generate_bom.py - 用于生成 xlsx/csv/markdown 物料清单的 Python 脚本(需要 openpyxl)
  • references/example-bom.md - 完整的物料清单示例
  • assets/example-project.json - 脚本的示例项目配置

快速入门

交互式生成物料清单:

uv run --no-project scripts/generate_bom.py --interactive

根据 JSON 配置生成:

uv run --no-project scripts/generate_bom.py --json assets/example-project.json --output bom.xlsx

列出组件数据库:

uv run --no-project scripts/generate_bom.py --list

导出格式:xlsx(默认)、csv、md、json

适用场景

  • 用户描述了一个项目,需要零件清单
  • 用户询问“做 X 需要哪些组件”
  • 用户想为某个设计订购零件
  • 用户需要估算成本

工作流

步骤 1:收集项目需求

询问用户:

1. Project description (what does it do?)
2. Target microcontroller (Arduino UNO/Nano/Mega, ESP32, RP2040)
3. Power source (USB, batteries, wall adapter)
4. Quantity (how many units to build?)
5. Budget constraints (optional)
6. Supplier preference (optional)
步骤 2:生成物料清单

运行 scripts/generate_bom.py --interactive 进行引导式生成,或使用以下模板格式:

# Bill of Materials: [Project Name]

**Generated:** [Date]
**Target Board:** [MCU]
**Quantity:** [N] unit(s)
**Estimated Total:** $[X.XX] - $[Y.YY] (per unit)

## Core Components

| Qty | Component | Specifications | Est. Price | Supplier Links |
|-----|-----------|----------------|------------|----------------|
| 1 | [MCU Board] | [specs] | $X.XX | [DigiKey](#) / [Amazon](#) |
| ... | ... | ... | ... | ... |

## Sensors & Input

| Qty | Component | Specifications | Est. Price | Supplier Links |
|-----|-----------|----------------|------------|----------------|
| ... | ... | ... | ... | ... |

## Output Devices

| Qty | Component | Specifications | Est. Price | Supplier Links |
|-----|-----------|----------------|------------|----------------|
| ... | ... | ... | ... | ... |

## Power Components

| Qty | Component | Specifications | Est. Price | Supplier Links |
|-----|-----------|----------------|------------|----------------|
| ... | ... | ... | ... | ... |

## Passive Components

| Qty | Component | Specifications | Est. Price | Supplier Links |
|-----|-----------|----------------|------------|----------------|
| ... | ... | ... | ... | ... |

## Mechanical & Connectors

| Qty | Component | Specifications | Est. Price | Supplier Links |
|-----|-----------|----------------|------------|----------------|
| ... | ... | ... | ... | ... |

## Tools Required (if not owned)
- [ ] Tool 1
- [ ] Tool 2

## Compatibility Warnings
⚠️ [Any voltage/current/timing concerns]

## Substitution Notes
💡 [Alternative components if primary unavailable]

组件数据库

微控制器
开发板电压GPIO闪存价格范围最适合
Arduino UNO R35V1432KB$12-25初学者、大多数教程
Arduino Nano5V1432KB$3-20紧凑型项目
Arduino Mega5V54256KB$15-40需要大量 I/O、程序较大的项目
ESP32 DevKit3.3V344MB$5-15WiFi、Bluetooth、IoT
ESP32-C33.3V224MB$4-10低成本 WiFi
RP2040 Pico3.3V262MB$4-6双核、PIO
RP2040 Pico W3.3V262MB$6-8Pico + WiFi
常见传感器
传感器接口电压价格用途
DHT22/AM23021-Wire3.3-5V$3-8温度 + 湿度
BME280I2C/SPI3.3V$5-15温度 + 湿度 + 气压
BMP280I2C/SPI3.3V$2-8温度 + 气压(无湿度)
DS18B201-Wire3-5.5V$2-5防水温度测量
HC-SR04GPIO5V$1-3超声波测距
VL53L0XI2C3.3V$5-12激光测距(精度高)
MPU6050I2C3.3V$2-8加速度计 + 陀螺仪
BNO055I2C3.3V$25-359-DOF IMU(精度最高)
VEML7700I2C3.3V$4-8环境光(lux)
MAX30102I2C3.3V$5-12心率 + SpO2
显示屏
显示屏接口分辨率价格备注
16x2 LCDI2C16 字符$3-8需要 I2C 背板
20x4 LCDI2C20 字符$5-12更大的文本显示屏
SSD1306 OLEDI2C128x64$3-8显示清晰,无需背光
SSD1306 OLEDI2C128x32$3-6紧凑型 OLED
ST7735 TFTSPI128x160$5-10彩色,刷新速度快
ILI9341 TFTSPI240x320$8-15更大的彩色显示屏
E-PaperSPI各种$15-40低功耗,无需刷新
电机与执行器
类型所需驱动器价格备注
SG90 舵机无(PWM)$2-5180°,扭矩较弱
MG996R 舵机无(PWM)$5-10扭矩大,金属齿轮
28BYJ-48 步进电机ULN2003$3-6便宜、速度慢、扭矩弱
NEMA17 步进电机A4988/DRV8825$8-15扭矩大、精度高
直流电机 + 减速箱L298N/TB6612$5-15可提供高转速
线性执行器L298N$15-40推拉运动
电机驱动器
驱动器通道数最大电流电压价格
L298N22A/ch5-35V$3-8
TB6612FNG21.2A/ch4.5-13.5V$3-8
A49881 个步进电机2A8-35V$2-5
DRV88251 个步进电机2.5A8.2-45V$3-6
TMC22091 个步进电机2A4.75-28V$8-15
电源元件
元件规格价格用途
LM78055V 1A 线性稳压$0.50简单的 5V 稳压
AMS1117-3.33.3V 1A 线性稳压$0.30将 5V 转为 3.3V
LM2596 Module可调 3A 降压$2-4高效降压
MT3608 Module可调 2A 升压$1-3升高电压
TP4056 ModuleLiPo 充电器$1-2电池充电
18650 Holder1-4 节电池$1-5安装电池
JST Connectors2 针$2-5/10pk电池连接
无源元件(购买套件!)
套件类型典型内容价格建议
电阻套件600+ 个,1/4W$8-15买一次,用一辈子
电容套件陶瓷电容 + 电解电容$10-20必备
LED 套件多种颜色的 5mm LED$5-10满足常见需求
按钮套件轻触开关$5-8多种尺寸
二极管套件1N4148、1N4007 等$5-8保护电路

供应商指南

速度与成本的权衡
供应商配送时间价格最适合
DigiKey1-3 天$$$规格精准、提供数据手册、急需时
Mouser1-3 天$$$选择丰富、品质可靠
Amazon1-2 天$$快速配送、退货方便
Adafruit3-5 天$$$品质、教程、支持
SparkFun3-5 天$$$扩展板、学习
AliExpress2-6 周$批量采购、预算有限、兼容品
LCSC1-2 周$$中国元件、品质良好
零件编号模式
DigiKey: Descriptive codes
  - 1N4007-TP → 1N4007 diode
  - SER0006 → Servo motor

Mouser: Manufacturer part numbers
  - Search by exact MPN

Amazon: ASIN codes
  - Search by product name + specs

AliExpress: Store + product ID
  - Check reviews, sold count

兼容性检查

电压电平矩阵
                     Can Connect To:
From:        3.3V Logic    5V Logic
─────────────────────────────────────
3.3V MCU     ✅ Direct     ⚠️ Level shifter
5V MCU       ⚠️ Divider    ✅ Direct
3.3V Sensor  ✅ Direct     ⚠️ May work*
5V Sensor    ❌ Damage!    ✅ Direct

* Some 3.3V sensors are 5V tolerant - check datasheet
电流预算检查
Source Limits:
- Arduino 5V pin: 500mA max (from USB)
- Arduino GPIO: 40mA max per pin
- ESP32 3.3V: 500mA max
- ESP32 GPIO: 40mA max
- RP2040 GPIO: 16mA max

Always calculate:
Total current = Σ(component currents)
If total > source limit → external power needed
I2C 地址冲突

需要留意的常见 I2C 地址:

0x3C - SSD1306 OLED
0x27 - PCF8574 LCD backpack  
0x3F - PCF8574A LCD backpack
0x68 - MPU6050, DS3231 RTC
0x76 - BME280 (default)
0x77 - BME280 (alternate), BMP280
0x48 - ADS1115 ADC
0x50 - AT24C32 EEPROM

输出格式选项

Markdown 表格(默认)

最适合文档和 GitHub README。

CSV 导出
Qty,Component,Specifications,Unit Price,Total,Supplier,Link
1,Arduino UNO R3,ATmega328P,15.00,15.00,Amazon,https://...
购物车链接

尽可能提供直接的“加入购物车”链接。

BOM 输出示例

完整示例请参阅 references/example-bom.md。

共享输出约定

使用共享 Arduino 技能约定: 说明假设、所需工具及版本、实现步骤、 各证明阶段的测试/证据、已知限制,以及恢复/安全注意事项。

评论

支持 Markdown