arduino標準の#include <Servo.h>だとコンパイルエラーで使えない。
このライブラリを使う
Arduino-compatible servo library for the ESP32
使えるピンは 2,4,12-19,21-23,25-27,32-33
arduino標準の#include <Servo.h>だとコンパイルエラーで使えない。
このライブラリを使う
Arduino-compatible servo library for the ESP32
使えるピンは 2,4,12-19,21-23,25-27,32-33
misakiUTF16
https://qiita.com/inachi/items/0e492a6b00d31111e54d
導入が楽
ただし文字が8×8ピクセルしかないので、文字がつぶれて見づらい
ShinonomeFONTread
https://www.mgo-tec.com/blog-entry-adafruit-oled-ssd1351-lib01.html
16×16ピクセル(倍角で32×32まで表示できる)らしい。
ただい導入が難しい(まだできていない)
2019/04/14追記
下のサイトですんなりできた。
M5Stackで日本語表示
https://qiita.com/taront/items/7900c88b9e9782c33b08
説明にもあるように、以下のファイルを編集する。
libraries/sdfonts.h
libraries/sdfonts.cpp
完成したプログラムは下記。
文字色を変更できるようにした。
#include <M5Stack.h> #include <sdfonts.h> #define SD_PN 4 // フォントデータの表示 // buf(in) : フォント格納アドレス // ビットパターン表示 // d: 8ビットパターンデータ void fontDisp(uint16_t x, uint16_t y, uint8_t* buf,uint16_t txt_color) { uint32_t bg_color = TFT_BLACK; uint8_t bn = SDfonts.getRowLength(); // 1行当たりのバイト数取得 for (uint8_t i = 0; i < SDfonts.getLength(); i += bn ) { for (uint8_t j = 0; j < bn; j++) { for (uint8_t k = 0; k > k) { M5.Lcd.drawPixel(x + 8 * j + k , y + i / bn, txt_color); } else { M5.Lcd.drawPixel(x + 8 * j + k , y + i / bn, bg_color); } } } } } // 指定した文字列を指定したサイズで表示する // pUTF8(in) UTF8文字列 // sz(in) フォントサイズ(8,10,12,14,16,20,24) // color 色(16bit) void fontDump(uint16_t x, uint16_t y, char* pUTF8, uint8_t sz,uint16_t color) { uint8_t buf[MAXFONTLEN]; // フォントデータ格納アドレス(最大24x24/8 = 72バイト) SDfonts.open(); // フォントのオープン SDfonts.setFontSize(sz); // フォントサイズの設定 uint16_t mojisu = 0; while ( pUTF8 = SDfonts.getFontData(buf, pUTF8) ) { // フォントの取得 fontDisp(x + mojisu * sz, y, buf, color); // フォントパターンの表示 ++mojisu; } SDfonts.close(); // フォントのクローズ } void setup() { Serial.begin(115200); M5.begin(); M5.Lcd.setBrightness(100); M5.Lcd.fillScreen(TFT_BLACK); SDfonts.init(SD_PN); Serial.println(F("sdfonts liblary")); fontDump(50, 10, "日本語の表示:赤", 8, TFT_RED); fontDump(50, 30, "日本語の表示:緑", 10, TFT_GREEN); fontDump(50, 50, "日本語の表示:青", 12, TFT_BLUE); fontDump(50, 70, "日本語の表示:シアン", 14, TFT_CYAN); fontDump(50, 90, "日本語の表示:マゼンタ", 16, TFT_MAGENTA); fontDump(50, 110, "日本語の表示:イエロー", 20, TFT_YELLOW); fontDump(50, 150, "日本語の表示:白", 24, TFT_WHITE); } void loop() { // put your main code here, to run repeatedly: }
Arduinoのスケッチの例だとうまく読み書きできない。
以下のブログのソースを使う。
ただし、すでにM5stackとして接続されているので以下の点が異なる。
・プルアップ抵抗のくだりは不要(すでに接続されているしね)
・CSピンは4番
const uint8_t cs_SD = 4;
https://www.mgo-tec.com/blog-entry-esp32-wroom-micro-sdhc-01.html
M5Stackの回路図