LoginSignup
3
3

ESP32でのPlatformIO IDEの使い方と環境構築

Last updated at Posted at 2023-05-09

環境構築

windowsの方向けに説明します。MacやLinuxの方は、一部違うところがあると思います。

1.vscodeのインストール

スクリーンショット 2023-05-08 150718.png

インストールするときには、基本的に肯定的な言葉を押していればOKなのですが、赤丸のところにチェックを入れておくと便利です。
スクリーンショット 2023-05-08 151004.png
(エクスプローラーの右クリックでCodeで開くというメニューが追加されます)

詳しいvscodeのインストール手順は次のページをご覧ください。

2.Platform IOのインストール

スクリーンショット 2023-05-08 152147.png

vscodeの拡張機能のページを開き(写真の赤丸のところマークをクリックする)、検索欄(写真の黄色い下線の欄)で「platformio」と調べる。
スクリーンショット 2023-05-08 152612.png

すると一番上にアリさんのマークの拡張機能がでてくる(赤丸のエリア)のでインストールしましょう。
スクリーンショット 2023-05-08 153306.png

拡張機能がインストールされると、左側の欄にアリさんマークが追加されます。

アリさんマークをクリックしてみましょう。
画面右下にポップアップが出現します。
これはplatformIO IDEをインストールしていることを表しています。しばらく待ちましょう。

image.png

Platform IOのインストールに成功したら、ポップアップが出現するので、Reload Nowを押してvscodeを再起動します。

これで環境構築完了です。

インストール中にエラーが出た方へ

image.png

Error: error: subprocess-exited-with-error python setup.py bdist_wheel did not run succesfully. exit code: 1

インストール中にこんなメッセージのポップアップが出た方は居るかもしれません。

ここに修正方法があります。

https://community.platformio.org/t/platformio-ide-installation-fails-on-vscode/33586

英語恐怖症の方のためにやり方を書きます。

実はこのエラーは使用しているpcのユーザー名が長すぎるために起こります。(platformIO以外の拡張機能を入れるときも、ユーザー名が長すぎるとエラーが起こることがあるらしい)
ということで、長い名前でもエラーが起こらないようにしましょう。

Windowsマークを右クリックし、ファイル名を指定して実行をクリックします。

gpedit.mscと入力し、okを押します。
image.png

ローカルグループポリシーエディターが出現します。
コンピューターの構成→管理者用テンプレート→システム→ファイルシステムに進むと、以下のページに到達します。
image.png
Win32の長いパスを有効にするをクリックします。

ポップアップが出現したら、有効にして、適用してOKを押し、設定を保存します。

image.png

これでvscodeを再起動して、もう一度アリさんマークをクリックすると、インストールが完了するはずです。

platformIO IDEの使い方

platformIO IDEのホーム画面

スクリーンショット 2023-05-08 160135.png
ホーム画面に移動するには、アリさんマークのをクリックして上の画像のようなタブを開き、赤丸のopenをクリックするとホーム画面に移動できます。

スクリーンショット 2023-05-08 172520.png

この画面がホーム画面です。

プロジェクトの新規作成

New Projectをクリックします。
スクリーンショット 2023-05-08 172521.png

クリックすると次のようなポップアップが出現します。
スクリーンショット 2023-05-08 174442.png

  • Nameにはプロジェクトの名前(好きな名前)。

  • Boardには使っているesp32のボードを選択肢の中から選択します。
    うちの大学だと、次のように選択してます。ご自身のマイコンに合わせて選択してください。

    • 秋月電子とかで売ってるESP32はEspressif ESP32 Dev Module
    • カメラが付いているマイコンキットのやつはEspressif ESP-WROVER-KIT
    • M5Stack Toughはm5stack core esp32
  • FrameworkはArduinoを選択してください。

  • Locationなのですが、ファイルを保存する場所の設定です。こだわりがない人はそのままでも大丈夫です。

もしOneDriveでドキュメントフォルダーを同期させている方は、Use default locationのチェックを外して、OneDriveで同期していないファイルを選択することをオススメします。結構OneDriveとの相性悪いです。

スクリーンショット 2023-05-08 181035.png

以下のようなローディング画面が表示されます。初めてPlatformIO IDEでプロジェクトを作る方は、かなり長いロードになると思います。

ローディングが終わるとプロジェクトの作成は完了です。

既存のArduinoのコード(拡張子が.ino)をPlatformIOで使う方法

スクリーンショット 2023-05-08 172522.png

Import Arduino Projectをクリックします。詳しくは説明しませんが、使うマイコンを選び、インポートしたいArduinoのプログラムを選択して、画面の指示に従えばインポートできるはずです。

編集するファイルについて

プロジェクトを作成するとファイルが自動生成されます。
スクリーンショット 2023-05-08 182555.png
ファイル構造は画像のようになっています。
このうち以下の2つのファイルをまずは覚えましょう。

  • src/main.cpp: メインのソースコード はです。このファイルを弄っていきます。
  • platformio.ini: プロジェクトの設定が書かれています。

main.cppファイルの書き方について

スクリーンショット 2023-05-08 184436.png

main.cppは基本的にArduino IDEの.inoファイルと 同じ です。

ただし、以下の点がinoファイルと違うので注意しましょう。

  • #include <Arduino.h>が必ず必要

PlatformIOでArduinoの関数を利用するにあたり、必須のライブラリとなっているので、インクルードされています。忘れがちですが、#include <Arduino.h>忘れるとプログラムが動かない大事な呪文 だと覚えてください。

  • 関数の呼び出し位置よりも後で宣誓するとエラーになる。

inoファイルではなくcppファイルであることで起こる問題ですね。
スクリーンショット 2023-05-08 185643.png
このようにsetup関数の中でfunction関数を呼び出していますが、このfunction関数はsetup関数よりも後に宣誓されています。このような書き方は.inoファイルならエラーにならないのですが、cppファイルならエラーになってしまいます。

src/main.cpp:6:3: error: 'function' was not declared in this scope 

なので、

スクリーンショット 2023-05-08 190224.png

このようにsetup関数とloop関数は 一番後ろに書く ようにしましょう。

コンパイルと書き込みについて

スクリーンショット 2023-05-08 190802.png
ウィンドウの下のボタンを押すことで、様々なことが実行できます。
スクリーンショット 2023-05-08 190852.png
以下の2つのボタンを覚えましょう。
スクリーンショット 2023-05-08 190854.png
この矢印のマークがコンパイルとマイコンへのアップロードをしてくれるボタンです。

スクリーンショット 2023-05-08 190853.png
こっちのチェックマークもありますが、こっちはコンパイルのみでアップロードはしてくれないので、注意してください。

シリアルモニターについて

先程のウインドウ下のエリアでシリアルモニターが使えます。
スクリーンショット 2023-05-08 190852.png
スクリーンショット 2023-05-08 190855.png
フラスコマークの横にあるコンセントみたいなマークを押すとシリアルモニターが出現します。
ただ、ここではボーレートの設定ができません。
ボーレートの設定は`platformio.iniファイルで行います。
スクリーンショット 2023-05-08 192115.png
以下のような文を追加してください。

monitor_speed = 115200

115200のところに使用したいボーレートを代入してください。

シリアルモニターを使っているときに帰ってくるはずの値が正しく表示されない場合は、ボーレートの設定をしたかをチェックしてください。

ちなみにArduino IDEのようなシリアルモニターを使える拡張機能があります。

シリアルモニター拡張機能の詳細はこちら ![スクリーンショット 2023-05-09 115823.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3219558/cdb23836-15b2-38f7-6996-3b2fae2f942e.png) 拡張機能の検索欄に「Serial」と入力すると、一番上にMicrosoft製のSerial Monitorが出てきます。

使い方はvscodeでCtrl-@を押すとターミナルが出現しますが、この拡張機能をインストールするとシリアルモニターという項目が出現します。
スクリーンショット 2023-05-09 120813.png
これをクリックすると、シリアルモニターが出現します。
スクリーンショット 2023-05-09 121323.png
ポートでマイコンが刺さっているポートを選択し、正しいボーレートを選択し、監視の開始をクリックするとマイコンから情報が流れてきます。
注意点 なのですが、この拡張機能を使うときは監視中にマイコンにプログラムを書き込もうとすると、ポートが使われているので、書き込みできない的なエラーが出てくるので、プログラムを書き込むときは 監視の停止を押してからプログラムを書き込みましょう。

結局デバッグ中にいちいち開始したり、停止したりするのが煩わしくて、PlatformIOに付いているシリアルモニターを私は使うことが多いです。

ライブラリのインポート

Librariesをクリックします。
スクリーンショット 2023-05-09 122957.png
Librariesのページに移動できます。検索欄にインポートしたライブラリの名前を検索しましょう。
スクリーンショット 2023-05-09 123226.png
例えば、今回は「LovyanGFX」というモジュールをインポートするとします。
スクリーンショット 2023-05-09 123832.png
2番目に出てきてますね。
ライブラリをクリックしましょう。
スクリーンショット 2023-05-09 124049.png
青いAdd to Projectボタンを押せばライブラリをダウンロードできます。
また、赤い線の場所をクリックすると、このライブラリの使い方やサンプルが書かれています。
察しの良い方はお気付きだと思いますが、githubとリンクされています。ライブラリをインポートする上で、必要な情報がピックアップされて表示されている感じです。使いやすくて便利ですね。

ライブラリの削除。

ホーム画面からProjectを開きます。
スクリーンショット 2023-05-09 130735.png
消したいライブラリがインポートされているプロジェクトの青いConfigureボタンをクリックしてください。
クリックするとプロジェクトの設定画面が表示されます。
下のほうに Libraly Options という項目があります。
スクリーンショット 2023-05-09 131244.png
その中に消したいライブラリが書かれていると思うので、ライブラリ名のよこのバツボタンを押します。
最後に 画面右上の青いSaveボタンを押します。
saveを押すのを忘れないで下さい。

ライブラリの削除についてですが、バグやコンパイルが通らない原因になるので、必要ないライブラリが出たら逐次削除することをおすすめします。

まとめ

長くなってしまいましたが、環境構築と使い方は以上です。この記事を参考程度にPlatformIOで遊びながら覚えるのが、一番覚えられると思います。
ということで、良いPlatformIO IDEライフを。

宣伝

現在新潟大学学生フォーミュラプロジェクトでは、スポンサーになっていただける企業様や個人を募集しています。
スポンサーの方は、Webサイト(2023年中には改修して綺麗になる予定)やマシン本体やTwitterやInstagramなどの各種SNSで宣伝、今年の活動報告書の送付をさせていただいています。
下記のメールまでご連絡をお待ちしております。
next-fp@eng.niigata-u.ac.jp
car run.jpg

3
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
3
3