ATOM Matrix のLEDマトリクスの使い方

ATOM Matrix のLED関連の概念について

公式ドット絵ツールATOM Pixel Toolを使って作成したアイコン類の表示についてのメモ。
void animation()とかvoid displaybuff()で使うやつ。

ATOM Pixel Toolの使い方

色を選んでポチポチして絵を描く。
編集が終わったら、[TOOLS]→[SAVE]で保存する。
画像データはunsinged charで吐き出されるので、使うコードにコピペ。
f:id:kana_yaz:20200608235329p:plain

複数のアイコンなどを表示するとき

6つのアイコンを表示させたければ、ATOM Pixel Toolのパレットサイズ、W30にすればいい。
要するに、5×表示させたいアイコン数
f:id:kana_yaz:20200608235335p:plain

表示するアイコンを指定するには

displaybuff()を使うと表示ができる。
displaybuff(uint8_t *buffptr, int8_t offsetx = 0, int8_t offsety = 0)
* buffptr:画像データ(配列)
* オフセット(W)
* オフセット(H)

位置の指定に関してはあくまでもオフセット位置なので、例えば、
* 一番左のアイコン → offsetx = 0
f:id:kana_yaz:20200609001838j:plain * 次のアイコン → offsetx = -5
f:id:kana_yaz:20200609001842j:plain * 今度のアイコン → offsetx = -10
となる。

順繰りに表示するサンプル


ATOM Matrix Icon Demo

#include <M5Atom.h>

int iPos=0;

const unsigned char image_default[602]={
/* width  040 */ 0x28,
/* height 005 */ 0x05,
/* Line   000 */ 0xff,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0x00, 0x00,0x00,0x00, 0x55,0xaa,0xff, 0x55,0xaa,0xff, 0x55,0xaa,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0x7f, 0x00,0x00,0x00, 0xff,0x00,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, // 
/* Line   001 */ 0x00,0x00,0x00, 0xff,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0x00, 0x00,0x00,0x00, 0x55,0xaa,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x55,0xaa,0xff, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0xff,0xff,0x7f, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0x7f, 0x00,0x00,0x00, 0xff,0x00,0x7f, 0x00,0x00,0x00, 0xff,0x00,0x7f, 0x00,0x00,0x00, 0xff,0x00,0x7f, 0x00,0x00,0x00, 0xff,0x00,0x7f, 0x00,0x00,0x00, // 
/* Line   002 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x55,0xaa,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x55,0xaa,0xff, 0xff,0xff,0x7f, 0xff,0xff,0x7f, 0xff,0xff,0x7f, 0xff,0xff,0x7f, 0xff,0xff,0x7f, 0xff,0xff,0x7f, 0xff,0xff,0x7f, 0xff,0xff,0x7f, 0xff,0xff,0x7f, 0xff,0xff,0x7f, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0xff,0x00,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0x7f, 0x00,0x00,0x00, 0xff,0x00,0x7f, 0xff,0x00,0x7f, 0xff,0x00,0x7f, 0x00,0x00,0x00, // 
/* Line   003 */ 0x00,0x00,0x00, 0xff,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0x00, 0x00,0x00,0x00, 0x55,0xaa,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x55,0xaa,0xff, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0xff,0xff,0x7f, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0x7f, 0x00,0x00,0x00, 0xff,0x00,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, // 
/* Line   004 */ 0xff,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0x00, 0x00,0x00,0x00, 0x55,0xaa,0xff, 0x55,0xaa,0xff, 0x55,0xaa,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, // 
};

void setup() {

  Serial.begin(115200);
  
  M5.begin(true, false, true);
  M5.dis.displaybuff((uint8_t*)image_default, iPos, 0);

}
void loop() {

  iPos=iPos-5;
  if(iPos<-40){
    iPos=0;
  }

  M5.dis.displaybuff((uint8_t*)image_default, iPos, 0);
  
  delay(500);
  M5.update();
}

ハートふわふわサンプル(位置指定して表示)


ATOM Matrix Icon Demo

#include <M5Atom.h>

const unsigned char image_default[602]=
{
/* width  040 */ 0x28,
/* height 005 */ 0x05,
/* Line   000 */ 0xff,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0x00, 0x00,0x00,0x00, 0x55,0xaa,0xff, 0x55,0xaa,0xff, 0x55,0xaa,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0x7f, 0x00,0x00,0x00, 0xff,0x00,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, // 
/* Line   001 */ 0x00,0x00,0x00, 0xff,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0x00, 0x00,0x00,0x00, 0x55,0xaa,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x55,0xaa,0xff, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0xff,0xff,0x7f, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0x7f, 0x00,0x00,0x00, 0xff,0x00,0x7f, 0x00,0x00,0x00, 0xff,0x00,0x7f, 0x00,0x00,0x00, 0xff,0x00,0x7f, 0x00,0x00,0x00, 0xff,0x00,0x7f, 0x00,0x00,0x00, // 
/* Line   002 */ 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x55,0xaa,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x55,0xaa,0xff, 0xff,0xff,0x7f, 0xff,0xff,0x7f, 0xff,0xff,0x7f, 0xff,0xff,0x7f, 0xff,0xff,0x7f, 0xff,0xff,0x7f, 0xff,0xff,0x7f, 0xff,0xff,0x7f, 0xff,0xff,0x7f, 0xff,0xff,0x7f, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0xff,0x00,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0x7f, 0x00,0x00,0x00, 0xff,0x00,0x7f, 0xff,0x00,0x7f, 0xff,0x00,0x7f, 0x00,0x00,0x00, // 
/* Line   003 */ 0x00,0x00,0x00, 0xff,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0x00, 0x00,0x00,0x00, 0x55,0xaa,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x55,0xaa,0xff, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0xff,0xff,0x7f, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0x7f, 0x00,0x00,0x00, 0xff,0x00,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, // 
/* Line   004 */ 0xff,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0x00, 0x00,0x00,0x00, 0x55,0xaa,0xff, 0x55,0xaa,0xff, 0x55,0xaa,0xff, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0xff,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0xff,0x00,0x7f, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, 0x00,0x00,0x00, // 
};

void setup() {

  Serial.begin(115200);
  
  M5.begin(true, false, true);
  M5.dis.displaybuff((uint8_t*)image_default, iPos, 0);

}
void loop() {

  M5.dis.displaybuff((uint8_t*)image_default, -30, 0);
  delay(500);
  M5.dis.displaybuff((uint8_t*)image_default, -35, 0);
  delay(500);

  M5.update();
}

kana-yaz.hatenablog.jp