SlideShare a Scribd company logo
M5Stack Serial LCDライブラリ
と
Kimwipe Stack
2020/07/14
@tomorrow56
Masawo Yamazaki
みんなのM5Stack自慢大会
Masawo Yamazaki (@tomorrow56)
- ハードウエア設計エンジニア
- 現在の仕事は半導体の評価
Facebook: Masawo Yamazaki Twitter: @tomorrow56
「ThousanDIY」という名前でM5Stackの自作モジュールを
スイッチサイエンスさんで委託販売してます
https://www.switch-science.com/catalog/list/1045/
M5Stack Serial LCDライブラリ
•概要
• M5StackをSerial2経由の外部ディスプレイとして使うArduinoIDE用ライブラリ
• M5StackのM5.Lcd系の描画コマンドの「主要なもの」をサポート
• 元々SPRESENSE用にM5StackのLCDが共用したい!というのが目的
• やっていることはシンプルなので他のボードでも動く(はず)
M5Stack Serial LCDライブラリ
•アピールポイント
•M5Stack(LCD)のスケッチとマイコン側の描画ライブラリのペア
•ライブラリの関数はTFT-eSPIと(出来るだけ)互換
•スケッチの最初の定義を書き換えればOK
#include "SerialTFT.h"
SerialTFT tft = SerialTFT();
void setup() {
tft.begin(921600);
tft.setRotation(1);
tft.fillScreen(TFT_BLACK);
M5Stack Serial LCDライブラリ
• サポートするコマンド(描画系1)
void drawPixel(int16_t x, int16_t y, uint16_t color);
void drawLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t color);
void drawRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color);
void drawCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color);
void drawCircleHelper(int16_t x0, int16_t y0, int16_t r, uint8_t cornername,uint16_t color);
void drawTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint16_t color);
void drawRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius, uint16_t color);
void drawChar(uint16_t x, uint16_t y, char c, uint16_t color, uint16_t bg, uint8_t size);
void drawFastHLine(int32_t x, int32_t y, int32_t w, uint32_t color);
void drawFastVLine(int32_t x, int32_t y, int32_t h, uint32_t color);
M5Stack Serial LCDライブラリ
• サポートするコマンド(描画系2)
void fillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color);
void fillScreen(uint16_t color);
void fillCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color);
void fillCircleHelper(int16_t x0, int16_t y0, int16_t r, uint8_t cornername,int16_t delta, uint16_t color);
void fillTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint16_t color);
void fillRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h, int16_t radius, uint16_t color);
M5Stack Serial LCDライブラリ
• サポートするコマンド(テキスト系)
void setCursor(uint16_t x0, uint16_t y0);
void setTextColor(uint16_t color);
void setTextColor(uint16_t color, uint16_t backgroundcolor);
void setTextSize(uint8_t size);
void setTextWrap(boolean w);
void print(String text);
void println(String text);
void println();
void drawCentreString(String text, int dX, int poY, int font);
void drawRightString(String text, int dX, int poY, int font);
M5Stack Serial LCDライブラリ
•サポートするコマンド(設定・その他)
void begin(int baud);
void setBrightness(int8_t brightness);
void setRotation(int angle);
uint16_t color565(uint8_t r, uint8_t g, uint8_t b);
uint8_t color16to8(uint16_t c);
uint16_t color8to16(uint8_t color);
void progressBar(int x, int y, int w, int h, uint8_t val);
void qrcode(String text, uint16_t x, uint16_t y, uint8_t width, uint8_t version);
M5Stack Serial LCDライブラリ
•M5Stack(LCD側)でやっていること
void LcdString(String drawCommand){
String outChar = "";
if(drawCommand.startsWith("fillScreen(")){
uint16_t lcdColor = 0;
outChar = drawCommand.substring(10);
outChar = extractString(outChar);
M5.Lcd.fillScreen(String2Color(outChar));
}
if(Serial2.available()) {
int ch = Serial2.read();
if(ch == 0x0a){
}else{
readChar = readChar + (char)ch;
}
if(ch == 0x0d){
if(readChar.startsWith("M5.Lcd.")){
LcdString(readChar.substring(7));
}
readChar = "";
}
M5Stack Serial LCDライブラリ
• マイコン側のライブラリでやっていること
void SerialTFT::fillScreen(uint16_t color){
Serial2.println("M5.Lcd.fillScreen(" + String(color, HEX) + ")");
delay(comInterval);
}
M5Stack Serial LCDライブラリ
• SPRESENSEを内蔵するモジュールを作成して動作確認
M5Stack Serial LCDライブラリ
•動作デモ
https://youtu.be/9s_0lO3eZhU
M5Stack Serial LCDライブラリ
<ライブラリ>
https://github.com/tomorrow56/SerialTFT
<SPRESENSE用のブログ>
https://thousandiy.wordpress.com/…/spresense-to-m5stack-ad…/
Kimwipe Stack
最初に買ったM5Stackの本体が劣化して割れたので、キムワイプのシールで保護
えむふぁいぶ->きむわいぷ と何となく語呂もあっている
Kimwipe Stack
キムワイプの箱の展開図は以下にあります。怒られたら消します。
https://bit.ly/3eucfPA
Have a good time with M5Stack

More Related Content

PDF
io tつくるよ! LT [m5stackの拡張基板をつくったよ!」
PPTX
M5Stackの拡張基板を作ってjimmyに届けた話
PPTX
20190525 bto bbq_m5_stack_yamazaki
PDF
20210612_分解のススメ#9_M5Stack互換機
PPTX
M5Stackでプロトタイプしてデモ製品を試作した話
PPTX
M5Stackで授業をやってみた
PPTX
M5Stackのシールドを作った話
PDF
Androidの入力システム
io tつくるよ! LT [m5stackの拡張基板をつくったよ!」
M5Stackの拡張基板を作ってjimmyに届けた話
20190525 bto bbq_m5_stack_yamazaki
20210612_分解のススメ#9_M5Stack互換機
M5Stackでプロトタイプしてデモ製品を試作した話
M5Stackで授業をやってみた
M5Stackのシールドを作った話
Androidの入力システム

Similar to みんなのM5Stack自慢大会_山崎 (8)

PPTX
イチからはじめるUSB Host API
PDF
ものづくりプロジェクトII 一日でわかるArduino入門
PPTX
Androidとfpgaを高速fifo通信させちゃう
PDF
SerialScreen
PDF
Arduino入門
PPTX
M5Stack用のつよつよ系負荷を駆動するUnit群(スイッチサイエンス年度末大感謝祭 240223)
PDF
Arduinoでプログラミングに触れてみよう 続編
PDF
201812020707 festa2018 M5Stack おうちハックLT
イチからはじめるUSB Host API
ものづくりプロジェクトII 一日でわかるArduino入門
Androidとfpgaを高速fifo通信させちゃう
SerialScreen
Arduino入門
M5Stack用のつよつよ系負荷を駆動するUnit群(スイッチサイエンス年度末大感謝祭 240223)
Arduinoでプログラミングに触れてみよう 続編
201812020707 festa2018 M5Stack おうちハックLT
Ad

More from Masawo Yamazaki (16)

PDF
分解のススメ 第14回 ローエンド中BT Audio SoC華BT Audio SoCLowEndChineseBTAudioSoC.pdf
PDF
20220129 100均分解のススメ Part3
PPTX
M5Stack User Meeting#5 -pcb design for cheap 3d printer-
PDF
20210718 分解のススメ #11 ADP3338
PDF
20210130 recommendations for_teardown#6
PDF
20201226 NT札幌 何か作ってみたLT
PDF
20200521 100均ガジェット分解のススメ
PDF
M5 stickvand and_spresense_wi-fi add-on
PPTX
20191101 cnx40 case_and_pcba
PDF
20190415 m5stackugjp new_office
PDF
札幌では梅澤無線が神
PDF
Making a spresense Wi-Fi add-on board
PDF
I made some more expansion board for M5Stack
PPTX
M5Stack互換機を作った話
PDF
M5Stack meetup #1 2018/05/14
PDF
Yahoo!hack day onepark_20171210
分解のススメ 第14回 ローエンド中BT Audio SoC華BT Audio SoCLowEndChineseBTAudioSoC.pdf
20220129 100均分解のススメ Part3
M5Stack User Meeting#5 -pcb design for cheap 3d printer-
20210718 分解のススメ #11 ADP3338
20210130 recommendations for_teardown#6
20201226 NT札幌 何か作ってみたLT
20200521 100均ガジェット分解のススメ
M5 stickvand and_spresense_wi-fi add-on
20191101 cnx40 case_and_pcba
20190415 m5stackugjp new_office
札幌では梅澤無線が神
Making a spresense Wi-Fi add-on board
I made some more expansion board for M5Stack
M5Stack互換機を作った話
M5Stack meetup #1 2018/05/14
Yahoo!hack day onepark_20171210
Ad

みんなのM5Stack自慢大会_山崎