「Boxel」のレシピ

Make: Tokyo Meeting 05に出展させて頂いた、1pixelだけのディスプレイ(?) Boxel。

会場で「これスケッチ公開してないの?」と質問頂いたことだし、せっかくなので中身をちょっと説明。


Arduino Pro Mini (5V 16MHz)とXBee(+レベルコンバート基板*1 )、フルカラーLEDが2つ入ってます。

XBeeは、ArduinoのDigital Pin 0(RX)にXBeeのTXを、Digital Pin 1(TX)にXBeeのRXを接続します。
フルカラーLED2つはArduinoのPWMポート(全部で6つ)に配線します。よくあるフルカラーLEDはアノードコモンなので、制御するときは負論理になります。(0x00で明るく0xffで暗く)

ガワは市販のランプの中身を抜いて使っています。



Arduinoのスケッチはこちら。…何度もあれこれいじってたら大変汚くなってしまいました…汚いとこは真似しないでね><

※公開しているバージョンのスケッチにはBoxel間の通信関係の機能は入っていません。もっとも、通信と言っても"boxel002..."という他のIDを含む文字列をArduinoからprintするだけなので、いたって簡単です。


XBeeは、別のArduinoで作ったEthernetシールドとXBeeシールドをダブルでのせた中継機を介して、PCからEthernetでコントロールしています。これはXBee Explorer USBか、AVRチップを抜いたArduino+XBeeシールドをUSB接続して使えばもっとシンプルです。


電源ON後、XBee経由で "boxel001ffffccffffcc" という感じの文字列を送信すると色がふわっと変わります。文字列は、"boxel"を表しています。スケッチ冒頭のID部分を変えておくことで、特定のboxelを操作できます。


LED1/2に別の色を指定できるので、わざと少しずれた色を指定するとふわっとグラデーションがかかったようになります。
(ちなみに綺麗なグラデーションになるように、2つのLEDの間にセパレータを入れてあります。)


なお、信号がないまま15秒ほど放っておくとスクリーンセーバーモードになって徐々に色が変化し始めます。("boxel001x"コマンドでスクリーンセーバ機能はOFFになります。"boxel001i"でスクリーンセーバー強制起動。)



会場で展示していたWiiリモコンで色を変えるデモは、WiiリモコンとPCを使って操作するデモは、Mac上でDarwiinRemoteを使ったプログラムで、角度を色変換して送信しています。


電源投入時に、"boxel001 start" という文字列がBoxelから送信されますので、これを拾って天気予報の色を送信するプログラムをPCで起動しておけば、天気予報表示デバイスになります。
天気予報(というか降水確率)表示のサンプルは http://codepad.org/HF3DOG9L に置いておきます。ちなみに ruby-1.9.*用です。

*1:Arduino Pro Miniは3.3V品で作ればレベルコンバータ要らなかったかも。