M5AtomのLEDディスプレイを使ってみる
- 2020/05/18
- 22:59
M5AtomのLEDディスプレイを使ってみる
こんにちはRoboTakaoです
前回M5Atomでロボットを設計中であることを書きました。
今回は息抜きで、5x5のLEDディスプレイを使ってみました。
目的としてはロボットの顔を表現します。

マトリックスLEDはグローブ端子を下に見て左上から右に向かって番号が振られています
1列目 左 1 → 5 右
2列目 左 6 → 9 右
・
・
5列目 左 20 → 25 右
それぞれ色コードを指定します。
例
Blue 0x0000ff
Green 0xff000
Red 0x00ff00
どうやら左からG-R-Bになってますね。 RGBではないのです。
指定は以下で指定します。
M5.dis.drawpix(番号, 色コード)
私はわかりやすいようにExcelに書いてチェックしています

スケッチ
左右に顔を振る画像にしてみました。
#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);
}
スポンサードリンク