pin-assignment について
ボードに応じたピン割り当てを計画し、論理宣言 ID と物理 GPIO 番号を区別するスキルです。対象ボードの制約を確認し、指定された宣言形式と順序を守ります。
主な機能
- 01ボード固有のピン解決
- 02信号能力の分類
- 03予約ピンの確認
- 04安定した論理 ID の割り当て
- 05順序を保った C++ 宣言
- 06検証段階ごとの証拠報告
活用シーン
- 01特定ボード向けのピン計画
- 02指定順での宣言生成
- 03周辺機能に基づく候補ピンの確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ wedsamuel1230/ embedded-engineering-skills --skill pin-assignmentインストール後、Claude Code で/pin-assignmentを入力して読み込まれたか確認します。
詳細
ピン割り当て
リポジトリの宣言規約を維持しながら、ボードを考慮したピン計画を作成します。論理宣言 ID は自動的に物理 GPIO 番号になるわけではありません。これらの層は明確に分けてください。
インテーク
ボードとリビジョン、MCU/モジュール、フレームワーク/コアのバージョン、ツールチェーン、信号名、方向、電圧、電流、プル要件、バスの所有権、ブート/デバッグ/USB/無線の制約、およびユーザーが宣言、物理配線、またはその両方を求めているかを正確に記録します。まず ../board-support/SKILL.md を使ってターゲットを特定します。要求されたピンアドバイスの用途に対して、その resolution_status は resolved でなければなりません。物理ピンを選ぶ前に、../../references/boards/ 内の対応するファイルを読み込みます。ボードが範囲の定められたファミリーに属し、識別情報が不足している場合は、類似のプロファイルを使用せずに作業を止め、不足情報を求めます。
手順
- 各信号を入力、出力、アナログ、PWM、バス、割り込み、ブート、デバッグ、USB、フラッシュ、PSRAM、または無線関連に分類します。
- ボード固有のフラッシュ、PSRAM、USB、ブートストラップ、デバッグ、およびデフォルトのバスピンは、正確なボード資料で再利用が承認されていない限り予約します。
- 信号に必要な方向、プル機能、電圧、電流、ADC、PWM、またはプロトコルの動作と一致しない候補は除外します。
- 論理 ID を固定し、要求された固定順序で割り当てます。
- ユーザーが宣言のみを求めている場合は、宣言だけをプレーンテキストで出力します。コードフェンス、見出し、説明、末尾のコメントは追加しません。
- 物理マップが求められている場合は、別に提示し、前提と出典で裏付けられた制約を明記します。
必須の宣言規約
ユーザーのカスタム出力モードでは、数値順に並べた生の C++ 宣言を使用します。
constexpr int btn_esc = 101;
constexpr int btn_enter = 102;
constexpr int led_status = 103;
要求された信号ごとに、次の連続した論理値を使用します。ユーザーが物理 GPIO 番号として明示的に定義しない限り、これらの値は安定した論理識別子です。この形式を enum、マクロ、配列、名前空間、説明用のラッパー、または順序を変更した宣言リストに置き換えてはいけません。
不適切な正当化への対応
| 近道 | 対応 |
|---|---|
| 「このピンはたぶん空いています。」 | 正確なボードリファレンスと有効な周辺機能を確認します。 |
| 「GPIO34 はすべての ESP32 で LED に使えます。」 | クラシック ESP32 の入力専用 GPIO34-39 は出力には使えないため除外します。ESP32-S3 と区別し、そのモジュールのピン表を確認します。 |
| 「GPIO0 は単なる別の出力ピンです。」 | 割り当てる前に、ストラップ機能とリセット時のレベルを確認します。 |
| 「コンパイルは成功しました。」 | 配線とターゲットでの動作は未検証のままにします。 |
| 「コードの周りで宣言を説明できます。」 | 宣言のみのモードでは、順序どおりの生の行だけを出力します。 |
検証
- 宣言名と値は
constexpr intであり、指定された開始 ID から厳密に増加します。 - すべての物理出力は、正確なボードにおいて、入力専用、フラッシュ/PSRAM、USB、および未承認のストラップピンを避けます。
- 電圧/電流とプルアップ要件には出典を示すか、情報が不明であることを明記します。
- ビルドの証明、アップロードの証明、ハードウェアの証明、システムの証明は、それぞれ別に報告します。
共通出力要件
共通の Arduino スキル契約を使用します。前提条件、必要なツールとバージョン、実装手順、証明段階ごとのテスト/証拠、既知の制限事項、復旧/セキュリティに関する注意事項を記載します。