![見出し画像](https://assets.st-note.com/production/uploads/images/59554469/rectangle_large_type_2_477e1a5f0f63b8e6209d88402178b83e.png?width=1200)
M5Stamp Pico Mate開封してLチカしてみた
こんにちは遠藤です。
M5Stackから新しくリリースされたM5Stampが購入できたので、開封してArduino IDEで簡単なサンプルプログラムを書き込むところまで試してみました。
スイッチサイエンスの商品ページはこちら。
今アクセスするとすでに在庫切れ、プレス記事をみてすぐポチっといてよかった。
https://www.switch-science.com/catalog/7360/
以下のように、すでにM5Stampを検証した記事はいくつかあがっていますが、先週の社内のもくもく会で試してみたところなので、私なりにまとめてみることにしました。
いつも参考にさせていただいていますが、lang-ship.com (たなかまさゆきさん)の記事はとても詳細にレポートされています。
まずは開封
パッケージには、M5Stamp PICO Mate本体とピンソケット・ピンヘッダ、Groveポートとケースを空け締めするための六角レンチが入っています。
まず試すためには、ICクリップを用意するか、付属のピンヘッダまたはピンソケットはんだ付けする必要があります。
また、USBポートがないので、別途USBシリアル変換ケーブルまたはモジュールを用意する必要があります。
私はいまのところM5Stampの使いみちは特に思いついていないので、とりあえずブレッドボードにさせるようにピンヘッダを取り付けてみました。
ところで確かに小さいのは小さいですがM5Atomと比較してみると横幅はスリムになりましたが、縦の長さはほぼ同じです。
あとは、他のモジュールと合わせて組み込んだりするときに自由度が高いあたりが良いところでしょうか。
USBシリアル変換ケーブル・モジュール
M5Stampにプログラムを書き込むためにはUSBシリアル変換ケーブルまたはモジュールを用意する必要があります。
USBシリアル変換ケーブルは、以下のようなものです。
USBシリアル変換モジュールは、以下のようなシリアル変換ICが載ったモジュールのことです。
今回は、手元にあった秋月電子で購入できる以下のモジュールを使用しました。
こちらシリアル変換ICはFT232RQというチップが搭載されており、使用するにはドライバーが必要です。
ドライバーは以下のページからダウンロードできます。
https://ftdichip.com/drivers/vcp-drivers/
また、ピンヘッダが取り付けられてないので、はんだ付けする必要があります。
面倒なので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に追加します。
ボードマネージャを開いて「M5Stack」を検索、インストールします。
M5StampとUSBシリアル変換モジュールの繋ぎかた
FT232RQのモジュールはRSTがあるので、以下のように繋ぎます。
注意点としては、書き込み時はDownloadモード?にしておく必要があるためGPIO0をGNDに接続しておく必要があります。
このあたりは、M5Stick-Cと同じですね。
実際につなぐとこんな感じです。ポイントはGPIO0はGNDに落としておきます。
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シリアル変換ケーブルのものを選択します。
無事、書き込み成功しました。
書き込みが終わったらGPIO0をGNDから外して(V5に接続してもOK)、電源を入れ直します。
電源を入れ直すと、以下のように3秒ごとに赤 > 青 > 緑 > 白と色が変わります。
以上、GPIO0でBootloaderのモードを切り替えるというところが最初わからずハマりましたが、なんとか開発環境を整えることができました。