PlatformIOでESP32の開発をしよう

PlatformIOでESP32の開発をしよう

概要

この記事は 東京工業大学ロボット技術研究会(rogy) Advent Calendar 2018 の 22日目の記事です。

こんにちは。けりです。

今回は、PlatformIOという強力な マイコン開発環境 の紹介です。

PlatformIO とは?

PlatformIOとは、mbedやArduinoと似たような感じで、さまざまなボードやライブラリを統一的に開発できる開発環境です。

PlatformIO はESP32マイコンを公式にサポートしていて、ESP-IDFArduino Core for the ESP32から選んで開発することができます。

なぜPlatformIOを使うの?

PlatformIOのいいところは、強力なエディタであるVisual Studio Code (VSCode)のプラグインとして使用できるところです。

私は最近、あらゆるコーディングをVSCodeで行っています。

これを使えば、さまざまなマイコンをVSCodeで開発することができます。

さらに、PlatformIOのLibrary Managerはとても優秀で、 VSCodeのC/C++プラグインと連携して関数の定義への移動などを自動的に設定してくれます。

VSCode + PlatformIO = 強力なマイコン開発環境

というわけで、VSCodeとPlatformIOの組み合わせは、あらゆるマイコンに対する強力な開発環境となります。

PlatformIO の導入

こちらに手順があります。

  1. VSCodeをインストールする
  2. VSCodeの拡張機能からPlatformIOをインストールする
  3. VSCodeを再起動

PlatformIO で ESP32 を使うには

なんと、設定ファイルにESP32を指定するだけで、toolchain、SDKなどを自動的に取得してくれます。 たとえWindowsでもOSXでもLinuxでも、自動で開発環境が整います。

これはESP32だけではなく、他の対応マイコンも同様です。
PlatformIOすごいですね…

動作確認

VSCodeのコマンドパレット Ctrl+Shift+PPlatformio home と入力すると、PlatformIOのHome画面が出てきます。

プロジェクトの作成

  1. New Project
  2. プロジェクト名を適当に入力
  3. ESP32 Dev Module というボードを選ぶ
  4. Frameworkは ArduinoESP-IDFの好きな方を選ぶ
  5. 完了

ビルド

コマンドパレットで Platformio: Buildを選ぶとビルドできます。

書き込み

  1. ESP32をPCに接続して、書き込みモードで起動
  2. コマンドパレットでPlatformIO: Uploadを選択
  3. 適当なCOMポートが自動的に選択されて書き込みがされる

もし複数のデバイスが接続されていて、シリアルポートを選択したい場合は、 既にあるplatformio.iniファイルに

upload_port = COM11
monitor_port = COM11

などと記入すればそのポートに接続されます。

詳しくはこちら

シリアルモニタの表示

コマンドパレットでPlatformIO: Serial Monitorを選択すると、上記のポートに接続されます。

ここで便利なのが、 ESP32のようにシリアルで書き込みするマイコンの場合、 一度シリアルポートを切断して、書き込みをして、シリアルポートを開きなおさなければなりませんが、 PlatformIOの場合、自動でそれをやってくれます。

まとめ

これまでPlatformIOを使ってよかったところを上げてみると

  • 導入が簡単
  • 公式のドキュメントが充実
  • VSCodeで開発できる
  • ちゃんとマイコンのSDKなどのバージョンを選択できる
  • オンラインの汎用ライブラリをインストールできる
  • マイコンに直接書き込みができる
  • 書き込み時にシリアルモニタを開いていても大丈夫

って感じでしょうか。

あまりに使やすいので、一度使うとやめられなくなりそうです。

ぜひ使ってみてくださいね!