diff --git a/17_oled_japanese_font/main.go b/17_oled_japanese_font/main.go new file mode 100644 index 0000000..d57a1fb --- /dev/null +++ b/17_oled_japanese_font/main.go @@ -0,0 +1,38 @@ +package main + +import ( + "image/color" + "machine" + "time" + + "tinygo.org/x/drivers" + "tinygo.org/x/drivers/ssd1306" + "tinygo.org/x/tinyfont" + "tinygo.org/x/tinyfont/gophers" + "tinygo.org/x/tinyfont/shnm" +) + +func main() { + machine.I2C0.Configure(machine.I2CConfig{ + Frequency: 2.8 * machine.MHz, + SDA: machine.GPIO12, + SCL: machine.GPIO13, + }) + + display := ssd1306.NewI2C(machine.I2C0) + display.Configure(ssd1306.Config{ + Address: 0x3C, + Width: 128, + Height: 64, + //Rotation: drivers.Rotation180, + }) + display.SetRotation(drivers.Rotation180) + display.ClearDisplay() + time.Sleep(50 * time.Millisecond) + + white := color.RGBA{R: 0xFF, G: 0xFF, B: 0xFF, A: 0xFF} + + tinyfont.WriteLine(&display, &shnm.Shnmk12, 5, 10, "こんにちは世界", white) + tinyfont.WriteLine(&display, &gophers.Regular32pt, 5, 50, "ABCEF", white) + display.Display() +} diff --git a/README.md b/README.md index 02f58b4..b2fa3c0 100644 --- a/README.md +++ b/README.md @@ -621,6 +621,16 @@ $ tinygo flash --target waveshare-rp2040-zero --size short ./10_oled_rotated/ $ tinygo flash --target waveshare-rp2040-zero --size short ./11_oled_animation/ ``` +### 日本語を表示する + +現在 BDF と OTF/TTF フォントのいずれかが表示できます。 +zero-kb02 のような 1bit color の小型ディスプレイだと BDF フォントが適しています。 +以下にて使用することができます。 + +```shell +$ tinygo flash --target waveshare-rp2040-zero --size short ./17_oled_japanese_font/ +``` + ## キー押下状態を取得する zero-kb02 は matrix と呼ばれる配線方法を使ってキーが接続されています。 diff --git a/go.mod b/go.mod index 4d62a07..8b48666 100644 --- a/go.mod +++ b/go.mod @@ -7,5 +7,5 @@ require ( github.com/tinygo-org/pio v0.0.0-20240626192653-0b4cbef45f9b // indirect tinygo.org/x/drivers v0.28.1-0.20240825183126-07216d3051aa // indirect tinygo.org/x/tinydraw v0.4.0 // indirect - tinygo.org/x/tinyfont v0.4.0 // indirect + tinygo.org/x/tinyfont v0.4.1-0.20241022105211-0b3702cd6364 // indirect ) diff --git a/go.sum b/go.sum index 4b460bd..147c039 100644 --- a/go.sum +++ b/go.sum @@ -10,3 +10,7 @@ tinygo.org/x/tinydraw v0.4.0 h1:U9V0mHz8/jPShKjlh199vCfq1ARFyUOD1b+FfqIwV8c= tinygo.org/x/tinydraw v0.4.0/go.mod h1:WCV/EMljTv8w04iAxjv+fRD6/4ffx0afATYeJlN90Yo= tinygo.org/x/tinyfont v0.4.0 h1:XexPKEKiHInf6p4CMCJwsIheVPY0T46HUs6ictYyZfE= tinygo.org/x/tinyfont v0.4.0/go.mod h1:7nVj3j3geqBoPDzpFukAhF1C8AP9YocMsZy0HSAcGCA= +tinygo.org/x/tinyfont v0.4.1-0.20241019115309-be919cfc7fd0 h1:aIwyRBwsSv6wDenbIcUZ2cqOGz7vDIK2Bz2X3W53qms= +tinygo.org/x/tinyfont v0.4.1-0.20241019115309-be919cfc7fd0/go.mod h1:7nVj3j3geqBoPDzpFukAhF1C8AP9YocMsZy0HSAcGCA= +tinygo.org/x/tinyfont v0.4.1-0.20241022105211-0b3702cd6364 h1:dYjlzfKPssWsVKfGUp1rPmsvErVc/cE5WB2OviNbsJ0= +tinygo.org/x/tinyfont v0.4.1-0.20241022105211-0b3702cd6364/go.mod h1:7nVj3j3geqBoPDzpFukAhF1C8AP9YocMsZy0HSAcGCA=