★ Raspberry Piで秋月電子の8x32 LEDマトリックスを制御(2) ★


実行例

【1】はじめに

前回に引き続き、秋月電子の「MAX7219使用赤色ドットマトリクスLEDモジュール」を使用します。
今回は、予告通り漢字文字列をスクロール表示するプログラムを作りましたので、紹介いたします。

【注意事項】
Raspberry Piの設定や結線などは前回と同じです。
また、前回と同様に事前にRaspberry PiのSPI設定や、wiringPiの設定を行う必要があります。
これらの情報については、前回の記事を参照してください。

【2】フォント形式

一般的な漢字フォントは本来16x16以上のドット数が必要ですが、使用しているLEDマトリックスは、8x8ドットであり使用できません。
このため、8x8ドットに対応している美咲フォント(FONTX2形式)をダウンロードして使用します。
FONTX2形式は、フォント形式の一種であり、下記の形式のヘッダ部分+漢字イメージの組み合わせになります。
漢字イメージは、(プロポーショナルではなく、)ドットデータです。このため、ヘッダ内にフォントのサイズ情報(XSize,YSize)があります。
また、漢字コードはシフトJISです。効率化のため有効な文字コード部分の範囲をブロックとして扱っています。
下記の、Tnumがブロックの数です。そのあとに、Block[x].Start~Block[x].Endに文字コードのリストがあります。
このリスト通りにヘッダに続く漢字イメージが格納されています。 これらの情報から、各文字コードに対する、文字コードに該当するオフセット(先頭からのバイト数)を計算することができます。


上記のヘッダ部分をC言語の構造体で表現すると以下のようになります。
typedef struct {
        char Identifier[6];
        char FontName[8];
        unsigned char XSize;
        unsigned char YSize;
        unsigned char CodeType;
        unsigned char Tnum;     // number of MojiCode Entory
        struct {
                unsigned short Start;
                unsigned short End;
        } Block[];
} font_head;


【3】ソースコード

ソースコードは、こちらからダウンロードしてください。
ソースコードの大まかなフローを以下にまとめました。

【4】コンパイル

本項では、ソースコードのコンパイルと実行について記載します。
まずは、【3】のソースコードをtest2.cとして保存してください。
次に、同じディレクトリに、以下のMakefileを保存してください。
test2: test2.c
        gcc -o test2 -lwiringPi test2.c

※「-lwiringPi」が、wiringPiライブラリをリンクする指定になります。

lsコマンドで、Makefileとtest2.cがあることを確認してください。
ls
Makefile  test2.c

次にmakeコマンドで、コンパイルを実施してください。
make
gcc -o test2 -lwiringPi test2.c

lsコマンドで、test2(実行ファイルが)が作成されたことを確認してください。
ls
Makefile  test2  test2.c

【5】テキストファイルの準備

美咲フォントで扱う文字コードは、シフトJIS形式です。
しかし、Raspberry PiのOSは、UNICODEであるUTF-8が標準的に使用されています。
今回の動画では、以下のテキストファイル(kanji.utf-8)を作成しました。
ラズパイに秋月電子のLEDマトリックスを接続して漢字を表示

Raspberry Piのテキストエディタで上記テキストファイルを作成すると、UTF-8形式になります。
このままでは、今回作成したツールでは、LEDマトリックスに表示できないので、iconvという文字コード変換ツールを使用します。
下記の例では、UTF-8形式のテキストファイルkanji.utf-8から、シフトJS形式のテキストファイルkanji.sjisを作成します。
iconv -f utf-8 -t sjis kanji.utf-8 -o kanji.sjis
この、kanji.sjisを実行ファイル(test2)と同じディレクトリにコピーしてください。

【6】フォントファイルの準備

フォントファイルは、前記のとおり美咲フォントの「FONTX2 形式」を使用しています。
美咲フォントのHPからダウンロードした「MISAKI.FNT」を、 実行ファイル(test2)と同じディレクトリにコピーしてください。

【7】プログラム実行

テキストファイルkanji.sjisと、フォントファイルMISAKI.FNTが、実行ファイルtest2と、 同じディレクトリに存在することを確認してください。
実行は以下のように入力してください。
sudo ./test2 kanji.sjis


実行を止めるときは、[CTRL]+[C]キーを押してください。


【参考】

マイコンで日本語を表示させる為にFONTX2の仕様を調べました
8×8 ドット日本語フォント「美咲フォント」
【改訂記録】
2019/06/15版:公開

[ホームへ戻る]

Copyright (c) 1997-2019, BearBeetle, Allrights reserved.