この記事ではM5Stack社が開発したブロックを組み合わせてプログラミングする”UiFlow”という開発環境を使ってLEDテープ(NeoPixel)のLEDを点灯をする手順を解説していきます。
使用する電子部品は”NeoPixel”互換のLEDテープです。
今回はATOM Liteを使っていますが、UiFlowが使えるM5Stack社の製品ならどれでも同様に可能です。(動作確認してませんが、GROVE互換インターフェースのUnit追加と同じなので)
環境
私の開発環境です。既に環境が揃っている人はすっ飛ばしてください
構成(使用している電子部品やファームVerなど)
電子部品は中国から個人輸入が最も安く買えますが少量買うならAmazonやスイッチサイエンスがやっぱり便利ですね。
PC | Mac macOS Big Sur ver11.5.1 |
---|---|
マイコン | M5stack ATOM Lite (1個1300円ぐらい。switch-scienceで買うと送料が掛かりますが単価は安いです) |
LEDテープ | WS2812BのLEDが連なっているLEDテープ。 1,500円程度と安いのでおすすめです。 個人的には配線を改造しやすい非防水タイプがオススメ! (防水タイプは皮膜を剥がすのめ面倒です) |
開発環境 | UiFlow(https://flow.m5stack.com/) |
ファームウェア | UIFlow_Lite1.8.2 |
ファームウェアの書き込み
“M5Burner”というツールを使ってUiFlowで実行できるファームウェアを書き込みます。
“Download”→”Burn”の順にクリックすればOKです
配線
ここではATOM LiteとLEDテープの配線について説明します。とは言っても写真を見て貰ったら分かる程度の配線です。
信号線1本と、5V電源、GNDの合計3本接続で完了。
ATOM Lite | LEDテープ |
5V | +5V |
GND | GND |
G22(TX) | Din |
G19(RX) | なし |
プログラム
簡単に動かせる仕組み、サンプルがあるので軽く説明のみです。
初期化(LEDテープユニットの追加)
1.UiFlow(https://flow.m5stack.com/)の初期画面の”+”をクリック
2.追加可能なUnitのリストが出るので”RGB LED”にチェックして”OK”をクリック
3.ピンアサインの決定
追加された”LED RGB”をクリックし
portの箇所を”A”から”Custom”に変更
TXを信号線(Din)、RXは使わないので適当に設定。countには接続しているLEDの数を入れます。
以上で初期設定は完了です。
デフォルトで設定されているport ”A”はGROVEコネクタの箇所になっています。
スイッチサイエンスで”M5Stack用NeoPixel互換 LEDテープ 20 cm”が1,100円で売っているので使うと楽ですがちょっと高い。アマゾンでLEDテープと4ピンGROVEコネクタを買ってきて半田付けして使う方がコスパは高いですね。
LED点灯
続いてLEDを点灯させるためのブロックを解説します
まずは”Units”のところに”RGB LED”が出てくるようになっているはずなのでクリックします。
そうすると上の方に”Flash the LED in a random color”というサンプルがあるのこでこちらをクリック。
下のサンプルブロックを貼り付けて実行しればLEDの点灯は完成です!
サンプルで使っているランダムとLED点灯を組み合わせると下の画像みたいなカラフルな点灯も簡単にできるので良いです。
サンプルソースの動作についてちょっと解説。
ざっくりとは色をランダムに変えるプログラムです。点灯時の色は全て同じ色。
- 光の三原色R,G,Bをそれぞれコントロールするため変数R,G,Bを作成
- 0から255の間でRGBそれぞれランダムな値を設定(0は真っ暗、255は最大の明るさ)
- LED30個の色を変えるので変数iを1から30まで1づつ増やす
- iが増えるごとにLEDの1からiまで全てをランダムで決まった色で点灯
- 500ms(0.5秒)点灯状態で停止
- LED30個を1からi個まで順番に黒(消灯)に変える
- また500ms(0.5秒)点灯状態で停止
- ①に戻る
LED点灯の各ブロックの役割
LEDテープ関連のブロックのざっくり解説です。まぁこれも見たまんまですが。
指定した番号のLEDを特定の色で点灯(デフォルト値は1番目のLEDを赤色に点灯) | |
指定した2つの番号の間のLED全てを特定の色で点灯(デフォルト値は1番目から5番目間にあるLED全てを赤色に点灯) | |
指定した2つの番号の間のLED全てを特定の色で点灯。色はRGBをそれぞれ数値で指定(0~255) | |
全てのLEDを1色で点灯 | |
LEDの明るさを指定。色でなく光の強さ。Maxは30だがLEDが高温になるので20程度までが推奨 |
他にもちょいありますが、基本はこの5つあれば十分です。
最後に
今回は”UiFlow”と”DFPlayer”をLEDテープの点灯をしました
正直サンプルのままだったので不要かとも思いましたが、自分が忘れそうなので備忘録とし記事にすることにしました。同じようなことをしようとしている人に役立ては嬉しいですね。
この記事を最後まで見てくださってありがとうございました!