ESP32をVSCodeとPlatformIO IDEで動かす方法

が投稿

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ファイルを編集することで,設定を変えられる.

エラーが出た場合

#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をブロックしませんが、カスペルスキーはブロックするようです。

参考リンク