フォト
2019年6月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            
無料ブログはココログ

« MSX用ゲームカートリッジの中身 | トップページ | OLED(SSD1306)で美咲フォントを使った漢字表示 »

2019年1月30日 (水)

Arduino用フォントライブラリを更新しました

Arduino用フォントライブラリを更新しました。

  更新ライブラリ
    ・Arduino用 美咲フォントライブラリ 教育漢字・内部フラッシュメモリ乗せ版
      https://github.com/Tamakichi/Arduino-misakiUTF16

     変更点
       ・Utf8ToUtf16()の戻り値の型をbyteからint16_tに変更
       ・未使用変数の削除
       ・非AVR対応
       ・マクロ定数 FONT_TOFU (=0x25a1,豆腐"□"コード)の追加
       ・API関数の説明に少々追記

フォントライブラリはいくつか作成していますが、
今回更新したライブラリは1,710文字(教育漢字1,006字+α)に絞ってフラシュメモリに乗せたバージョンです。

文字列にUTF16/UTF8を使用しているので、Arduino IDE環境で
日本語を含む文字列をそのままプログラムソース上に記述出来ます。

収録フォント

   Photo

  フォントは8x8ドットの美咲フォントを利用しています。
  フォントデータは次のような感じでメモリ上に格納します。

    Fontformat

インストール方法

ライブラリ公開先のリンクをクリックし、ページ右上の「Clone or download」を
クリックして、さらに「Dounload ZIP」をクリックするとダウンロードできます。

20190130

ダウンロード後、ファイルを解凍し、フォルダ内のmisakiUTF16 フォルダを
各自のライブラリ配置場所(\libraries)に入れます。


簡単な記述例1(1文字分のフォント取得)

#include <misakiUTF16.h>

void setup() {
  Serial.begin(115200);

  char font[8];              // フォント格納バッファ
  getFontData(font, "あ");   // "あ"のフォントを取得
  
  // 取得フォントの確認
  for (uint8_t row=0; row<8; row++) {
    for (uint8_t col=0; col<8; col++) {
       Serial.write( (0x80>>col) & font[row] ? '#':' ');
    }
    Serial.write('\n');
  }
}

void loop() {

}

実行結果

Test1

フォントデータの取得処理は、getFontData(font,"あ") のみで完了です。
後半のネストしているfor文は取得したフォントの確認用です。


簡単な記述例2(文字列分のフォントを繰り返し取得)

#include <misakiUTF16.h>

void setup() {
  Serial.begin(115200);

  char font[8];                       // フォント格納バッファ
  char *str="Abcあいうえお、埼玉";    // 文字列

  char *ptr = str;
  while(*ptr) {  // 文字列分ループ
     ptr = getFontData(font, ptr);   // 1文字分のフォント取得
     if (!ptr)
        break;                       // エラーの場合は終了
       
    // 取得フォントの確認
    for (uint8_t row=0; row<8; row++) {
      for (uint8_t col=0; col<8; col++) {
         Serial.write( (0x80>>col) & font[row] ? '#':' ');
      }
      Serial.write('\n');
    }
  }
}

void loop() {

}

実行結果

Test2

文字列に対しても、getFontData()関数で処理できます。
UTF8文字コードは可変バイト長なのですが、getFontData()関数は
次の文字へのポインタを返すので簡単に逐次取得処理を実装出来ます。

ちなみに、getFontData()関数の省略している第3引数にtrueを指定すると
半角文字は全角文字に変換してフォントデータを取得します。

こんな感じで、取得したフォントデータを使って、
LEDマトリックスグラフィック液晶への表示が出来ると思います。

« MSX用ゲームカートリッジの中身 | トップページ | OLED(SSD1306)で美咲フォントを使った漢字表示 »

日記・コラム・つぶやき」カテゴリの記事

arduino」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: Arduino用フォントライブラリを更新しました:

« MSX用ゲームカートリッジの中身 | トップページ | OLED(SSD1306)で美咲フォントを使った漢字表示 »