mcpField
B
battery-selector

battery-selector

github.com/wedsamuel1230その他28143 回インストール2 週間前に更新
リポジトリ

battery-selector について

battery-selector は、組み込みプロジェクトの開発者向けに、電池の化学系を比較し、セルや充電回路の選択を支援するスキルです。電流消費と稼働時間から適性を見積もる計算機に加え、化学系の資料と安全ガイドを備えています。

主な機能

  1. 0115 種類以上の電池を比較
  2. 02電流と稼働時間から容量を推定
  3. 03充電式電池に絞って選択
  4. 04充電方式と電圧調整方法を確認
  5. 05化学系ごとの安全ガイドを参照

活用シーン

  1. 01携帯型プロジェクトの電池を選定
  2. 02目標稼働時間に必要な容量を推定
  3. 03充電式化学系と充電器を選択
  4. 04電池の使用前に安全上の注意を確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/wedsamuel1230/embedded-engineering-skills --skill battery-selector

インストール後、Claude Code で/battery-selectorを入力して読み込まれたか確認します。

同梱ファイルreferences/safety-guidelines.mdscripts/compare_batteries.py

詳細

バッテリーセレクター

組み込みプロジェクト向けのバッテリー化学系と充電回路の選定をガイドします。

リソース

このスキルには、以下のツールとリファレンスが含まれています。

  • scripts/compare_batteries.py - 15種類以上のバッテリーを比較する計算ツール
  • references/safety-guidelines.md - あらゆる化学系に対応した包括的な安全ガイド

クイックスタート

対話形式で選択:

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

コマンドライン:

# Find battery for 50mA project, 24h runtime
uv run --no-project scripts/compare_batteries.py --current 50 --hours 24

# Require rechargeable
uv run --no-project scripts/compare_batteries.py --current 100 --hours 12 --rechargeable

# List all batteries in database
uv run --no-project scripts/compare_batteries.py --list

使用する場面

  • 「どのバッテリーを使えばよいですか?」
  • 「このプロジェクトはどう充電すればよいですか?」
  • 「リチウムとアルカリのどちらがよいですか?」
  • 「このバッテリーは安全ですか?」
  • 携帯型/バッテリー駆動プロジェクトの計画

選択フローチャート

START
  │
  ▼
Is project rechargeable? ──No──► Alkaline/Lithium Primary
  │                              (Disposable batteries)
  Yes
  │
  ▼
What voltage does MCU need?
  │
  ├── 5V ──► LiPo + Boost converter
  │          OR 3x/4x NiMH
  │
  ├── 3.3V ──► Single LiPo (3.0-4.2V)
  │            Directly compatible!
  │
  └── 12V+ ──► Multi-cell LiPo pack
               OR Lead-acid
  │
  ▼
How much current?
  │
  ├── <50mA ──► Small LiPo (500-1000mAh)
  │             OR Coin cell (CR2032)
  │
  ├── 50-500mA ──► Standard LiPo (1000-3000mAh)
  │                OR 18650 cells
  │
  └── >500mA ──► Large LiPo (3000mAh+)
               OR Multiple 18650s
               External power recommended

バッテリー化学系の比較

クイックリファレンス
化学系電圧充電可能エネルギー密度コスト安全性
アルカリ1.5V/セルいいえ中低非常に安全
一次リチウム3Vいいえ高中安全
NiMH1.2V/セルはい中中安全
LiPo/Li-ion3.7Vはい非常に高い中⚠️ 取り扱いに注意が必要
LiFePO43.2Vはい高高LiPoより安全
鉛蓄電池2V/セルはい低低⚠️ 酸の危険性
アルカリ(AA/AAA/9V)

メリット:

  • 安価で、どこでも入手可能です
  • 充電回路が不要です
  • 非常に安全です
  • 保存期間が長い(5~10年)です

デメリット:

  • 充電できません(電子廃棄物になります!)
  • 放電に伴って電圧が低下します
  • 大電流に適していません
  • 容量に対して重いです

最適な用途:

  • 低消費電力のプロジェクト(平均<20mA)
  • 初心者向けプロジェクト
  • 充電が現実的でない遠隔地/展開先
  • バックアップ電源

電圧構成:

Cells   Voltage    Use With
────────────────────────────
2x AA   3.0V       3.3V MCUs (with LDO)
3x AA   4.5V       5V MCUs (direct or LDO)
4x AA   6.0V       5V MCUs (with regulator)
9V      9.0V       With 5V/3.3V regulator

NiMH(充電式AA/AAA)

メリット:

  • 充電可能です(500~1000サイクル)
  • アルカリ電池と同じサイズです
  • リチウムより安全です
  • メモリー効果がありません

デメリット:

  • 電圧が低いです(1.5Vではなく1.2V)
  • 自己放電します(月あたり約20%)
  • 適切な充電器が必要です
  • LiPoより重いです

最適な用途:

  • 使い捨て電池を置き換えるプロジェクト
  • 教育現場
  • LiPoのリスクが高すぎる場合
  • 手頃な価格の充電式ソリューション

充電:

  • 専用のNiMH充電器を使用します
  • メーカーや容量の異なる電池を混ぜて使わないでください
  • Eneloop/Eneloop Proを推奨します

LiPo / Li-ion(3.7V)

メリット:

  • エネルギー密度が高い(軽量で高出力)です
  • 充電可能です(300~500サイクル)
  • 放電曲線が平坦です
  • さまざまな形状があります

デメリット:

  • ⚠️ 誤った取り扱いによる火災の危険があります
  • 保護回路が必要です
  • 温度に敏感です
  • 使用しなくても劣化します

最適な用途:

  • ほとんどの携帯型プロジェクト
  • 重量が重要な用途
  • 動作時間を確保したい場合
  • プロフェッショナルな製作

重要な安全ルール:

✅ DO:
- Use protected cells with BMS
- Store at 40-60% charge
- Use proper TP4056/similar charger
- Monitor temperature during charge
- Use battery with JST-PH connector (prevents polarity swap)

❌ DON'T:
- Puncture, crush, or bend
- Charge below 0°C
- Discharge below 3.0V
- Leave charging unattended (first few times)
- Use damaged/puffy batteries

LiFePO4(3.2V)

メリット:

  • LiPoよりはるかに安全です(熱暴走しません)
  • サイクル寿命が長いです(2000サイクル以上)
  • 放電曲線が平坦です
  • 過酷な扱いにもより耐えられます

デメリット:

  • エネルギー密度が低いです
  • 電圧が低く(昇圧が必要な場合があります)
  • 価格が高いです
  • 小型サイズの製品はあまり一般的ではありません

最適な用途:

  • 安全性が最重要の用途
  • 屋外/過酷な環境での展開
  • 長期設置
  • LiPoのリスクを許容できない場合

CR2032 / コイン電池

メリット:

  • 非常に小型で軽量です
  • 保存期間が長いです
  • 3V出力(3.3V MCUに直接接続可能)です

デメリット:

  • 容量が非常に小さいです(220mAh)
  • 大電流の供給に適していません
  • 充電できません
  • ⚠️ 飲み込むと危険です

最適な用途:

  • 超低消費電力の用途のみ(平均<10µA)
  • RTCのバックアップ
  • 小型センサー
  • キーフォブ、ビーコン

電流制限:

Continuous: <2mA
Pulse: <15mA (brief)

DON'T use for: WiFi, Bluetooth, motors, LEDs

電圧レギュレーション

3.3Vシステム(ESP32、RP2040)

単セルLiPo → 3.3V:

LiPo outputs 3.0-4.2V
Most 3.3V MCUs tolerate this range directly!

Option 1: Direct connection (if MCU allows)
   LiPo(+) → 3.3V/VIN pin
   
Option 2: LDO for clean 3.3V
   LiPo(+) → [AMS1117-3.3] → 3.3V pin
   (Need 4V min input for AMS1117)

Better: Use HT7333 LDO (low dropout, low quiescent)
   Works from 3.3V input!
5Vシステム(Arduino UNO/Nano)

LiPo → 5V:

Option 1: Boost converter
   LiPo(+) → [MT3608] → 5V → VIN pin
   
Option 2: PowerBoost module (Adafruit)
   Includes charging + boost + protection
   
Option 3: USB power bank
   Already regulated 5V + charging built-in

充電ソリューション

TP4056モジュール(最も一般的)
┌─────────────────────────────┐
│  TP4056 with Protection     │
│                             │
│  [USB-C] ─► [TP4056] ─► [DW01+FS8205] ─► [B+/B-]
│   IN         Charger     Protection      To Battery
│                             │
│  Features:                  │
│  - 1A max charge current    │
│  - Overcharge protection    │
│  - Overdischarge protect    │
│  - Short circuit protect    │
│  - LED charge indicator     │
└─────────────────────────────┘

Wiring:
  B+ → LiPo positive
  B- → LiPo negative
  OUT+ → Load/MCU positive
  OUT- → Load/MCU negative

⚠️ 保護回路付きのモジュールを選んでください(4ピンではなく6ピン)

Adafruit PowerBoost 500C/1000C

次の機能を備えたプレミアムソリューションです。

  • USB経由でのLiPo充電
  • 5V昇圧出力(500mAまたは1A)
  • バッテリー残量低下インジケーター
  • 負荷分担(動作中の充電)
自作充電で避けること
❌ Never charge LiPo with a constant voltage supply
❌ Never charge LiPo with a phone charger directly
❌ Never charge at >1C rate (e.g., 1000mAh → max 1A)
❌ Never charge frozen batteries

バッテリー容量計算ツール

Step 1: Determine average current (from power-budget-calculator)
        I_avg = _____ mA

Step 2: Determine required runtime
        T_required = _____ hours

Step 3: Calculate minimum capacity
        C_min = I_avg × T_required × 1.25 (safety factor)
        C_min = _____ × _____ × 1.25
        C_min = _____ mAh

Step 4: Select battery
        Choose capacity ≥ C_min
        Consider: size, weight, form factor

例:

Project: Weather station
I_avg: 15mA
T_required: 48 hours (2 days between charges)

C_min = 15 × 48 × 1.25 = 900mAh

Selection: 1000mAh LiPo (gives ~67 hours actual)

よくある間違い

1. 不適切な充電器の使用
❌ "My 9V adapter should work"
   LiPo needs CC-CV charging at 4.2V max!
   
✅ Use TP4056 or dedicated LiPo charger
2. 低電圧カットオフがない
❌ Draining LiPo below 3.0V
   Permanently damages the cell!
   
✅ Use protection module OR monitor in code:
   if (batteryVoltage < 3.2) {
       enterDeepSleep();  // Protect battery
   }
3. 突入電流を考慮しない
❌ Battery can't handle WiFi TX spike (500mA)
   Causes brownout/reset
   
✅ Add 100-470µF capacitor near MCU
✅ Size battery for peak current, not just average
4. 逆極性保護なし
❌ Swapping battery wires = magic smoke

✅ Use JST-PH connectors (keyed)
✅ Add protection diode or P-FET

プロジェクトの種類別おすすめの構成

低消費電力センサーノード
Battery: 18650 (3000mAh) or LiPo 2000mAh
MCU: ESP32 with deep sleep
Charger: TP4056 with protection
Runtime: Weeks to months
ハンドヘルドデバイス
Battery: LiPo 1000-2000mAh flat pack
MCU: Any
Charger: PowerBoost or TP4056 + boost
Runtime: Hours to days
ロボット/大電流
Battery: 2S or 3S LiPo pack (7.4V or 11.1V)
Regulator: Buck converter to 5V
Charger: Balance charger (external)
Runtime: Minutes to hours
超低消費電力ビーコン
Battery: CR2032 or 2x AA
MCU: ESP32-C3 or ATtiny with deep sleep
No charger needed
Runtime: Months to years

クイック選択表

プロジェクトの種類最適なバッテリー容量充電器
シンプルなArduino4x AA2500mAhなし
携帯型ESP32186502600mAhTP4056
ウェアラブル小型LiPo500mAhTP4056
ロボット2S LiPo2200mAhバランス充電器
超低消費電力CR2032220mAhなし
ソーラープロジェクトLiFePO43200mAhMPPT

共通の出力契約

共通のArduinoスキル契約を使用してください: 前提条件、必要なツールとバージョン、実装手順、証明段階ごとのテスト/証拠、 既知の制限事項、復旧/セキュリティに関する注意事項を明記してください。

コメント