Arduino IDEを使って、M5Stamp Pico Mateに実装されているRGB LEDのLチカと、ボタン入力を行いました。

M5Stamp Pico Mateの仕様を次に示します。

  • ESP32-PICO-D4 | 240 MHz デュアルコア、600 DMIPS、520 KB SRAM、Wi-Fi/Bluetooth、デュアルモード、4 MBフラッシュメモリ
  • 入力電源: 5 V @ 500 mA
  • 1 x RGB LED(WS2812B)
  • 1 x プログラム可能なボタン
  • インタフェース: ADC、DAC、タッチセンサ、SD/SDIO/MMCホストコントローラ、SPI、SDIO/SPIスレーブコントローラ、EMAC、モーターPWM、LED PWM、UART、I2C、I2S、IRリモートコントローラ、GPIOパルスコントローラ
  • 入出力: 12(G0、G1、G3、G26、G36、G18、G19、G21、G22、G25、G32、G33)

接続

ダウンローダ(USBシリアル変換)は「QuickLogic EOS S3のFPGAを使ってみる」で使用した「USB to TTL 」シリアルアダプタを使用します。

M5Stamp Pico Mateとダウンローダの接続図を次に示します。

M5Stack M5Stamp Picoの接続画像を次に示します。作成したLチカ・ボタン入力プログラムを実行しています。

基板に書き込みツールを作成しました。「USB to TTL 」シリアルアダプタは右側のヘッダソケット、M5Stamp Pico Mateは上部のヘッダソケットにそれぞれ挿入します。

開発環境の構築

M5Stamp Pico Mateのプロゴラム開発はArduino IDEを使用します。

  1. メニュー「ファイル」 →「 環境設定」 を選択し、「追加のボードマネージャのURL 」次のURLを設定します。
  2. https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
    

  3. メニュー「ツール」 →「ボード」 → 「ボードマネージャ 」を選択します。
  4. 「M5Stack」 を検索して表示されたパッケージを選択してインストールします。
  5. インストールが済むと、ボードリストからSTAMP-PICOが選択できるようになります。
  6. メニューから「スケッチ」→「ライブラリをインクルード」→「ライブラリを管理」を開き、次のように「STAMP-PIC」 をインストールします。

Lチカ・ボタン入力プログラムの作成

作成したLチカ・ボタン入力プログラムを次に示します。

ESP32-PICOtest.ino

#include "M5Atom.h"

uint32_t convert(CRGB color) {  // GRB
  return (color.g << 16) | (color.r << 8 ) | color.b;
}

void setup() {
  M5.begin(true, false, true);
}

uint8_t state = 0;

void loop() { 
  M5.update();  // ボタン状態更新
  CRGB color = 0;
  switch(state >> 2) {
    case 0:
      color = CRGB::Red;
      break;
    case 1:
      color = CRGB::Green;
      break;
    case 2:
      color = CRGB::Blue;
      break;
    default:;
      color = 0;
  }
  M5.dis.drawpix(0, convert(color));
  delay(50);
  if (!M5.Btn.isPressed()) {
    state = ++state & 0xf;
  }
}

プログラムの書き込み・実行

次の手順でArduino IDEの書き込み状態を見ながら、作成したプログラムを書き込みます。

  1. EN,IO0ボタンを一緒に押します。
  2. ENボタンを離します。書き込みモードに移行します。
  3. IO0ボタンを2秒後離します。Arduino IDEよりプログラムが書き込まれます。
  4. プログラムを書き込み終了ご、ENボタンを押して離します。M5Stamp Pico Mateが再起動されます。

書き込みのログを次に示します。

最大1310720バイトのフラッシュメモリのうち、スケッチが262885バイト(20%)を使っています。
最大327680バイトのRAMのうち、グローバル変数が18036バイト(5%)を使っていて、ローカル変数で309644バイト使うことができます。
esptool.py v3.1
Serial port COM4
Connecting.....
Chip is ESP32-PICO-D4 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, Embedded Flash, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: e8:9f:6d:0d:42:5c
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 1500000
Changed.
Configuring flash size...
Flash will be erased from 0x0000e000 to 0x0000ffff...
Flash will be erased from 0x00001000 to 0x00005fff...
Flash will be erased from 0x00010000 to 0x00050fff...
Flash will be erased from 0x00008000 to 0x00008fff...
Compressed 8192 bytes to 47...
Writing at 0x0000e000... (100 %)
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.1 seconds (effective 588.7 kbit/s)...
Hash of data verified.
Compressed 17104 bytes to 11804...
Writing at 0x00001000... (100 %)
Wrote 17104 bytes (11804 compressed) at 0x00001000 in 0.4 seconds (effective 379.2 kbit/s)...
Hash of data verified.
Compressed 263280 bytes to 141061...
Writing at 0x00010000... (11 %)
Writing at 0x0001e378... (22 %)
Writing at 0x0002527d... (33 %)
Writing at 0x0002a78a... (44 %)
Writing at 0x0002fd2d... (55 %)
Writing at 0x000381d2... (66 %)
Writing at 0x00041b4f... (77 %)
Writing at 0x00047760... (88 %)
Writing at 0x0004cd1d... (100 %)
Wrote 263280 bytes (141061 compressed) at 0x00010000 in 2.3 seconds (effective 918.4 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 128...
Writing at 0x00008000... (100 %)
Wrote 3072 bytes (128 compressed) at 0x00008000 in 0.0 seconds (effective 524.2 kbit/s)...
Hash of data verified.