まさか?のExcel方眼紙(テープLEDの使い方2)

テープLEDを多数用いた看板を作っています。物理的に完成しても、表示プログラムが完成しても、まだ必要なものがあります。それは表示データです。今回はArduinoを用いていますから、データといってもソースコード中に埋め込みます。例えば、


int sMatrix [10*5] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 1, 1, 1, 1, 1, 1, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 1, 1, 1, 1, 1, 1, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};


のようにします。この例は「=」のような表示用のデータです。

これぐらい小さくて単純な図形であればよいのですが、大きくなってくるとソースコード上で書き出すのはかなり難しくなってきます。なにか便利な方法はないか、と考えてみたときにExcel方眼紙を思い出しました。

Excel方眼紙というのは一部ではよく知られた手法で、Excelを表計算としてではなく、マス目を描画する方法と捉えるものです。セルの幅と高さを同一に設定し、方眼紙状にして使います。

描いた後、これをCSV形式で保存します。すると、


0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 1, 1, 1, 1, 1, 1, 1, 1, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 1, 1, 1, 1, 1, 1, 1, 1, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0


のようなテキストファイルができあがることになります。

あいにくと行末に「,」が足らないので、手動もしくは置換(「改行」→「,改行」)で追加すれば、ソースコードにそのまま貼り付けられます。

まさか自分もExcel方眼紙を使いことになるとは…。ダークサイドに落ちた気分でもありますが、とても便利ですね。

追記:
他に方法はないのかというと、アイコンエディターやお絵かきソフトウェアを使う方法が考えられます。それらはより描画という意味では高機能ですが、ソースコードに埋め込める形式に変換するのは容易ではなさそうです。何かツールがありそうですが、それを探したり、その使い方をマスターするのにも時間を要します。もちろん、大量にデータを生成するような場合には効率化のためにそういった方法を探すべきでしょう。

Excel方眼紙のよいところは既知のデータ処理手法をそのまま活用している点です。短期決戦で少量の場合には、方法を調べずとも実現できるというメリットは絶大です。

追記2:
0,1で表示するとやや見にくいです。そういった場合にはとりあえず「」(空白)と「1」で描画した後、Excel上で置換により「」(空白)→「0」とすればよいでしょう。また、「1」とか「0」でないといけないこともありません。プログラム側でのデータ処理の書き方次第です。

追記3:
カラーはどうするんだ、と気づいた人もいるかもしれません。私はこの時点ではまだ実施していませんが、基本的に数値で色を表す予定です。2bytesならば5ビットずつ、4bytesならば8ビットずつ色に割り当てればよいですよね。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です