マイクロビットを使ってみる 〜フルカラーLEDリングをホタルのように明滅させる

スポンサーリンク
電子工作の作例

先日、マイクロビットによる制御で、LEDをホタルのようにゆっくり明滅させ、その明滅間隔を外部からの制御で変更できるようにしてみました(記事は こちら)。
今回は、ここで使っていたLEDを、普通の砲弾型のものから「フルカラーLEDリング」に変更してみたいと思います。


使用する「フルカラーLEDリング」はこちらです。


以下のような仕様のものをつくります。

  1. 各LEDの点灯色を少しずつ変え、それを一定間隔でクルクル回す。
  2. 全LEDをホタルのようにゆっくり明滅させる。
  3. 明滅の間隔を外部からの制御で変更できるようにする。

1項目めについては、以前このフルカラーLEDを使って「クリスマスイルミネーション」をつくったことがありますので、その時のしくみを活用します(記事は こちら)。
2項目め、3項目めについては、前回、砲弾型LEDでつくった仕組みを流用します(記事は こちら)。

マイクロビットとフルカラーLEDを接続する方法はいろいろありますが、今回は「KEYESTUDIOモータードライバー拡張ボード(KS4033)」を使います。


今回使用するフルカラーLEDは、電源電圧が3Vでも光りますが、3Vを供給した場合と5Vを供給した場合では、あかるさや色目が変わるので、簡単にフルカラーLEDに5Vを供給できるボードということで、この拡張ボードを使うことにしました。

最初に部品の接続を済ませておきます。

拡張ボードの「VM」「G」端子に単三電池4本(6V)の「プラス」と「マイナス」をつなぎます。

今回使用するフルカラーLEDリングには配線がついていないので、リングの「GND」「5V」「DI」端子に3心のケーブル(並列線)をはんだづけします。「GND」「5V」「DI」端子をそれぞれ、ケーブルの「黒」「赤」「白」とつなぎます。ケーブルの逆側の端にはジャンパーコネクタ(メス)を付けます。

「黒」「赤」「白」のケーブルを、それぞれ拡張ボードの「G」「5V」「2」端子につなぎます。

それではプログラムをつくっていきます。

まずは仕様の1項目めに相当する部分をつくります。
MakeCodeエディタで「新しいプロジェクト」を開き、「NeoPixel」拡張機能をインストールしておきます。

基本的には、以前つくったものをそのまま使えばよいのですが、少し変更点があります。
今回は後の工程でLEDの明るさを変更できるようにしたいのですが、「strip の明るさを XXX に設定する」ブロックは、その後にLEDに色を設定したときに初めて有効になります。以前のように「strip に設定されている色をLED 1 個分ずらす(ひとまわり)」ブロックで点灯色をクルクル回そうとすると、明るさを変更することができません。
そのため今回は、「strip に設定されている色をLED 1 個分ずらす(ひとまわり)」ブロックを使わず、毎回「色設定1」関数を呼び出すようにします。

次に、仕様の2項目めに相当する部分を、一旦は別のプログラムとしてつくります。
以前、砲弾型LED用につくったプログラムを元にして、少し変更します。

「サイン波の値」変数でLEDのあかるさを決めているのですが、砲弾型LEDのときはこの値を「0〜1023」にマッピングして「アナログで出力する」ブロックに渡していました。
今回はこの「サイン波の値」変数の値を「16〜255」にマッピングして「strip の明るさを XXX に設定する」ブロックに渡します。

それでは、ふたつのプログラムを組み合わせて、色とあかるさの両方が変わるようにします。
さきほどつくったふたつのプログラムを組み合わせて以下のようにすると、フルカラーLEDリングの色目とあかるさがどちらも少しずつ変化するようになります。

最後に、仕様の3項目めを反映して、外部からの制御で明滅間隔を変更できるようにします。
前回と同様、もう1台のマイクロビットを用意し、それを送信機とします。送信機からは0.5秒ごとに無線で数値を送信します。送信機のプログラムは前回(こちら)から変更ありません。
フルカラーLEDをつないでいる側のマイクロビット(受信機)では、送信機から送られてきたパケットを受信し、その信号強度に応じて「周期」変数の値を変更します。これにより、送信機との距離が近くなるほど早く点滅するようになります。

これで、最初の仕様を全て反映したプログラムができました。

先日つくったクリスマスイルミネーションと同じように、ダイソーの「グラス」と「インテリアストーン」で飾り付けしてみます。

なかなかいい感じに光っています。

先日、大阪・関西万博に行ったところ、いろいろなものに反応するランタンを手に持って森を巡る体験型施設がありました。
今回のしくみを使うと、このときのランタンと同じような作品がつくれそうです。

 

なお、私がマイクロビットの使い方を習得するのにあたっては、以下の書籍を参考にさせていただきました。


初心者向けから、比較的高度なものまで、さまざまな情報が記載されているだけでなく、子供向けの作例も多数掲載されていますので、「プログラミング教育」のための題材さがしなどにもおすすめです。