CircuitPythonで日本語フォント表示
Overview | Custom Fonts for CircuitPython Displays | Adafruit Learning Systemを真似して日本語フォントを使ったら普通に表示されましたinajob.icon
が、いくつか注意点などもあるのでメモ
https://gyazo.com/211f2de003cc16db061c50de5ae49eb5
Librariesここから一式ダウンロードして必要なものをデバイスに配置する
今回必要なもの
adafruit_bitmap_font
adafruit_display_text
adafruit_displayo_ssd1306 (mpyで提供されてる)
フォント
フォントはUnicode対応したBDFがあると話が早い
以下のようになっていればOK
code: txt
CHARSET_REGISTRY "ISO10646"
CHARSET_ENCODING "1"
美咲フォント
8×8ドット日本語フォント「美咲フォント」
X11 BDF 形式
フォントのPCF化
BDFフォントをそのまま使うこともできるがPCF形式に変換すると描画が早くなる(大げさでなく100倍ほど早くなる)
https://learn.adafruit.com/custom-fonts-for-pyportal-circuitpython-display/convert-to-pcf で紹介されているWebのツールで変換できる
bdftopcf font converter
接続
VCC -> 3V3
GND -> GND
SCL -> 22
SDA -> 21
code: python
import board
from adafruit_display_text import label
from adafruit_bitmap_font import bitmap_font
import adafruit_displayio_ssd1306
import i2cdisplaybus
import displayio
import busio
# 未サポートのボードを使う場合
displayio.release_displays()
i2c = busio.I2C(scl=board.SCL, sda=board.SDA)
display_bus = i2cdisplaybus.I2CDisplayBus(i2c, device_address=0x3C)
WIDTH = 128
HEIGHT = 64
display = adafruit_displayio_ssd1306.SSD1306(display_bus, width=WIDTH, height=HEIGHT)
# サポートしているボードならこれでOK
# display = board.DISPLAY
font_file = "fonts/misaki_gothic.pcf"
text = "こんにちは世界!"
font = bitmap_font.load_font(font_file)
color = 0xFFFFFF
text_area = label.Label(font, text=text, color=color)
text_area.x = 0
text_area.y = 10
display.root_group = text_area
CircuitPython