【Arduino開発】Platform IOでdebug版、release版を分けてビルドして実機へアップロードする方法

【Arduino開発】Platform IOでdebug版、release版を分けてビルドして実機へアップロードする方法
【Arduino開発】Platform IOでdebug版、release版を分けてビルドして実機へアップロードする方法
みなさん、Arduino開発でPlatform IOは導入されてますでしょうか? Arduino IDEをやめて VS Code で開発してらっしゃる方は多いです。さらにVS CodeにPlatform IOを導入すると、もっとArduino開発が楽しくなりますよ^^ とくにESP32の開発では、Platform IO 無しではコンパイルに時間がかかってどうしようもありません。Platform IOを導入してからはコンパイルもサクサク、開発がスムーズになりました。 Platform IOの導入方法は情報がたくさんありますので他の方に任せるとして、この記事ではpioコマンドを使ったビルドと実機へのアップロードの手順をご紹介いたします。

新規ターミナルを開く場合の注意点

ターミナルで pio コマンドを使えるようにするためには、ちょっとした注意があります。 VSCodeのエクスプローラーでターゲットとなる .ino ファイルを選択した状態で、下部の New Terminal をクリックしなければなりません。

新規ターミナル
新規ターミナル

pioコマンドでビルド(コンパイル)する

pio コマンドでプロジェクトをビルド(コンパイル)するには、ターミナルで次のコマンドを実行します。
shell
$ pio run

pio runでビルド
pio runでビルド

もちろん、下部に設置されているビルドアイコンやショートーカットキーからビルドもできますが、platformio.ini に複数の環境設定を書き込んでいる場合は、より細かくビルドを指定したい場合が出てきます。そんな時にpioコマンドを使うときめ細かなビルドができて、開発もスムーズになります。

特定の環境のみビルドしたい

例えば platformio.ini に次のようなリリース版とデバッグ版を分けて設定している場合、開発中はデバッグ版のみコンパイルしたほうが速いですよね?

ini
...

[env:release]
platform = https://github.com/platformio/platform-espressif32.git
board = esp32dev
framework = arduino
monitor_speed = 115200
platform_packages =
 framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32#2.0.2

... 

[env:debug]
platform = https://github.com/platformio/platform-espressif32.git
board = esp32dev
framework = arduino
monitor_speed = 115200
platform_packages =
 framework-arduinoespressif32 @ https://github.com/espressif/arduino-esp32#2.0.2
build_flags =
;====================== MQTT CONFIG ======================
 -DMQTT_WITHOUT_SSL
 '-DWIFI_SSID="xxxxxx"'
 '-DWIFI_PASSWORD="xxxxx"'
 '-DWIFI_API_HOST="192.168.61.5:9998"'
 '-DPUBLISH_INTERVAL=10000'

... 

私の場合は企業様へソースコードを納品することがありますので、WiFiやテストURLなどの情報はハードコーディングせず、ビルド時のコマンドでマクロを定義させてます。そのためにdebug版とrelease版で開発環境を分けてます。

例えば上記の設定ファイルで debug 環境のみビルドするには、次のように -e オプションで環境名を指定してビルドできます。

shell
$ pio run -e debug

debug環境のみビルド
debug環境のみビルド

こうすると relese 版はビルドされないのでコンパイルも速く済みます。

実機へスケッチをアップロードする

実機へビルドしたバイナリ(スケッチ)をアップロードするには次のように書きます。

shell
$ pio run -e debug -t upload

実機にアップロードしたらシリアルモニタを開きたい

単純にシリアルモニタを開きたい場合は次のコマンドで実行できます。

shell
$ pio device monitor 

プログラムが実機にアップロードされたら、自動でシリアルモニタを開きたいですよね。その場合は次の通りです。

shell
$ pio run -e debug -t upload && pio device monitor 
&& は、前述のコマンドが正常終了したら後述のコマンドを実行する書き方です。

またシリアルモニタを使う場合は、platformio.inimonitor_speed = 115200 を書くことをお忘れなく。

関連記事

最後までご覧いただきありがとうございます!

▼ 記事に関するご質問やお仕事のご相談は以下よりお願いいたします。
お問い合わせフォーム

人気のArduino互換機
Arduinoで人気の周辺パーツ
あると便利な道具
Arduinoのオススメ参考書

▼ Arduino初心者向きの内容です。ほかのArduino書籍と比べて図や説明がとてもていねいで読みやすいです。Arduinoで一通りのセンサーが扱えるようになります。

▼ 外国人が書いた本を翻訳したものです。この手の書籍は、目からうろこな発見をすることが多いです。

▼ Arduinoの入門書を既に読んでいる方で、次のステップを目指したい人向きの本です。C言語のプログラミングの内容が中心です。ESP32だけでなく、ふつうのArduinoにも役立つ内容でした。

Seeed Studio関連製品
ATmega32U4搭載ボード