ESP32をVSCodeとPlatformIO IDEで動かす方法
2018年度のアルバイト学生さんがまとめてくれた内容です。間違い等があるかも知れません。お気づきの点がございましたら、ご連絡下さい。
このページは?
- 研究室ではESP32を標準マイコンとしてしようしている。その開発IDEとして便利な方法をまとめた。
- ESP32をVSCode(visual studio code)とPlatformIO IDEという開発環境を使って動かす方法
始め方
- VSCode(Visual Studio Code) をインストール
- VSCodeを起動する.
- 起動したらExtensionsタブをクリックして,検索欄で"PlatformIO"と検索し,"PlatformIO IDE"をインストール
- インストールしたらコマンドパレット(Ctrl + Shift + P or 左下の設定アイコン→Command Palette)を開き,"PlatformIO"と検索する.
- 検索したら,"PlatformIO : Home"を選択し,起動すると以下の画面になります.
- New Projectを選択し,Name,Board,Frameworkを入力し,finish.
- Name : プロジェクトの名前
- Board : ボードの種類.今回は"Espressif ESP32 Dev Module"
- Framework : ESP-IDFとArduinoがあるのでどちらか選択.Arduinoにした方が問題なく実行できるので,Arduinoを選択してください.ESP-IDFを選択した際にライブラリの関係でエラーが出ました.
- https://github.com/platformio/platformio-vscode-ide/issues/603 このフォーラムでもArduinoライブラリを使いたいなら,framework = arduinoとすると書いてある.
- コードの記述は,src/main.cppを編集する.この際,Arduino.hをincludeする必要がある.
- 実行方法は,コマンドパレットから可能
- "PlatformIO : Build" - ビルド
- "PlatformIO : Upload" - 書き込み
- もしくは,下部の青いバーのアイコンでビルドや実行もできる.
特徴
- Arduino IDEよりもコードが遥かに見やすい.
- 自動補間が効いてたり,エラー部分を書いてる途中に教えてくれる.
- ESP32以外にもライブラリがあり,簡単にインストールできる.
- COMポートを選択しなくても,自動で選択してくれる.
各種設定
platformio.iniファイルを編集することで,設定を変えられる.
-
- リファレンスサイト https://docs.platformio.org/en/latest/projectconf.html
- 例(シリアルモニタの速度を115200に設定)
エラーが出た場合
#include <Arduino.h>
上記のようなArduino.hをincludeする部分で,ライブラリがないっというエラーがeditor上で見られる場合があります.ですが,コンパイルは通るようなので,実行してみてください.
コンパイルが通らない場合は,一度VSCodeを再起動してみて下さい.もしくは,"platformio.ini"ファイル内のframeworkをarduinoにしてみてください.以下は"platformio.ini"内の設定部分です.
[env:esp32dev] platform = espressif32 board = esp32dev framework = arduino
エラーの原因については詳しい理由はわからないです...公式のフォーラムでもrebuildするのを待ってと言っている.
https://github.com/platformio/platformio-atom-ide/issues/885
注意事項
Pythonを導入しておく
2019/11/27追記。@faruco10032 に教えていただきました。ありがとうございます。
PlatformIOは一部pythonを使って動いているので、pythonが導入する必要があります。システム要件にはPython 2.7 or Python 3.5+ と書いてあるので、適したバージョンをインストールしてください。
Windows defenderからPlatformIOを除外する(Winの方)(2019/11/27追記)
2019/11/27追記。@faruco10032 に教えていただきました。ありがとうございます。
PlatformIOは使用するためにサーバーとの通信を行います。そこでwindows defenderにブロックされないようにPlatformIOがあるフォルダを除外設定に追加しておく必要があります。
通常windows defenderはPlatformIOをブロックしませんが、カスペルスキーはブロックするようです。