6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ESP32はPlatformIO IDEでの開発がおすすめという話

Last updated at Posted at 2023-05-08

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が出現します。
スクリーンショット 2023-05-02 174026.png

予測変換だけでなく、ミスタイプについても指摘してくれます。
スクリーンショット 2023-05-02 175605.png
例えば、printf("Hello world")の文に;をつけ忘れてしまいました。そうすると、赤い波線がソースコードの中に出現して、ミスタイプがあることを教えてくれます。

2.github copilotが使える

予測変換繋がりで言うと、github copilotが使えるのもデカイですね。
github copilotはGitHubとOpenAIが共同で開発(OpenAI Codexを利用)したAI駆動のコード補完ツールです。
たとえば、c言語でint main(void)と打つと以下のように、自動でコードを提案してくれます。
スクリーンショット 2023-05-02 182109.png
(薄い灰色の部分がAIが提案した文で、tabキーを押すとAIの文を受け入れられます)

C言語のようなメジャーな言語でない、Arduino環境でもgithub copilotは使えます。
例えば、今回はシリアル通信をするプログラムを作るとして、setup関数の中にSerial.begin(115200);と書こうと思います。
スクリーンショット 2023-05-02 183615.png
するとSetup関数の中にSと一文字打つだけで、Serial.begin(115200);が提案されました。
github copilotを使えば、爆速でコーデイングできること間違えなしですね!!

github copilotは残念ながら、有料のツールなのですが、学生は使うことができます。
学生フォーミュラの方など、学生の方は導入してみてはいかがでしょうか?

3.コードフォーマッタが使える

地味に便利なのが、このコードフォーマット機能です。コピペとかするときに、インデントが崩れることがあると思います。
このようにインデントがぐちゃぐちゃになってしまった文も
スクリーンショット 2023-05-02 185854.png
ctrl+sで保存すると
スクリーンショット 2023-05-02 190050.png
自動的にコードを整形してから保存してくれます。tabを連打してインデントを揃えるような不快な作業がなくなるので、結構便利です。

チームでコードを書くときは、人によってインデントやかっこのつけ方が違うので、このようなコードフォーマットを利用すると、コードの書き方を統一できるので、可読性が上がります。

4.UIが今風

以外と大事なUIに関してです。
Arduino IDEはご存知の通りUIがちょっと古いです。
(Arduino IDEは2.0以降になってマシになりましたが、2.0はArduino以外のマイコンボードとの互換性がよくない気がします。最近使ってないから分からないですが、今は改善されたのかな?)
スクリーンショット 2023-05-08 125646.png

一方vscodeはUIが洗練されています。またvscodeは拡張機能を追加することができ、テーマも変えられます。昨日はライトテーマだったけど、気分が上がらないからダークテーマにしてみようとかもできますね!
スクリーンショット 2023-05-08 125728.png

他にも、拡張機能とか色々他にもメリットがありますが、そこは皆さんの身の回りにいる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

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?