LoginSignup
0
0

More than 1 year has passed since last update.

Seeed Studio XIAO ESP32C3 + SSD1306 有機LED + U8g2 日本語表示(簡単)

Posted at

Seeed Studio XIAO ESP32C3を購入したので、色々単体検証を実施中。動くもの、うごかないものの癖をメモっていきます。

SSD1306の有機LEDディスプレイ

利用には、U8g2を利用。結論はXIAO ESP32C3で利用できる。サンプルコードにJAPANESEというのがあるけど、文字化けしちゃうので、調べたところたぶんフォントをコンバートしたりなかなか手順が多そうだったが、オンラインで必要な表示したいラベルをフォン化してくれるサービスを発見したのでご紹介。

U8g2

ライブラリマネージャーでダウンロードして、サンプリコードを実行
問題なく動作。Esp32-C3はArduinoに比べて起動が早いのですぐに表示されるのが嬉しい。

U8g2日本語

超簡単日本語表示の手順だけ書きます。

  1. U8g2のサンプルプログラムが動くこと
  2. コーディングにはページバッファーを利用する(利用しないと文字化けしました)
  3. 必要なフォントを生成機でダウンロード(以下のURLから)
  4. ダウンロードしたファイルをコンパイルするinoと同じディレクトリに入れる
  5. インクルードして、コンパイル

フォントのダウンロード

これまで、U8g2フォントを生成するなど結構手間がかかりましたが、とりあえず、日本語を出したい場合、このサイトで生成できます。
https://www.kidsgo.net/u8g2/index.php#converter

スクリーンショット 2023-05-04 13.59.32.png

ここに必要なダブルバイトの日本語(ひらがな、かたかな漢字)を入れていきます。
最大4Kまで入れられるそうです。

入れたら、今すぐ生成ボタンでダウンロード
ダウンロードしたファイルは組み込みたいArduinoのプログラムと同じでディレクトリに保存します。

二行追加するだけ

Arduino IDE上の開発画面で、サイトに表示されている、フォントファイル名をインクロード
#include "u8g2_font_30f202xxxxxxxxxxxxx.h"
ファイル名はダウンロードごとに変わりますー

フォントを読み込みます。
u8g2.setFont(u8g2_font_unifont_myfonts);

テストコード

TestU8g2.ino
/*
#include <Arduino.h>
#include <U8g2lib.h>
#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif
#include "u8g2_font_30f202xxxxxxxxxxxxx.h"//ここにこのソースと同じディレクトリに配置した上記でダウンロードしたフォントファイルをインクルード


// お手持ちのディスプレイを指定
U8G2_SSD1306_128X32_UNIVISION_1_HW_I2C u8g2(U8G2_R0, /* reset=*/U8X8_PIN_NONE, /* clock=*/SCL, /* data=*/SDA);  // pin remapping with ESP8266 HW I2C

void setup(void) {
  u8g2.begin();
  u8g2.enableUTF8Print();  //UTF8文字を有効化
Arduino print() function
}

void loop(void) {
  
  u8g2.setFontDirection(0);
  u8g2.firstPage();
  do {
    u8g2.setFont(u8g2_font_unifont_myfonts);//ダウンロードした日本語ファイルを有効化
    u8g2.setCursor(0, 13);
    u8g2.print("おはよ!");
    u8g2.setCursor(0, 26);
    u8g2.print("元気?(^^)");
  } while (u8g2.nextPage());

  delay(1000);
}

まとめ

これなら簡単に、必要な文字だけ組み込めるなのでシステムメモリーも軽軽量化。現在はフォントサイズが指定ですが、綺麗に表示できました。ちゃちゃっと日本語表示したい方は便利です。ちなみに、簡体字、繁体字(香港)、韓国語などのダブルバイトも行けるそうです。国際語対応するのが簡単です!

これで簡単に表示器を作れるので何作ろうかな。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0