M5Stackなどのマイコンデバイス用プログラムを作る際、私は基本的に「Macintosh」上で「Arduino IDE」を使っています。
MacでArduino IDEを使っているとそれほど気にならないのですが、Windows PCでArduino IDEを使うと、M5Stackなどへのプログラム書き込みに非常に時間がかかるという話をよく耳にします。
私も時々Windows PCとArduino IDEの組み合わせを使うことがありますが、ごく簡単なプログラムであっても、デバイスへの書き込みに数分レベルの時間がかかることを実感しています。
この問題に対し、Arduino IDEではなく「VS Code + PlatformIO」を使えば高速に書き込みできるという話もよく聞きます。
私は現状、Arduino IDE(Mac)でのプログラム書き込み時間に関して特に不満に思ってはいないのですが、今回「VS Code + PlatformIO」でのM5Stack用プログラムの開発方法を確認し、プログラム書き込み時間を比較してみることにしました。
環境構築手順
ここでは、Macでの環境構築手順について説明します。確認用のマイコンデバイスとして「M5Stack Basic」を使います。
VS Codeのインストール
- VS Codeのダウンロードサイト(こちら)にアクセスし、Mac版のVS Codeアプリをダウンロードします。
- ダウンロードしたアプリを「アプリケーション」フォルダに移動させます。
日本語機能拡張のインストール
- 「アプリケーション」フォルダに移動させたVS Codeアプリをダブルクリックして起動します。初期画面はこのようになっています。
- 画面左の「Extensions」アイコンをクリックします。
- 「japanese」で検索し、表示された「Japanese Language Pack for Visual Studio Code」で「Install」をクリックします。
- インストールが完了したら「Change Language and Restart」をクリックします。
PlatformIO機能拡張のインストール
- 同様に「platformio」で検索し、表示された「PlatformIO IDE」で「インストール」をクリックします。
- インストールが完了したら「Reload Now」をクリックします。
プロジェクトの作成
- 画面左の「PlatformIO」アイコン(アリの顔)をクリックし、「Create New Project」>「New Project」をクリックします。
- Project Wizardで、「Name = HelloWorld」「Board = M5Stack Core ESP32」「Framework = Arduino」として「Finish」をクリックします。
- 「このフォルダー内のファイルの作成者を信頼しますか?」と表示されたら「はい」をクリックします。
- 画面はこのようになります。
- 「PIO Home」タブに戻り「Libraries」アイコンをクリックします。
- 「m5stack」で検索し、表示された「M5Stack by M5Stack」をクリックします。
- 「Add to Project」をクリックし、プロジェクト名で「Projects/HelloWorld」を選択して「Add」をクリックします。
- 画面左のエクスプローラーで「HELLOWORLD」>「src」>「main.cpp」を選択し、そこに以下のとおりプログラムを書き込みます。M5StackのLCD画面に文字列を表示させるだけのもので、構文はArduino IDEプログラムと全く同じです。
#include <M5Stack.h>
void setup() {
M5.begin();
M5.Lcd.println("Hello World");
M5.Lcd.println("PlatformIO Mac");
}
void loop() {
}
- USBケーブルでパソコンとM5Stack Basicをつなぎ、画面下の「→」アイコンをクリックすると、つくったプログラムがM5Stack Basicに書き込まれ、LCD画面に文字列が表示されます。
【参考】Windows PCの場合
Windows PCの場合は、VS CodeのダウンロードサイトからVS Codeアプリ用の「インストーラ」がダウンロードされますので、インストーラをダブルクリックし、その指示に従ってアプリをインストールします。
それ以外は、上述のMac用の手順と同じです。
【参考】VS Code、PlatformIOを完全にアンインストールする方法
VS Code、PlatformIOが既にインストールされているパソコンに、改めてVS Codeをクリーンインストールしたい場合、VS Codeアプリだけをアンインストールしてから再度インストールしなおしても、以前の設定が残ってしまいます。
以前の設定も含めて全て初期化したい場合は、「Visual Studio Code」アプリのアンインストールに加えて、以下の設定ファイル群も削除する必要があります。
- Macの場合
- /Users/<ユーザ名>/Library/Application Support/Code
- /Users/<ユーザ名>/.vscode
- /Users/<ユーザ名>/.platformio
- Windows PCの場合
- %APPDATA%\Code
- %USERPROFILE%.vscode
- %USERPROFILE%.platformio
プログラム書き込み時間の比較
「Arduino IDE」と「VS Code + PlatformIO」で、「M5Stack Basic」へのプログラム書き込み時間を比較しました。
書き込むプログラムは、先ほどの「HelloWorld」です。
アプリを起動後、最初にプログラムを書き込むときにかかる時間、およびプログラムを少しだけ修正(LCD画面に表示する文字列のみを変更)して再度書き込むときにかかる時間をストップウォッチで計測しました。
MacとWindows PCの両方で調査しました。それぞれのモデルは以下のとおりです。
- Mac:MacBook Pro 13-inch, M1, 2020
- Windows PC:Surface Laptop Go Model 1943 i5
結果は以下のとおりです。
Mac
Arduino IDE | VS Code + PlatformIO | |
---|---|---|
初回書き込み時間 | 58.9秒 | 13.0秒 |
再書き込み時間 | 24.0秒 | 13.1秒 |
Windows PC
Arduino IDE | VS Code + PlatformIO | |
---|---|---|
初回書き込み時間 | 170.1秒 | 21.0秒 |
再書き込み時間 | 40.1秒 | 19.3秒 |
Windows PCでは「VS Code + PlatformIO」を使うことで、マイコンデバイスへのプログラム書き込みを非常に高速に実施することができました。
現状はMacを使っているため、「VS Code + PlatformIO」に乗り換える積極的な意義は見出せませんが、VS Codeはエディタとしても非常に使いやすそうなので、今後の状況によっては乗り換えも検討しようと思います。