2018年4月13日金曜日

ESP32 + VisualStudio Code + PlatformIO

マカーだけどいろいろあってVisualStudio Codeを入れてESP-IDFを動かすことに。参考にしたのはこの辺。ありがとうございます。
Install the IDE PlatformIO extension for Visual Studio Code

Windows版VSCだとArudino IDEプラグインが使えるんですが、このプラグインはMacには出ていないようなので、PlatformIOを使います。AtomやSublimeでもPlatformIOは使えるんですが、どうもしっくりこない。

まずVisualStudio Code、Mac版のインストール。ダウンロードして解凍すると.appができるので /Application へコピーし、ダブルクリック。

PlatformIOのインストールは、表示>拡張機能メニューから platformio を探して選びます。


試しにプロジェクトを作ってみます。PlatformIOのHome(画面下コマンド行の家アイコン)をクリックし、New Projectをクリックします。

プロジェクト名を入力し、BoardのところでESP32と入力すると候補が出てきますので、無難にEspressif ESP32 Dev Moduleを選びます。FrameworkはESP-IDFを選び、Finishをクリックすると空のプロジェクトができます。


すると勝手に依存関係が解消されていきセットアップが完了します。PlatformIO偉い。

srcを右クリックして「新しいファイル」を選び、main.cを作ります。適当なコードを入力します。とりあえずesp-idfのexamplesにあるhello_world/main/hello_world_main.cの内容をコピーしました。

シリアルモニタのポートとボーレート設定は、platformio.iniに
monitor_port = /dev/cu.SLAB_USBtoUART
monitor_baud = 115200
を追加。ポートは設定しなくても聞いてきてくれるけど、まぁこっちの方が楽かと。

では、ESP32をUSBに接続し、ウィンドウ最下行の「→」ボタンでbuild&uploadします。最初のコンパイルが長い遅いのはお約束。なお、VSCを再起動する度に再コンパイルする仕様ですが、修正してコンパイルした時は対象ファイルだけコンパイルされます。

コンパイルが終わり、ESP32へのアップロードが始まります。

終わったらウィンドウ最下行の「Monitorアイコン(横向きのACプラグ)」をクリックするとmake monitorが起動します。

なお、シリアルポートを専有するので再度uploadするときにはmonitorを止めなければいけませんが、uploadボタンをクリックすると「monitorタスク止めますか?」と聞いてくれるので安心です。

Windowsは大嫌いですが、MSの開発ツールは嫌いではありません。VSCも良く出来ています。少なくともEclipseよりもサクサク動いてくれる、ような気がしますw 

少なくともArduino IDEよりもかなりマシに使えます(※個人の感想です)。

ただ、ESP-IDFとビルド方法が異なるので、ESP-IDFで作った既存プロジェクトを開くことはできません。開こうとするとplatformio.iniが無いって言われるので適当にコピーして入れて開いても、VSCからはビルドできません。

PlatformIOで作ったらプロジェクトならビルドできますが、標準ツールと違うビルドシステムにするのは少し抵抗があります。

とりあえず、VSC上でターミナルを開き、そこで make flash を実行すれば、ビルドしてくれるんですけども…違う…そこじゃない感が凄いです。

まぁサクサクで落ちないIDEってだけでも十分っす。あとArduinoプロジェクトに関しては、Arduino IDEよりぜんぜん良いですし。

0 件のコメント:

コメントを投稿