Windows上のVisual Studio CodeでPlatformIOでM5Stack ATOM MatrixのLチカ用プロジェクトを作成し、プログラムを書き込んでみたのでその方法をメモしておきます。
PlatformIOはPython製のマイコン開発環境です。公式サイトでは
A new generation ecosystem for embedded development
https://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
をコピーして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 = espressif32
board = m5stick-c
framework = arduino
lib_deps =
M5Atom@^0.0.1
FastLED@^3.3.3
コメント
コメント一覧 (1件)
[…] https://memoteki.net/archives/3108 […]