http://openlab.ring.gr.jp/efont/unicode/
/efont/ Unicode font can be used in Arduino.
16-pixel font data of 32 bytes per character using f16.bdf and b16.bdf included in /efont/ Unicode Font. Full-width characters use f16.bdf, characters up to U+00FF are half-width characters, and b16.bdf is used.
Saved in BDF format.
https://en.wikipedia.org/wiki/Glyph_Bitmap_Distribution_Format
const uint8_t efontFontData[] PROGMEM = {
#ifdef __EFONT_ENABLE_0X0021__ // !
// U+0021 !
0x00, 0x00,
0x00, 0x00,
0x00, 0x00,
0x00, 0x00,
0x08, 0x00,
0x08, 0x00,
0x08, 0x00,
0x08, 0x00,
0x08, 0x00,
0x08, 0x00,
0x08, 0x00,
0x00, 0x00,
0x08, 0x00,
0x08, 0x00,
0x00, 0x00,
0x00, 0x00,
#endif
...
Fonts are managed in units of characters, and can be set not to be read in units of characters. If it is 21,729 characters, it will be 721K font data.
The number of characters can be controlled by specifying the read font before efont.h.
//#include "efontEnableAll.h"
//#include "efontEnableAscii.h"
//#include "efontEnableCJK.h"
#include "efontEnableJa.h"
#include "efont.h"
efontEnableJaMini.h is compact Japanese font data.
Target | Option | Characters | Font size |
---|---|---|---|
ALL | efontEnableAll.h | 21,727 | 738,718 |
Ascii | efontEnableAscii.h | 191 | 6,494 |
CJK Kanji | efontEnableCJK.h | 19,379 | 658,886 |
Simplified Chinese | efontEnableCn.h | 18,077 | 614,618 |
Japanese | efontEnableJa.h | 10,835 | 368,390 |
Mini Japanese | efontEnableJaMini.h | 4,107 | 139,638 |
Korean | efontEnableKr.h | 8,319 | 282,846 |
Traditional Chinese | efontEnableTw.h | 13,555 | 460,870 |
The drawing area is different for each model, so please recreate it for each model.
#include <M5StickC.h>
#include "efontEnableJa.h"
#include "efontM5StickC.h"
void setup() {
M5.begin();
M5.Lcd.setRotation(0);
M5.Lcd.setCursor(0, 0);
printEfont("Hello", 0, 16*0);
printEfont("こんにちは", 0, 16*1);
printEfont("你好", 0, 16*2);
printEfont("안녕하세요", 0, 16*3);
printEfont("Доброе утро", 0, 16*4);
printEfont("Päivää", 0, 16*6);
printEfont("Здравствуйте", 0, 16*7);
}
void loop() {
}