M5Stack NeoPixel互換 LEDテープでLチカ

 先日の記事で使った距離センサを買った時に、面白そうだったのでついでに買ってみた LED テープを試してみたいと思います。

www.switch-science.com

 ドキュメントはこちらに用意されています。

docs.m5stack.com

LEDテープ接続

 まずは LED テープを M5Stack に接続します。 LED テープの両端は Grove コネクタになっているので、 Grove ケーブルで M5Stack に接続します。 LED テープは複数のテープを Grove ケーブルで連結していくことができるようになっていますが、 Input と Output の向きが決まっていますので、裏面を見て方向を確認し、 Input 側を M5Stack と接続します。今回は1本しか接続していませんが、複数接続する場合は1本目の Output が2本目の Input に接続されるようにします。

f:id:akanuma-hiroaki:20190302220746j:plain

 今回使っている LED テープは50cmのものなので、接続すると下記のような感じになります。ちなみに Grove ケーブルは付属していませんので、別途用意する必要があります。

f:id:akanuma-hiroaki:20190302220818j:plain

ユニット追加

 それでは LED を操作してみたいと思いますが、距離センサの時と同様に UI Flow で動かしてみたいと思いますので、まずは LED テープのユニットを追加します。エミュレータの左下の + ボタンをクリックします。

f:id:akanuma-hiroaki:20190302214851p:plain

 UI Flow が対応しているユニットのリストが表示されますので、 NEOPIXEL を選択します。 Port は A で、count には LED の数を設定します。50cm のテープには 72 個の LED があったので、72 を設定しています。設定したら OK をクリックします。

f:id:akanuma-hiroaki:20190302215005p:plain

 設定されるとエミュレータの左下に、追加されたユニットということで neopixel0 が表示されます。

f:id:akanuma-hiroaki:20190302215110p:plain

LED 操作

 ユニットが追加されると Units メニューに Neopixel が表示されるようになり、 LED を操作するための様々なブロックが使用できるようになります。

f:id:akanuma-hiroaki:20190302215212p:plain

 まずは LED 全体の色を1秒おきに切り替えるサンプルです。下記のようにブロックを配置します。

f:id:akanuma-hiroaki:20190302215302p:plain

 実際に動かしてみた時の様子はこちらです。この例では特に明るさは設定していませんが、デフォルトで結構明るく点灯するようになっています。

 もう一つのサンプルとして LED の明るさを徐々に変化させてみます。0 から 100 の間で明るさを増減させています。

f:id:akanuma-hiroaki:20190302215347p:plain

 実際の様子はこちらです。

まとめ

 今回使用した LED テープは 50cm のものですが、他に 10cm, 20cm, 100cm, 200cm のバリエーションがあり、さらに連結もしていけます。テープという名の通り裏側の紙を剥がせばどこかに貼り付けることも簡単にできますので、デジタルサイネージ的なものやインジケーター的なものも結構簡単に作れてしまいそうです。

 距離センサ等の他のユニットと組み合わせて使えば簡単にプロトタイピングできそうですが、 M5Stack Core や Gray では Grove コネクタが一つしかついていないので、 Grove コネクタを複数備えた他の M5Stack が欲しいところです。