概要
Adafruitの8x8モノカラーLED Matrix用のライブラリをつくったけど、2色にしてもさほど手間ではなさそうなので勢いにのって対応してみた。
使い方
GitHubのled_matrix_8x8_Bi.rbのClass定義を自分のプログラムの先頭にでもコピペする。
表示用バッファに8行分の情報を定義して、write_displayする。
準備&実行
GR-CITRUSの基板ピン配置を参考にpin11,12(Wire4)からそれぞれSDA,SDCを配線。
5V, GNDをBrakeout基板に配線。
sample.rb
m = Matrix_8x8_Bi.new({:port=>4, :addr=>0x70})
m.buffer = [
"33333333",
"33222233",
"33211233",
"33200233",
"33211233",
"33222233",
"33333333",
"00000000"
]
m.write_display
0: 消灯, 1:赤, 2:緑, 3:橙で表示される。
デモ
雑記
本当は基になるClassを作って継承したほうがカッコイイんだろうけど、どうもmrubyだとクラスが多くなると中間ファイルのバイト数が大きくなる(当たり前か)ぽいので、それぞれで分けた方が小さくなりそうだった。
Arduino用のプログラムを見ていると赤色用バッファと、緑色用バッファを用意して...と面倒くさそうだけど、こういうときRubyだと文字列でホイホイ操作できるので手軽やね。