PlatformIOでM5Stack ATOMに書き込むまで

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が作成したプロジェクトのフォルダを開きます。srclibなどのフォルダや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 = 
    [email protected]^0.0.1
    [email protected]^3.3.3

コメント