bom-generator について
bom-generator は、メイカープロジェクト向けの部品表を作成し、部品候補、販売元リンク、互換性チェックを提供するスキルです。部品選定や購入を計画する人向けで、BOM を表計算形式、CSV、Markdown、JSON で出力できます。
主な機能
- 01対話形式または JSON から BOM を作成
- 02xlsx、CSV、Markdown、JSON で出力
- 03部品データベースを参照
- 04電圧、電流、I2C の互換性を確認
- 05販売元と購入リンクを追加
活用シーン
- 01電子工作プロジェクトの部品を計画
- 02部品の注文前に費用を見積もる
- 03部品と対象ボードの互換性を確認
- 04文書作成や購入用に BOM を出力
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ wedsamuel1230/ embedded-engineering-skills --skill bom-generatorインストール後、Claude Code で/bom-generatorを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/example-project.jsonreferences/example-bom.mdscripts/generate_bom.py詳細
BOM Generator
メーカー向けプロジェクトの包括的な部品表を、販売元へのリンクと互換性チェック付きで作成します。
リソース
- scripts/generate_bom.py - xlsx/csv/markdown 形式の BOM を生成する Python スクリプト(openpyxl が必要です)
- references/example-bom.md - BOM の完全な例
- assets/example-project.json - スクリプト用のサンプルプロジェクト設定
クイックスタート
対話形式で BOM を生成します:
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:BOM の生成
ガイド付きで生成するには 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 R3 | 5V | 14 | 32KB | $12-25 | 初心者、多くのチュートリアル |
| Arduino Nano | 5V | 14 | 32KB | $3-20 | コンパクトなプロジェクト |
| Arduino Mega | 5V | 54 | 256KB | $15-40 | 多数の I/O、大規模なプログラム |
| ESP32 DevKit | 3.3V | 34 | 4MB | $5-15 | WiFi、Bluetooth、IoT |
| ESP32-C3 | 3.3V | 22 | 4MB | $4-10 | 低価格の WiFi |
| RP2040 Pico | 3.3V | 26 | 2MB | $4-6 | デュアルコア、PIO |
| RP2040 Pico W | 3.3V | 26 | 2MB | $6-8 | Pico + WiFi |
一般的なセンサー
| センサー | インターフェース | 電圧 | 価格 | 用途 |
|---|---|---|---|---|
| DHT22/AM2302 | 1-Wire | 3.3-5V | $3-8 | 温度 + 湿度 |
| BME280 | I2C/SPI | 3.3V | $5-15 | 温度 + 湿度 + 気圧 |
| BMP280 | I2C/SPI | 3.3V | $2-8 | 温度 + 気圧(湿度なし) |
| DS18B20 | 1-Wire | 3-5.5V | $2-5 | 防水温度センサー |
| HC-SR04 | GPIO | 5V | $1-3 | 超音波距離測定 |
| VL53L0X | I2C | 3.3V | $5-12 | レーザー距離測定(高精度) |
| MPU6050 | I2C | 3.3V | $2-8 | 加速度計 + ジャイロスコープ |
| BNO055 | I2C | 3.3V | $25-35 | 9-DOF IMU(最高精度) |
| VEML7700 | I2C | 3.3V | $4-8 | 周囲光(ルクス) |
| MAX30102 | I2C | 3.3V | $5-12 | 心拍数 + SpO2 |
ディスプレイ
| ディスプレイ | インターフェース | 解像度 | 価格 | 備考 |
|---|---|---|---|---|
| 16x2 LCD | I2C | 16 文字 | $3-8 | I2C バックパックが必要です |
| 20x4 LCD | I2C | 20 文字 | $5-12 | 大きめの文字表示 |
| SSD1306 OLED | I2C | 128x64 | $3-8 | 鮮明で、バックライト不要 |
| SSD1306 OLED | I2C | 128x32 | $3-6 | コンパクトな OLED |
| ST7735 TFT | SPI | 128x160 | $5-10 | カラー、高速リフレッシュ |
| ILI9341 TFT | SPI | 240x320 | $8-15 | 大型カラー表示 |
| E-Paper | SPI | 各種 | $15-40 | 低消費電力、リフレッシュ不要 |
モーターとアクチュエーター
| 種類 | 必要なドライバー | 価格 | 備考 |
|---|---|---|---|
| SG90 サーボ | なし(PWM) | $2-5 | 180°、トルクは弱め |
| MG996R サーボ | なし(PWM) | $5-10 | 高トルク、金属ギア |
| 28BYJ-48 ステッパー | ULN2003 | $3-6 | 安価、低速、トルクは弱め |
| NEMA17 ステッパー | A4988/DRV8825 | $8-15 | 高トルク、高精度 |
| DC モーター + ギアボックス | L298N/TB6612 | $5-15 | 高速にも対応 |
| リニアアクチュエーター | L298N | $15-40 | 押し引き動作 |
モータードライバー
| ドライバー | チャンネル数 | 最大電流 | 電圧 | 価格 |
|---|---|---|---|---|
| L298N | 2 | 2A/ch | 5-35V | $3-8 |
| TB6612FNG | 2 | 1.2A/ch | 4.5-13.5V | $3-8 |
| A4988 | 1 ステッパー | 2A | 8-35V | $2-5 |
| DRV8825 | 1 ステッパー | 2.5A | 8.2-45V | $3-6 |
| TMC2209 | 1 ステッパー | 2A | 4.75-28V | $8-15 |
電源コンポーネント
| コンポーネント | 仕様 | 価格 | 用途 |
|---|---|---|---|
| LM7805 | 5V 1A リニア | $0.50 | シンプルな5Vレギュレーター |
| AMS1117-3.3 | 3.3V 1A リニア | $0.30 | 5Vから3.3Vに変換 |
| LM2596 Module | 可変 3A 降圧 | $2-4 | 効率的な降圧 |
| MT3608 Module | 可変 2A 昇圧 | $1-3 | 電圧を昇圧 |
| TP4056 Module | LiPo充電器 | $1-2 | バッテリーの充電 |
| 18650 Holder | 1-4セル | $1-5 | バッテリーの固定 |
| JST Connectors | 2ピン | $2-5/10pk | バッテリーの接続 |
受動部品(キットを購入!)
| キットの種類 | 一般的な内容 | 価格 | おすすめ |
|---|---|---|---|
| 抵抗器キット | 600個以上、1/4W | $8-15 | 一度購入すれば長く使えます |
| コンデンサーキット | セラミック + 電解 | $10-20 | 必須 |
| LEDキット | 5mm、各種カラー | $5-10 | よく使う用途に対応 |
| ボタンキット | タクトスイッチ | $5-8 | 各種サイズ |
| ダイオードキット | 1N4148、1N4007など | $5-8 | 保護回路 |
サプライヤーガイド
納期とコストのトレードオフ
| サプライヤー | 配送日数 | 価格 | 最適な用途 |
|---|---|---|---|
| DigiKey | 1-3日 | $$$ | 正確な仕様、データシート、急ぎの場合 |
| Mouser | 1-3日 | $$$ | 豊富な品ぞろえ、高品質 |
| Amazon | 1-2日 | $$ | 迅速な配送、返品が簡単 |
| Adafruit | 3-5日 | $$$ | 品質、チュートリアル、サポート |
| SparkFun | 3-5日 | $$$ | ブレークアウトボード、学習 |
| AliExpress | 2-6週間 | $ | 大量購入、低予算、互換品 |
| LCSC | 1-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 対応