スケッチメタデータは、sketch.yamlという名前のファイルで定義されます。ファイルはYAMLフォーマットです。
ビルドプロファイル
Arduino CLIでは、ビルドプロファイルを使うことで、ビルドの再現ができるようになっています。
プロファイルは、スケッチをビルドするために必要なすべてのリソースの完全な説明です。スケッチプロファイルは複数のプロファイルを含むことができます。
それぞれのプロファイルは以下を定義します。
- ボードのFQBN
- 利用するプログラマー
- ターゲットのコアプラットフォーム名とバージョン(サードパーティのプラットフォームのインデックスが必要であれば、そのURL)
- ターゲットのコアプラットフォームの依存関係の、可能なコアプラットフォーム名とバージョン(サードパーティのプラットフォームのインデックスが必要であれば、そのURL)
- スケッチで使われるライブラリ(バージョンを含む)
- スケッチをアップロードしボードを監視するポートとプロトコル
ファイルのフォーマットは以下の通りです。
|
|
全てのプロファイルを含む、オプションのprofiles:セクションがあります。profileの各フィールドは、以下で説明がない限り、必須です。利用可能なフィールドは以下の通りです。
<PROFILE_NAME>は、プロファイルの識別子で、ユーザーが定義します。利用可能な文字は、英数字とアンダースコア(_)、ドット(.)、ダッシュ(-)です。<PLATFORM>は、ターゲットコアプラットフォーム識別子です。例えば、arduino:avrや、adafruit:samdです。<PLATFORM_VERSION>は、要求されるターゲットコアプラットフォームのバージョンです。<3RD_PARTY_PLATFORM_URL>は、ターゲットコアプラットフォームのインデックスをダウンロードするURLです。Arduino IDEでの、「追加のボードマネージャのURL」です。このフィールドは、公式のarduino:*プラットフォームでは省略可能です。<PLATFORM_DEPENDENCY>と<PLATFORM_DEPENDENCY_VERSION>、<3RD_PARTY_PLATFORM_DEPENDENCY_URL>は、<PLATFORM>と<PLATFORM_VERSION>、<3RD_PARTY_PLATFORM_URL>と同じ内容ですが、それぞれ、メインのコアプラットフォームの依存関係のコアプラットフォームです。これらのフィールドはオプションです。libraries:は、プロジェクトをビルドするのに必要なライブラリを定義するセクションです。これはオプションです。<LIB_VERSION>は、要求されるライブラリのバージョンです。例えば、1.0.0です。<USER_NOTES>は、開発者がコメントを追加するのに利用できる自由な文字列です。このフィールドはオプションです。<PROGRAMMER>は、利用するプログラマーです。このフィールドはオプションです。
以下のフィールドは、Arduino CLI 1.1.0から利用可能です。
<PORT_NAME>は、アップロードとボードの監視に利用するポートです(他で明示的に設定されていない場合)。このフィールドはオプションです。port_configセクションは、<PORT_SETTING_NAME>と<PORT_SETTING_VALUE>からなり、monitorコマンドで利用されるポート設定を定義します。典型的には、シリアルポートのボーレートを設定するのに使われます(例えば、baudrate: 115200)。どのような設定・設定値も指定できます。複数の項目が設定できます。このフィールドはオプションです。<PORT_PROTOCOL>は、アップロードとボードの監視に利用するポートのプロトコルです。このフィールドはオプションです。
スケッチプロジェクトファイルの完全な例は、以下のようになります。
|
|
スケッチのビルド
スケッチプロジェクトファイルがあるとき、compileコマンドで、--profile/-mフラグでスケッチをコンパイルできます。
|
|
この場合、nanorpプロファイルで指定されたコアプラットフォームとライブラリを使い、スケッチはコンパイルされます。コアプラットフォームやライブラリがない場合は、実行時に、データフォルダ内の分離されたディレクトリに自動的にダウンロード・インストールされます。専用ストレージにユーザーはアクセスできず、スケッチをビルドするのに利用されるリソースのキャッシュとなります。
プロファイルに基づきビルドするときは、システム全体でインストールされたプラットフォームとライブラリはコンパイル時には利用されず、全く利用されません。言い換えると、ビルドはシステムから分離され、プロファイルに指定されたリソースにだけ依存します。これにより、システムにインストールされたプラットフォームやライブラリには依存しないので、ビルドはポータブルであり再現することがが保証されます。
デフォルトプロファイルの利用
sketch.yamlでdefault_profileが指定されると、以下の、「クラシック」コンパイルコマンドが、sketch.yamlで示されたデフォルトプロファイルを使い、プロファイルベースのビルドを起動します。
|
|
Arduino CLIのデフォルトフラグの利用
スケッチプロジェクトプロファイルは、ArduinoCLIのいくつかのコマンドラインフラグのデフォルト値を設定するのに使われます。特に、
default_fqbnキーは、--fqbnフラグのデフォルト値を設定します。default_programmerキーは、--programmerフラグのデフォルト値を設定します。default_portキーは、--portフラグのデフォルト値を設定します。default_port_configキーは、monitorコマンド(Arduino CLI 1.1.0以降で利用可能)--configフラグのデフォルト値を設定します。default_protocolキーは、--protocolフラグのデフォルト値を設定します。default_profileキーは、--profileフラグのデフォルト値を設定します。
例えば、
|
|
上記が設定されていると、スケッチのコンパイルやアップロード、デバッグ時に、arduino-cli compileやarduino-cli upload、arduino-cli debugコマンドで、--fqbnと--programmer、--port、--protocol、--profileフラグを指定する必要はありません。さらに、monitorコマンドでは、ボードの関しポートと通信するのに、--config baudrate=115200を指定する必要もありません。
オリジナルのページ
https://docs.arduino.cc/arduino-cli/sketch-project-file/
最終更新日
August 1, 2026