ArduinoCLIで出来ること
ArduinoCLIで何が出来るかを簡単にまとめてみましょう。
- なんでもできる。
終わりです。
これもCLIアプリの特徴ですが、大半のCLIアプリケーションにおいて、GUIアプリケーションと同等の機能が提供されています。
そのため、プログラムをコンパイルしてESP32に転送することだってできます。
じゃあこのなんでもできるArduinoCLIを使用して、プログラムのコンパイルなどなどしてきましょう。
まずはプロジェクトを用意
今回は既にプロジェクトがあるものとしましょう。
ターミナルで編集する方法については後で話しますね。
ファイル構成として、カレントディレクトリにesp32_ledtest
というフォルダがあり、その中にesp32_ledtest.ino
というファイルがあるとします。
(これはArduinoのプロジェクトのファイル構成がこんな感じだからです。)
設定の初期化
では早速、arduino-cli config init
と実行してみましょう。
これは、ArduinoCLIのユーザー設定を初期化するコマンドです。
ボードの追加
次に、ESP32用の追加のボードマネージャーのURLを設定しましょう。
ArduinoIDEでは設定から簡単に追加できましたが、CLIではどうでしょう。
先ほどのコマンドの実行結果にxxx/arduino-cli.yaml
といったパスが表示されたと思います。
この設定ファイルのboard_manager
>additional_urls
の中にhttps://espressif.github.io/arduino-esp32/package_esp32_index.json
を追加してください。
board_manager:
additional_urls:
- https://espressif.github.io/arduino-esp32/package_esp32_index.json
こんな感じになりますかね。
そしたら次にarduino-cli core update-index
と実行してみましょう。
これは、インデックスのアップデートなので、ボードマネージャー追加とかしたら実行しておいてあげましょう。
最後にarduino-cli core install esp32:esp32
と実行しましょう。
これで、ESP32のボードマネージャーが追加されました。
これが初期セットアップですね。
コンパイルしてみよう
$ arduino-cli compile -b esp32:esp32:esp32 esp32_ledtest -e
実行してみましょう。
なんかちょっと経ったらビルドが成功したあれが表示されると思います。
もうこれだけです。これだけでコンパイルは終わりなのです。
今のコマンドの構造
$ arduino-cli compile -b FQBN プロジェクトフォルダ -e
FQBNっていうのは、ESP32 Dev Module
とかESP32 Wrover Module
のような、ボードの選択を表すもので、esp32:esp32:esp32
(これはESP32 Dev Module)のような形式で指定します。
プロジェクトフォルダはまんまプロジェクトフォルダで、xxx.ino
があるフォルダのことです。
ちなみにカレントフォルダにxxx.ino
があればプロジェクトフォルダは指定しなくても大丈夫です。
-e
オプションは、指定したらコンパイルされたバイナリがbuild
フォルダに保存されます。
あってもなくてもまぁどっちでも...
コンパイルすると...?
先ほどの設定でコンパイルすると、build/esp32.esp32.esp32
に沢山ファイルが出来上がると思います。
そのうち、実際に書き込みに使うのはesp32_ledtest.ino.zip
というファイルのみです。
ESP32でのコンパイルにおいては、.zip
ファイルは生成されませんでした。悲しいですね。代わりにesp32_ledtest.ino.bin
が書き込みに使われるらしいです。