■lcdproc で VFD を使う lcdproc で VFD を使うにはドライバが必要です。実はノリタケ伊勢電子の VFD ドライバは lcdproc-0.52 には含まれていますが、 キャラクタ表示を利用しているため、表示はASCII 文字だけで、漢字・かなのサポートがありません。そこで、秋月グラフィック液晶と同様に sed1520 ドライバをベースにグラフィック・モードで表示できるドライバを用意します。

秋月グラフィック液晶(左)とSCK140X32F-7000-A (右)。SCK140X32F-7000-Aが一回り大きく、輝度も高い。
■秋月グラフィック液晶との違い 秋月グラフィック液晶との違いは、表示領域、通信コマンド、表示データの並びが違います。表示領域は秋月グラフィック液晶が 122 × 32 ドット、VFD が 140×32ドットです。通信コマンドは送信するデータは違いますが、ほぼ同機能のコマンドがあります。
表示データは、いずれも1バイトで、横1ドット×縦8ドットのイメージを表しますが、秋月グラフィック液晶(SED1520)の場合に、上側が下位ビットだったのに対して、上側が上位ビットになっています。
上側
□ 0
■ 1
■ 1
□ 0
□ 0
■ 1
□ 0
■ 1
下側
図のような表示をするとき、
秋月グラフィック液晶の場合 10100110b = 0xA6
SCK140X32F-7000-A の場合 01100101b = 0x65
を送る必要があるのです。このため、秋月グラフィック液晶用のデータを、そのまま送ると各行内で上下が反転した変な表示になります。
■ドライバ作成の方針 表示領域の差については、左右各10ドットずつ表示に利用せず、中央120ドットに表示することで対応します。ドライバ内部にバッファをもち、表示の書き換えを行う構造は変えません。表示データの違いは、データを送るときに変換しながら送る gu140x32f_7000_write_image() 関数を用意することにし、内部バッファは共通にしました。また LCDd のデフォルトの表示更新頻度だとデータ量が多く、バッファあふれが生じるようなので、usleep を入れ時間待ちをすることで更新頻度を落としています。
■使用方法 lcdproc_0.5.2p3_arm.debをダウンロードして、インストールしてください。lcdproc-0.52 からの差分は
lcdproc_0.5.2p3.diffです。設定は /etc/lcdproc/LCDd.conf の sed1520 セクションで、
Device=/dev/ttyUSB0
Type=VF140X32F
FontPath=/usr/lib/lcdproc/misaki.bdf
Speed=38400
と指定します。Device は、使用する USB シリアルのポートを指定してください。写真のように液晶と同様に lcdproc の表示ができます。

VFD に lcdproc の表示をしたところ
<光永 法明>
コメントする