LoginSignup
2
0

More than 5 years have passed since last update.

GR-CITRUSでAdafruit 8x8 matrix LEDを使う

Last updated at Posted at 2016-12-03

少し前に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らしくクラスとして定義されてるのでインスタンスを作成して、ヒョヒョイっと動かせます。

sample.rb
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あたりは組み込んでほしいナリ...

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0