記事一覧

M5AtomのLEDディスプレイを使ってみる

M5AtomのLEDディスプレイを使ってみる



こんにちはRoboTakaoです

前回M5Atomでロボットを設計中であることを書きました。

今回は息抜きで、5x5のLEDディスプレイを使ってみました。

目的としてはロボットの顔を表現します。

NX13_04.jpg


マトリックスLEDはグローブ端子を下に見て左上から右に向かって番号が振られています
1列目 左 1 → 5 右
2列目 左 6 → 9 右


5列目 左 20 → 25 右

それぞれ色コードを指定します。

Blue 0x0000ff
Green 0xff000
Red 0x00ff00

どうやら左からG-R-Bになってますね。 RGBではないのです。

指定は以下で指定します。
M5.dis.drawpix(番号, 色コード)

私はわかりやすいようにExcelに書いてチェックしています

NX13_05.png


スケッチ

左右に顔を振る画像にしてみました。




#include "M5Atom.h"

void face_clear(){
for(int i=0; i<25; i++){
M5.dis.drawpix(i, 0xa5ff00); //orange
}
}

void face_center(){
M5.dis.drawpix(6, 0x00ff00); //red
M5.dis.drawpix(7, 0x00ff00);
M5.dis.drawpix(8, 0x00ff00);
M5.dis.drawpix(16, 0x0000ff); //blue 0x0000ff
M5.dis.drawpix(18, 0x0000ff);
}

void face_right(){
M5.dis.drawpix(5, 0x00ff00);
M5.dis.drawpix(6, 0x00ff00);
M5.dis.drawpix(7, 0x00ff00);
M5.dis.drawpix(15, 0x0000ff);
M5.dis.drawpix(17, 0x0000ff);
}

void face_left(){
M5.dis.drawpix(7, 0x00ff00);
M5.dis.drawpix(8, 0x00ff00);
M5.dis.drawpix(9, 0x00ff00);
M5.dis.drawpix(17, 0x0000ff);
M5.dis.drawpix(19, 0x0000ff);
}

void setup() {
// void M5Atom::begin(bool SerialEnable , bool I2CEnable , bool DisplayEnable )
M5.begin(true, false, true);

//M5.dis.drawpix(0, 0x000000); //なぜか最初のLEDが付かないためダミー
face_clear();
}

void loop() {
face_clear();
face_center();
delay(1000);

face_clear();
face_right();
delay(1000);

face_clear();
face_center();
delay(1000);

face_clear();
face_left();
delay(1000);
}

コメント

コメントの投稿

非公開コメント

プロフィール

RoboTakao

Author:RoboTakao
みなさんご訪問ありがとうございます。ロボット作りたいけどお小遣いそんなにないし、簡単でローコストでロボットを作るための私のプロジェクトを紹介します。

ウェブサイトもありますのでそちらもよろしくお願いします。
http://robotakao.jp/