『昼夜逆転』工作室
[トップページへ戻る]

キャラクタLCDにデカ文字を表示する

タイトル画像
2020年5月
キャラクタLCDにデカ文字を表示して遊びました。

デカ文字を作る

キャラクタLCDの3x2文字のマスを使って数字1つを表現します。ここではそれをデカ文字、デカ数字と呼ぶことにします。 デカ文字は7セグLEDのように形作る文字です。 セグメントにあたるパーツをユーザー定義文字(ID:0~7)に割り当て、それらの組合せで数字「0」~「9」を表現します。

基本形

最初に太線と黒四角だけで最も単純なデカ文字を作ります。まず「8」を作り、それをベースに残りの数字を作ります。 デカ文字
デカ文字

しずく形

次に、「0」~「9」が好みの字形になるようパーツを変形していきます。 カッコイイ文字を作るためにはパーツの追加も必要です。 しかしユーザー定義文字は8文字までしか使えず、その制限の中でイメージした字形を作らなくてはなりません。 ここが面白いところです。 デカ文字
デカ文字

カッコイイだけでなく、数字を並べたときに読みやすい形であることも必要です。 実際にキャラクタLCDに表示して細部を調整します。 そうしてできたこのフォント、最も特徴的な形のパーツから「しずく形」と名付けました。 デカ文字

記号を表示する

様々な電子工作でキャラクタLCDに温度や時刻を表示することがあるので、マイナス、小数点、コロンもデカ文字で表現しようと思います。 ところがデカ数字でユーザー定義文字8個を使い切っているので、小数点、コロンを表現する黒丸を割り当てることができません。  ※マイナスの符号は横棒のパーツで表現できる。

小数点をどうするか

デカ数字のパーツ8個を使って小数点、コロンが表現できれば問題ありません。 …で、試したのがコーヒー豆のような小数点。デカすぎ。コロンの表現は難しそう。…で、ボツ。
デカ文字 デカ文字

結局、黒丸をユーザー定義文字に動的に割り当てることにしました。 何桁かのデカ数字を表示するとき、使っていないパーツ(ID:0~7)に黒丸を定義し直し、表示します。 そして別のデカ数字を表示する直前に、黒丸から元のパーツの定義に戻します。 使っていないパーツがない場合は仕方がないので小文字のオー「o」で代用します。

例えば、「-14.5」は「-」「1」「4」「5」のどれにもID:3のパーツが使われないので、ID:3に黒丸を定義します。
「-13.5」はID:0~7全てのパーツを使うので、黒丸ではなく「o」を表示します。
デカ文字 デカ文字
※03はID:3に黒丸を定義したことを示している(黒丸の文字コード)。6Fはoの文字コード。

利用イメージ

動画は、温度を想定した「-40.0~0.0~80.0」、時刻を想定した「0:00~23:59」をデカ文字で表示した様子です(抜粋)。 「o」がちょくちょく出現しているのが分かります。

黒丸が薄く見えますが、これは次のデカ数字を表示する直前に黒丸を消去しているためです。 黒丸を表示したまま元のデカ数字のパーツに定義し直すと、画面にゴミが表示されたように見えてしまいます。 温度や時刻を高速に書き換える必要がなければ、黒丸を一旦消去する必要はありません。

◆ ◆ ◆

何年も前に知り、いつか自分でもやってみようと思っていたデカ文字。 最近キャラクタLCDをいじっていたので、ついでに楽しむことができました。 フォント作りは面白いです。