GR-CITRUSでAdafruit 8x8 matrix LEDを使う
少し前にAQM0802を使えるようになったので、勢いにのって他のI2C部品を使えるようにしてみようとおもった。
見た目で派手だし、手持ちでいくつかあるのでAdafruitのHT16K33をつかった8x8 LED Matrixをターゲットにしてみた。
最初はfirmwareにAdafruit LEDBackpackのC++のソースを移植して組み込んでみたんだけど、面倒だし使わないときでもfirmwareデカくなっちゃうという問題になるし、無駄に領域圧迫してもな...とおもってArduinoでライブラリを経由せず扱っているのを参考に、Pure Rubyで書いてみた。
前提
使用ハード
Adafruit 1.2' 8x8 LED Matrix
https://www.switch-science.com/catalog/1502/
接続
GR-CITRUS pin0,1でI2C Wire1を使うことにした。(WA-MIKANの上にのっかっているとpin7,8のWire3は使えないらしい)
プログラムの作成
Rubyらしくクラスとして定義されてるのでインスタンスを作成して、ヒョヒョイっと動かせます。
m = Matrix_8x8.new( {:port=>3, :addr=0x70} )
m.set_blink_rate(0)
m.set_brightness(15)
m.buffer = [
'11111111',
'10000001',
'10000001',
'10000001',
'10000001',
'10000001',
'10000001',
'11111111'
]
m.write_display
ライブラリ後半あたりがサンプルコードになってます。
デモ
https://www.instagram.com/p/BNjj-FHhPFH/
https://www.instagram.com/p/BNjoI1gB40U/
雑記
朝から昼過ぎまでC++のソースをせこせこ移植してて全然動かないところ、ふとBreakout基板をみたらLED部分が逆に刺さってた orz
Rubyで書き始めて順調だとおもったけど、shift部分書こうとしたらArray#flattenが無くて泣く;_;)
firmwareにrequire,Time,Arrayあたりは組み込んでほしいナリ...
Author And Source
この問題について(GR-CITRUSでAdafruit 8x8 matrix LEDを使う), 我々は、より多くの情報をここで見つけました https://qiita.com/paichi81@github/items/2f5973adedb9d42b1d3f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .