Tajima's HomePage.6         
ホーム映像コンピュータ備忘録気になるものお薦め


前回、なんとか「GLCD(TG12864E)のI2Cデバイス化」が出来ました。

これにはATmega328Pを使用しているのですが、役不足でどうにももったいない気がします。 I/Oピンはほぼフルに活用しているのですが、豊富なメモリーが遊んでおります。

そこで、チョコット検討してみました。 GLCDは表示器なのだから“漢字”が表示できれば、「GLCDとしても満足なのではないか」と、勝手に決め付けてしまいました。

豊富なメモリと言ってもたかが知れております。 第二水準までの漢字のサポートは不可能です。 なるべく少ない容量のフォントがないかとWeb検索すると、「美咲フォント」なる、8*8ドット日本語フォントを見つけてしまいました。 詳しくはリンク先を参照してください。

早速使わせていただきます。 感謝!

1)回路図

前回の「GLCD(TG12864E)のI2Cデバイス化」と同じですので、そちらを参照願います。

2)ks0108ライブラリの変更
  ks0108
既存のks0108を置き換えて下さい。 
前回の「GLCD(TG12864E)のI2Cデバイス化」と同じです。

3)ks0108wライブラリの追加
  ks0108w
ヘッダーファイルだけですが、Arduinoのlibrariesにks0108wフォルダを作成して、そこに保存してください。
前回の「GLCD(TG12864E)のI2Cデバイス化」と同じです。

4)レシーバ側スケッチ
  sketch_GLCDwk_Receiver.txt
受信側のスケッチです。
前回からの唯一の変更箇所です。

ハードの作成
みなさんそれぞれお好きに作成してください。
前回の「GLCD(TG12864E)のI2Cデバイス化」と同じです。

使い方
送信側スケッチの作成方法は、前回の「GLCD(TG12864E)のI2Cデバイス化」と同じです。

漢字が使用できるメンバ関数は以下の2つです。
半角文字との共存も出来ます。

 1.GLCD_Puts(・・・);
 2.GLCD_Puts_P(・・・);

    例 : GLCD_Puts("教育漢字");

表示できない漢字は下記の写真の「Hello World!」の後ろの様に表示されます。
この場合3文字が表示されなかったことを示します。


上記表示は下記を表示しました。機種依存文字もあります。
与且丘」の三文字は教育漢字ではないので表示されません。
Hello World!与且丘
1愛2愛3愛4☆○◎♪♭┣┣┿┬┼
教育漢字 倉全冬出分切刊別初則力
0123456789012345
0123456789@_хg`l
あいうえお カキクケコ
‐# ヾ一俵倉念思激火習老追退鼻
括S~順su ・・・ Waite 5

制限/注意事項
1)フォントのサポート範囲
これが最重要制限事項です。
さすがに美咲フォントでサポートされているJIS第一・第二水準の全てをサポートするのは、メモリ容量上到底無理ですし、 常用漢字に絞っても、数字や英字さらには記号等も含めると不足しそうです。

よって、
教育漢字+ひらがな+カタカナ+数字+英字+記号、
のみとしました。

《以下は参考》
 第二水準漢字  3、390字
 第一水準漢字  2、965字(常用漢字を含む)
 常用漢字     1、945字(教育漢字を含む)
 教育漢字     1、006字

2)フォントの指定
SelectFontは必要ありません。 組み込み済みです。

※メモリには多少の余裕がありますので、必要な漢字は追加可能なようです。 レシーバ側スケッチのテーブルがコード順に並んでいますので追加してください。

3)性能
教育漢字に絞ると、unicode(UTF-8)が歯抜け状態となります。 よって、コードに対応するビットマップの検索をコードの比較で行っており性能低下が懸念されます。

性能の比較対象がありませんのでなんともいえませんが、読める範囲での速度は出ていると思われます。

苦労話

1)サポート漢字の抜き出し
手作業で抜き出すのは大変な手間がかかりそうです。 そこで、教育漢字とコードの対応表を2次元の配列にするために、Javaでプログラムを組んで実施しました。


ホーム映像コンピュータ備忘録気になるものお薦め