Windows上のVisual Studio CodeでPlatformIOでM5Stack ATOM MatrixのLチカ用プロジェクトを作成し、プログラムを書き込んでみたのでその方法をメモしておきます。
PlatformIOはPython製のマイコン開発環境です。公式サイトでは
A new generation ecosystem for embedded developmenthttps://platformio.org/
と書かれています。Visual Studio Code(VSCode)のプラグインとしてインストールするとIDEのように使用することができます。

使用環境
今回の使用する環境はWindowsです。以下の2つの環境にて動作確認をしています。
-
Windows 10 Proバージョン: 1909
-
OSビルド: 18363.778
-
Visual Studio Codeバージョン: 1.45.0 (user setup)
-
コミット: d69a79b73808559a91206d73d7717ff5f798f23c
-
日付: 2020-05-07T16:18:48.860Z
-
Electron: 7.2.4
-
Chrome: 78.0.3904.130
-
Node.js: 12.8.1
-
V8: 7.8.279.23-electron.0
-
OS: Windows_NT x64 10.0.18363
-
Windows 10 Proバージョン: 2004
-
OSビルド: 19041.264
-
Visual Studio Codeバージョン: 1.45.1 (user setup)
-
コミット: 5763d909d5f12fe19f215cbfdd29a91c0fa9208a
-
日付: 2020-05-14T08:27:35.169Z
-
Electron: 7.2.4
-
Chrome: 78.0.3904.130
-
Node.js: 12.8.1
-
V8: 7.8.279.23-electron.0
-
OS: Windows_NT x64 10.0.19041
Ubuntu 18.04でも同じようにVSCodeにPlatformIOをインストールしてM5Atomにプログラムを書き込むことができました。
PlatformIOのインストール
Windowsの場合は事前にPythonをインストールしておく必要があるようです。Python 2も使用できるようですが、すでにPython 2はサポートが終了されているので特別な理由がなければPython 3を使うのがよいと思います。

PythonへのPATHが見つからなければ「Can not find working Python」というメッセージが表示されます。「I have Pyt...」をクリックしてインストール済みのpython.exeへのパスを指定します。


インストールが完了すると「PlatformIO IDE has been successfully installed!」と表示されるので「Reload Now」をクリックし、VSCodeをリロードします。

以上でインストールは完了です。
PlatformIOのセットアップ
PlatformIOのインストール完了後にVSCodeをリロードしたらPlatformIOでM5Stack ATOMのプロジェクトを作成します。

M5Stack ATOMシリーズは今はボードとして登録されていないので、ESP32-PICOを使用しているM5Stick-Cを指定します。今回はM5Stack ATOM MatrixでLチカをしようと思うので「m5atom_blink」とプロジェクト名に指定します。

Arduinoライブラリをインストール
ウィザードからプロジェクトを作成すると、VSCodeが作成したプロジェクトのフォルダを開きます。srcやlibなどのフォルダやplatformio.iniなどのファイル等が含まれることを確認できます。

M5Stack ATOMのArduinoライブラリであるM5Atomを追加します。ライブラリタブの「Registry」から「m5atom」と検索します。

「Install」をクリックするとグローバルライブラリ(プロジェクト固有ではない)としてインストールできます。

同様にして「FastLED」もインストールします。このライブラリがないと「M5Atom」ライブラリはコンパイルできませんでした。


サンプルコードの用意
[LedSet.ino](https://github.com/m5stack/M5Atom/blob/f6c492ac301feb22a65d6c74dae67126801a6478/examples/Basics/LEDSet/LedSet.ino)をコピーしてmain.cppとして保存します。
ここではいきなり#include "M5Atom.h"と始まっています。PlatformIOのサンプルでは#include <Arduino.h>から始まりますが、M5Atom.hの中でArduino.hをincludeしているのでこのままで問題ありませんでした。

VSCodeの左側にあるアクティビティバーからPlatformIOのアイコンを選び、「PROJECT TASKS」から「Build」をクリックします。特に問題がなければ「[SUCCESS]」と表示されるはずです。

ビルドに問題がなければ「QUICK ACCESS」の「PIO Home」の「Devices」から書き込む対象のM5Stack ATOM Matrixを接続し、認識されていることを確認します。今回は「COM4」として認識されていました。

「PROJECT TASKS」から「Upload」をクリックし先ほどのプログラムを書き込みます。PlatformIOでは書き込みポートは自動で選択されるようです。

無事にサンプルの書き込みができると、クリックする度にLEDの色が変わることを確認できました。

そのほか
ほかのバージョンのPythonが同時にインストールされることもあるようです。手元の環境では%USERPROFILE%\.platformio\python37\にPython 3.7.5がインストールされました。自分で明示的にインストールした記憶はないので、いつどのタイミングでこのpython.exeが呼び出されるのかはよくわかっていません。
platformio.iniに直接必要なライブラリを記述することでバージョン指定することもできるようです。
[env:m5stick-c]platform = espressif32board = m5stick-cframework = arduinolib_deps = M5Atom@^0.0.1 FastLED@^3.3.3関連記事
- TurtleBot3 + Gazebo + Navigation2 (ROS 2 Jazzy)ROS 2 JazzyでGazebo(旧Ignition)上のTurtleBot3をNavigation2(Nav2)を動かすまで+その過程で調べたことのメモです。
- (Updated )Ubuntuで一時的に容量の小さい仮想ストレージを作成する方法ディスク容量がいっぱいになったときのソフトウェアの挙動を確認したい場合などに、一時的に容量の小さい仮想ストレージを作成する方法のメモです。調べた際にちょうどいい方法がうまくヒットしなかったのでメモします。
- (Updated )CHAMPをROS 2 Humbleへアップグレードした際にやったこと4脚ロボット制御用のROSパッケージであるCHAMPを、ROS 2 Humbleに対応させるためにPull Requestを作成しました。その際に遭遇した内容については、その他のROS 2パッケージにおいてもROS 2 GalacticからROS 2 Humbleに移行する際に影響する可能性がありそうなので共有します。
- Mini Pupperを動かすまで(ソフトウェア準備編)前回はMini Pupperを組み立てました。今回は起動してジョイスティック操作するまでをメモします。
- [2022年2月版] 3DプリンタKINGROON KP3Sのファームウェア書き換え格安なのに結構しっかりとしていると話題の3Dプリンタ、KINGROONのKP3Sを改造してオートレベリング対応するため、BLTouch(のクローンである3DTouch)に対応させるべくファームウェアを更新したのでその方法をメモしておきます。