carcon999のブログ

12年間Y!ブログの記載を移行しました。電子工作関連の記事が多いです。

XBeeでもフルカラーLED制御できる

先日スイッチサイエンスさんで頒布開始したフルカラーLEDシールドですが、ちょっとした応用例といいますか、取り外し可能なDIP8サイズのLEDコントローラの使い方を提案するためにちょっとXBeeを使って試作したものを紹介させていただきます。下記が取り外したコントローラ(LPC810の32bitマイコン)です。
ICソケットに入っているだけなので、簡単に取り外しが可能です。(そのためにこのマイコンを使って作ったんですけどね)

イメージ 3

■ワイヤレスフルカラーLED演出装置
理論的には作れると思っていたのですが、時間の都合で試していなかったので、モチベーションの上がっているいまなら作れるはず!ということで急遽作りました!

イメージ 1

■動作の仕組み
XBeeは、トランスペアレント(透過)モードで通信します。パソコンからのUARTコマンドをXBeeが受けて、フルカラーLEDコントローラのマイコンにデータを渡すことでLEDの演出が行われる仕組みです。

パソコンからのUARTコマンドは、すでに作成済みのWindowsアプリから簡単に送信することができます。
※残念ながらMac版はありません。(すみません。)

イメージ 6

■回路図
WS2812BのテープLEDの部分はちょっと省略しています。

イメージ 4

・電源について
今回、せっかくワイヤレスなので電源もリチウムイオンポリマー電池を利用することにしました。
公称3.7Vと言われていますが、充電直後は4.2V程度あったりしますので、3端子レギュレータで3.3Vを作っています。
NJU7223DLは、手持ちの部品を使いましたので特にこだわりはありません。

IC1は、今回のメインであるフルカラーLEDのコントローラです。
これは、LPC810マイコンで作られており、電源は3.3~3.6v程度です。XBeeは、もう少し低い電圧でも動作します。

・通信について
マイコンXBeeはシリアル通信するために、DOUTをマイコンのRXに、DINをマイコンのTXに接続します。
どちらも3.3Vなのでダイレクトに接続します。
通信速度は、57600bpsとするために、マイコンのPIN3をGNDに固定しておきます。
※逆にOpenにしておくと、19200bpsとなります。

・シリアルLEDについて
フルカラーLEDを制御するための信号線は、マイコンのPIN4から出力されるのでそこに接続します。
LEDの電源は、3.5V以上を必要とするので、リチウムイオンポリマーの出力をそのまま入力します。

■装置の基板

写真でみると、いい感じにプリント基板で仕上がっているように見えてしまうのですが、少し前にXBeeで自由なArduinoシールドが作れるようにと作ったXBeeユニバーサルシールドを自分でカットして自作したものです。

イメージ 2

イメージ 5

■動作前の設定
XBeeは、透過モードで動作するように予めX-CTUで設定を行っておきます。
注意点は、通信速度を57600bpsにするところです。
あと、PCと接続する方をコーディネータ側としておく方が電池の都合で良さそうです。
XBeeのX-CTU設定は、ネットに多数ありますのでここでは省略させていただきますが、不明点あればコメントにでもお気軽にどうぞ。

Windowsアプリの設定は、
「ツール」->「オプション」で表示されるメニューで、XBeeのCOMポートと通信レートを57600bpsに設定します。
ツールバーの接続装置は「シリアル通信」を選択し、横の三角ボタンでシリアルコマンドが送信されるので、LED演出が開始されます。

イメージ 7

■動作
こんな感じでフルカラーLEDをリモート制御することができます。
今回は、XBeeを利用していますがUARTで通信が行えればよいのでBluetoothモジュールや別な無線モジュールを利用しても制御することができると思います。
勿論スマートフォンで制御することだって、XBee Wi-Fiを使っても同じようなことが実現できると思います。

イメージ 8