platformIO IDEとは
platform IDEとはIDEの名の通り、ソースコードを編集、コンパイル、マイコンに流し込むツールです。フレームワークとしてArduino言語が使用できます。
「ESP32 入門」とgoogle検索で調べると、Arduino IDEでの環境構築を勧められますが、主要な機能はArduino IDEと同じです。ただ、Arduino IDEよりも快適にコーデイングすることができます。
Arduino IDEとの違い
Visual Studio Codeで開発ができる
詳しいことは後述しますが、PlatformIO IDEはVisual Studio Code (vscode)上に構築して使用します。つまり、世界で一番使われているエディタといわれているvscodeの機能を利用できるほか、vscodeで普段コードを書いている方は使い慣れたエディタでコードを書けるということです。
個人的にvscodeでesp32の開発をしていて便利だなと思う点を挙げたいと思います。
1.IntelliSenseが使える
IntelliSenseって何だよっていう方に一言で説明すると、予測変換機能です。例えばC言語でprintf
関数を打とうとするとpr
を打った段階でこのように候補の一番上にprintf
が出現します。
予測変換だけでなく、ミスタイプについても指摘してくれます。
例えば、printf("Hello world")
の文に;
をつけ忘れてしまいました。そうすると、赤い波線がソースコードの中に出現して、ミスタイプがあることを教えてくれます。
2.github copilotが使える
予測変換繋がりで言うと、github copilotが使えるのもデカイですね。
github copilotはGitHubとOpenAIが共同で開発(OpenAI Codexを利用)したAI駆動のコード補完ツールです。
たとえば、c言語でint main(void)
と打つと以下のように、自動でコードを提案してくれます。
(薄い灰色の部分がAIが提案した文で、tab
キーを押すとAIの文を受け入れられます)
C言語のようなメジャーな言語でない、Arduino環境でもgithub copilotは使えます。
例えば、今回はシリアル通信をするプログラムを作るとして、setup関数の中にSerial.begin(115200);
と書こうと思います。
するとSetup関数の中にS
と一文字打つだけで、Serial.begin(115200);
が提案されました。
github copilotを使えば、爆速でコーデイングできること間違えなしですね!!
github copilotは残念ながら、有料のツールなのですが、学生は使うことができます。
学生フォーミュラの方など、学生の方は導入してみてはいかがでしょうか?
3.コードフォーマッタが使える
地味に便利なのが、このコードフォーマット機能です。コピペとかするときに、インデントが崩れることがあると思います。
このようにインデントがぐちゃぐちゃになってしまった文も
ctrl+s
で保存すると
自動的にコードを整形してから保存してくれます。tab
を連打してインデントを揃えるような不快な作業がなくなるので、結構便利です。
チームでコードを書くときは、人によってインデントやかっこのつけ方が違うので、このようなコードフォーマットを利用すると、コードの書き方を統一できるので、可読性が上がります。
4.UIが今風
以外と大事なUIに関してです。
Arduino IDEはご存知の通りUIがちょっと古いです。
(Arduino IDEは2.0以降になってマシになりましたが、2.0はArduino以外のマイコンボードとの互換性がよくない気がします。最近使ってないから分からないですが、今は改善されたのかな?)
一方vscodeはUIが洗練されています。またvscodeは拡張機能を追加することができ、テーマも変えられます。昨日はライトテーマだったけど、気分が上がらないからダークテーマにしてみようとかもできますね!
他にも、拡張機能とか色々他にもメリットがありますが、そこは皆さんの身の回りにいるvscode信者にお願いしたいと思います。
platform IOならではの機能
気づいたらvscodeの宣伝になってしまったので、platform IOならではの機能を紹介したいと思います。
ポートの自動識別
Arduino IDEを使っていて書き込みができないときにありがちなミスに、マイコンを接続しているusbポートと違うポートを指定していて書き込みができないというのがありますね。しかも、ここのusbポートはcom6でなんてことを普通は覚えていないので、デバイスマネージャで調べたり、色んなポートを選択して書き込みを試みるポートガチャをしたりしますが、platform IOはポートを自動識別して書き込みしてくれるので、ポートで悩むことはありません。
デバック機能
実はesp32はブレークポイント(好きなところでプログラムを止めて、変数の状態やプログラムの動き方を知れる機能)を使ってデバック作業をすることができます。
詳しいことは、以下の記事をご覧ください。
環境構築と使い方について
想像以上に記事が長くなってしまったので、環境構築と使い方については以下の記事で紹介しています。
(現在執筆中につきしばらくお待ちください。)
まとめ
Platform IOはvscodeで上で使える。つまり最強。
宣伝
現在新潟大学学生フォーミュラプロジェクトでは、スポンサーになっていただける企業様や個人を募集しています。
スポンサーの方は、Webサイト(2023年中には改修して綺麗になる予定)やマシン本体やTwitterやInstagramなどの各種SNSで宣伝、今年の活動報告書の送付をさせていただいています。
下記のメールまでご連絡をお待ちしております。
next-fp@eng.niigata-u.ac.jp