趣味探しブログ「研究しましょう」 --- 日記 マガジン

    やりたい趣味を探してネットをさまよう私の、ブログです --- I'm here. Find me out.
0

M5Stack プログラミング環境、aruduinoIDE と VSCode PlatformIO の共存を調査    #電子工作初心者 #スタックチャン #M5Stack

 M5Stack のプログラミング環境として、Aruduino IDE と VSCode PlatformIO の両方を使う環境を整備している。スタックチャンのソースコードをいじる前に、整理しておきたいと思って。

Aruduino IDE は、特に問題は無い(というか、イジリ所が分からない)。問題は VSCode & PlatformIO 、ライブラリー周りが、よく分からなくて、調査、実験してみたので、整理。

  「問題はライブラリー」

[Aruduino] フォルダ直下に、以下のフォルダーやファイルがある物とする。

[libraries]
[ProjectDirName] プロジェクトフォルダー
 ー [lib]
 - [.pio]ー[libdeps]-[env name] ライブラリ収集フォルダー?
 - [ProjectDirName] ソースコード(プロジェクトフォルダーと同名が必要)
 ー platformio.ini 環境設定ファイル

こういうフォルダ構成で、platformio.ini に以下の様に記述する。(今回の、ライブラリに関係の無い記述は、無視している)

① [platformio]
② src_dir = ProjectDirName
③ lib_dir = ../libraries

④ [env]
⑤ lib_deps =
   M5Core2
   M5Stack-Avatar
⑥ ;  ESP32-A2DP
⑦  https://github.com/pschatzmann/ESP32-A2DP

まず、①の [platformio]セクションを追加する。②でソースファイル置き場のフォルダー名を指定する。aruduino IDE の関係上、これは、プロジェクトフォルダー名 [ProjectDirName] と同じである必要がある。(蛇足で、PlatformIO が自動作成したフォルダ src は、main.cpp ごと削除しておく)

追記: ソースファイルは必ず、プロジェクトフォルダー内にフォルダーを作って、そこに入れる事。例えば src_dir = ./ 等とすると、ビルドで生成されたオブジェクトをも参照してしまい、ビルドエラーとなる。

③でライブラリーの置き場所フォルダー名を指定する。これを指定しないと、デフォルトの lib が適用される。ライブラリフォルダー名は、[ProjectDirName] プロジェクトフォルダーからの相対パスで指定してもいいし、絶対パスで指定してもいい。

ここに、 ../libraries と指定すると、aruduino IDE がダウンロードしたライブラリーを、そのまま利用できる。ただし、その場合、ライブラリーの変更は、全てのプロジェクトに影響を与えてしまうので、注意が必要。

追記: ../libraries を指定するとリンクエラーになる場合がある。その際は、プロジェクトフォルダー内に作ったフォルダー( ./lib 等)を指定するのがよい。

④の [env] セクションでは、使用するライブラリーの名前を指定する。PIO HOME でライブラリーを指定すると、ここに記述される。

コメントにしたい場合は、セミコロン ; を文頭に書く。ローカルに無い場合は、github の URL を記述してもいい。

以上で、Aruduino IDE と VSCode PlatformIO の両方で同じライブラリーデータを使うことが出来るようになる。

 これは、うまく説明できないのだけれど、platformio.ini に複数の [env] 環境を記述して切り替えてビルドすることができる。以下の様に書いておく。

[env] デフォルトの共通環境
[env:env1] env1 環境
[env:env2] env2 環境
・・・

[env] は共通して先に設定され、その後に、各名前の付けられた環境設定が実行される物と思われる(不確か)。[env] の値は ${env.lib_deps} 等で参照できる。

この状態で、以下の写真のステータスバーの矢印先のアイコンをクリックすると、環境を選ぶプルダウンリストが出てくるので、それを選択すると、デフォルトの環境を指定できる。

PlatformIOの環境選択
 上記を含め、platformio.ini に関してさらなる情報を知りたければ、『platformio.ini のドキュメント』を参考にする。英語だけど

 さてと、これで、M5Stack の開発環境の基本は把握できたと思うので、ゆっくりと、スタックチャンのファームウェアーをいじっていきたい。

ただ、私の持っている M5Stack Core2 は、細かいポートにアクセスできない感じなので、M5Stack fire を買おうか迷い始めてる。Core2 に、汎用ポートにアクセスできるオプションのスタックとか、無いのかなぁ

Core2 の PCBに、直接リード線を半田付けするのだけは、避けたい

該当の記事は見つかりませんでした。