arduino-cliの使い方

$ arduino-cli version
arduino-cli Version: 0.13.0 Commit: 693a045

インストール

Arduino CLIの公式ドキュメントに従ってインストールする。後述するscreenコマンドも合わせてインストールする。 arduino-cliはDockerイメージも配布されているのでお好みで。

curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | BINDIR=~/.local/bin sh
echo "export PATH=\"\$PATH:\$HOME/.local/bin\"" >> ~/.bashrc
source ~/.bashrc

sudo apt install screen

プラットフォーム一覧を更新しておく。

arduino-cli core update-index

スケッチの作成

特に特殊なファイルを必要としたりはしないので、 Arduino IDEで作成しても、好きなテキストエディタで作成してもよい。

一応テンプレート付きのスケッチを作成するには、arduino-cli sketch new SKETCH_NAMEを実行する。

手動で作成する場合にはArduino IDEと同様、 スケッチ名(ディレクトリ名)と同じ名前で、SKETCH_NAME.inoのように メインのソースコードを作成する。

以下、arduino-cliのコマンドはスケッチのディレクトリで実行する。

FQBNの確認

arduino-cliでボードを扱うときには、ボード名にあたるFQBNというコロンで区切られた文字列を使う。

arduino-cli board listallコマンドで arduino-cliが対応しているボードのFQBN一覧が出力される。 arduino-cli board listall esp32のようにキーワードを追加して、 絞り込むこともできる。

また、arduino-cli board listコマンドでPCに接続しているボードのFQBNを調べられる場合がある(Arduino系ボードの場合?)。

  • Arduino UNO: arduino:avr:uno
  • ESP32-DevKitC: esp32:esp32:esp32

プラットフォームコアのインストール

コンパイルには別途ボードに対応するビルドツールセット(プラットフォームコア)をインストールする必要があり、FQBNから以下のようにコマンドを実行する。

# Arduino (AVR)
arduino-cli core install arduino:avr

# ESP32
arduino-cli core install esp32:esp32

ライブラリのインストール

ライブラリの導入には、arduino-cli libコマンドを使う。 例えば、ArduinoJsonライブラリを導入するときは、 以下のように検索コマンドで該当するライブラリの名前を確かめ、インストールコマンドを実行する。

arduino-cli lib search ArduinoJson

arduino-cli lib install ArduinoJson

スケッチのコンパイル

ボードに書き込む前に、まずスケッチ(ソースコード)をコンパイルする。

Arduino UNO(FQBN:arduino:avr:uno)に書き込むためのスケッチをコンパイルする。

arduino-cli compile -b arduino:avr:uno

コンパイル成果物はデフォルトで./buildディレクトリに書き出されるので、 .gitignoreなどに追加しておく。

スケッチの書き込み

ボードにコンパイルしたスケッチを書き込む。 シリアルポートを-pオプションで指定する。

arduino-cli upload -b arduino:avr:uno -p /dev/ttyACM0

シリアルモニタ

arduino-cliにはシリアルモニタ機能がない(追加される予定もない)ので、 ほかのツールを使う必要がある。

screenコマンドがよく使われるようだったので、これを使う。 Ubuntuの場合apt install screenで導入できる。 /dev/ttyACM0の部分にはシリアルポート名を、115200の部分にはbaudrateを入れる。

screen /dev/ttyACM0 115200

プロキシ設定

arduino-cliの通信にプロキシを設定するには、 コンフィグファイルを作成する必要がある。

arduino-cli config initを実行すると arduino-cliの設定関係ディレクトリにarduino-cli.ymlが生成される。 私の環境では、~/.arduino15/arduino-cli.ymlが生成された。 これを開き、以下のようにプロキシ設定を追加する。

board_manager:
  additional_urls: []

(略)

network:
  proxy: http://proxy:port

関連