見出し画像

M5Stamp Pico Mate開封してLチカしてみた

こんにちは遠藤です。

M5Stackから新しくリリースされたM5Stampが購入できたので、開封してArduino IDEで簡単なサンプルプログラムを書き込むところまで試してみました。

スイッチサイエンスの商品ページはこちら。
今アクセスするとすでに在庫切れ、プレス記事をみてすぐポチっといてよかった。

https://www.switch-science.com/catalog/7360/

以下のように、すでにM5Stampを検証した記事はいくつかあがっていますが、先週の社内のもくもく会で試してみたところなので、私なりにまとめてみることにしました。


いつも参考にさせていただいていますが、lang-ship.com (たなかまさゆきさん)の記事はとても詳細にレポートされています。

まずは開封

パッケージには、M5Stamp PICO Mate本体とピンソケット・ピンヘッダ、Groveポートとケースを空け締めするための六角レンチが入っています。

画像1

まず試すためには、ICクリップを用意するか、付属のピンヘッダまたはピンソケットはんだ付けする必要があります。

また、USBポートがないので、別途USBシリアル変換ケーブルまたはモジュールを用意する必要があります。

私はいまのところM5Stampの使いみちは特に思いついていないので、とりあえずブレッドボードにさせるようにピンヘッダを取り付けてみました。

画像10

ところで確かに小さいのは小さいですがM5Atomと比較してみると横幅はスリムになりましたが、縦の長さはほぼ同じです。
あとは、他のモジュールと合わせて組み込んだりするときに自由度が高いあたりが良いところでしょうか。

画像9

USBシリアル変換ケーブル・モジュール

M5Stampにプログラムを書き込むためにはUSBシリアル変換ケーブルまたはモジュールを用意する必要があります。

USBシリアル変換ケーブルは、以下のようなものです。

USBシリアル変換モジュールは、以下のようなシリアル変換ICが載ったモジュールのことです。

今回は、手元にあった秋月電子で購入できる以下のモジュールを使用しました。

こちらシリアル変換ICはFT232RQというチップが搭載されており、使用するにはドライバーが必要です。
ドライバーは以下のページからダウンロードできます。

https://ftdichip.com/drivers/vcp-drivers/

また、ピンヘッダが取り付けられてないので、はんだ付けする必要があります。

画像2

面倒なのでM5Stampにプログラムを書き込みたいだけなら、はんだ付け不要な変換モジュールを選択したほうが良さそうです。

以下、こちらのモジュールを使用した解説になります。

Arduino IDEのセットアップ

Arduino IDEでプログラムを書き込むには、M5Stackのボードマネージャをインストールする必要があります。

以下の、M5Stampのクイックスタートに従ってセットアップします。

https://docs.m5stack.com/en/arduino/arduino_development

「https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json」を追加のボードマネージャのURLに追加します。

画像3

ボードマネージャを開いて「M5Stack」を検索、インストールします。

画像4

M5StampとUSBシリアル変換モジュールの繋ぎかた

FT232RQのモジュールはRSTがあるので、以下のように繋ぎます。

画像5

注意点としては、書き込み時はDownloadモード?にしておく必要があるためGPIO0をGNDに接続しておく必要があります。

このあたりは、M5Stick-Cと同じですね。

実際につなぐとこんな感じです。ポイントはGPIO0はGNDに落としておきます。

貼り付けた画像_2021_08_23_9_36

Arduino IDEでプログラムを書き込む

以上で、Arduino IDEでプログラムを書き込む準備ができました。

M5AtomのButtonサンプルを少し書き換えたものを使用しました。(実際は、M5AtomとボタンとLEDのピンアサインは同じなのでそのままでも動きます)

#include "M5Atom.h"

extern const unsigned char AtomImageData[375 + 2];

uint8_t DisBuff[2 + 5 * 5 * 3];

void setBuff(uint8_t Rdata, uint8_t Gdata, uint8_t Bdata)
{
   DisBuff[0] = 0x05;
   DisBuff[1] = 0x05;
   for (int i = 0; i < 25; i++)
   {
       DisBuff[2 + i * 3 + 0] = Rdata;
       DisBuff[2 + i * 3 + 1] = Gdata;
       DisBuff[2 + i * 3 + 2] = Bdata;
   }
}

void setup()
{
   M5.begin(true, false, true);
   delay(10);
   setBuff(0xff, 0x00, 0x00);
   M5.dis.displaybuff(DisBuff);
}

uint8_t FSM = 0;
void loop()
{
   switch (FSM)
   {
   case 0:
       setBuff(0x40, 0x00, 0x00);
       break;
   case 1:
       setBuff(0x00, 0x40, 0x00);
       break;
   case 2:
       setBuff(0x00, 0x00, 0x40);
       break;
   case 3:
       setBuff(0x20, 0x20, 0x20);
       break;
   default:
       break;
   }
   M5.dis.displaybuff(DisBuff);

   FSM++;
   if (FSM >= 4)
   {
       FSM = 0;
   }

   delay(3000);
   M5.update();
}

USBケーブルをもPCに繋ぎ、USBポートを選択して書き込みます。

ボードは「STAMP-PICO」を選択して、シリアルポートもUSBシリアル変換ケーブルのものを選択します。

画像11

無事、書き込み成功しました。

画像11

書き込みが終わったらGPIO0をGNDから外して(V5に接続してもOK)、電源を入れ直します。

貼り付けた画像_2021_08_23_9_43

電源を入れ直すと、以下のように3秒ごとに赤 > 青 > 緑 > 白と色が変わります。

以上、GPIO0でBootloaderのモードを切り替えるというところが最初わからずハマりましたが、なんとか開発環境を整えることができました。

この記事が気に入ったらサポートをしてみませんか?