nt札幌 2013/12/13: addressable led stringで遊んでみる
TRANSCRIPT
Addressable LED String で遊んでみる
2013/12/13 NT札幌勉強会 @edy555
ヒカリもの
LED Stringとは
• たくさんのLEDが一列につながったもの
Addressable LEDとは
• 一つ一つのLEDを個別に制御できるタイプ
• Cons: コントローラが必要
• Pros: コントローラ次第でなんでもできる
どこで買える?
種類が色々ある
• 30pcs/m, 60pcs/m, 144pcs/m
• 防水の有無
• チップはWS2811がおススメ
チップの仕組み
• パッケージの中に、LEDとコントローラチップが統合されている
チップの仕組み
• ごく弱く光らせた状態
• 1%くらい
• 各色のLEDは、8ビット=256階調でPWM制御
軽く光らせてみる
注意点• 電源にパワーが必要
• 4m(240pcs)の定格は、5V
72W (=15A)
• 実際に秋月のACアダプタを飛ばしました
• 弱く光らせるくらいなら電池でも可能です
つなぎ方• 接続は+5V, GND, DINの3本のみ
• 8ピンマイコンでもOK
• DOUTが次のLEDのDINに接続されている
プロトコル• ビットの表現はパルス幅
• 24bitでLED一つ分
• データをセットされたLEDは次にデータをスルーで渡す
• リセットパルスで復帰(50us)
• データレートは800kHz
• 240個のLEDの場合フレームレートは8.5ms程度
コントローラ• Arduinoの場合
• FastSPI library
!
!
!
!
!
• 他に Adafruit_NeoPixel library
#define FORCE_SOFTWARE_SPI #define FORCE_SOFTWARE_PINS #include "FastSPI_LED2.h" !#define NUM_LEDS 240 #define DATA_PIN 6 CRGB leds[NUM_LEDS]; !void setup() { FastLED.addLeds<WS2811, DATA_PIN, RGB>(leds, NUM_LEDS); } !void loop() { leds[0] = CRGB::White; FastLED.show(); }
Musical String• デモとして作ってみた
• 音楽に合わせて光が流れる
• 強度→光の強さ
• 周波数→色
• 処理:AD変換→FFT→ガンマ補正
• http://youtu.be/Rjqbege1r3Q
Tree Shape String
• 単純なシリアル信号なので、分岐させることが可能
• ツリーっぽく配置してみた
• http://youtu.be/khGmbNQPlZw
見かけた応用例• ゲーム(テトリス)
• マトリクスディスプレイ
• 間接照明
• シーリング照明
• littleBitsと繋ぐと面白いかも
fin