PikaPikaLight

主に光モノ工作の忘備録

立方体万華鏡をLEDテープを使ってピカピカさせてみた

f:id:PikaPikaLight:20210502151227j:plain

立方体万華鏡 CUMOS

ヤマザキミノリ氏 が発明された立方体万華鏡 CUMOS という、鏡を6面組み合わせて作る、とても幻想的な万華鏡があります。


私がCUMOSを最初に知ったのはこのツイートです。作り方の動画もありました。

こちらでは色を付けるのにマジックを使っていますが、これをカラーLEDでやったらキレイなんじゃないかと思って実際に作ってみました。

材料

作り方

まずはCUMOSを作成します。

CUMOSの作り方を紹介しているページがありますので、そちらを参考にして作成しました。
おうちで自由研究道場【立方体万華鏡】
国立大学56工学系学部ホームページ
こちらではマジックやセロハンで色を付けていますが、その代わりにLEDテープを使用します。


鏡に線傷をつけたところにWS2812B LEDテープ を貼ります。

WS2812B LEDテープ はハサミで好きなところをカットして分割できるようになっていますので、鏡の大きさに合わせてカットし、ワイヤーをはんだ付けして配線します。 こんな感じです。(雑な工作ですいません) f:id:PikaPikaLight:20210502154804p:plain M5Atom Lite への接続はGroveケーブルの片方を直接LEDテープ にはんだ付けしました。
f:id:PikaPikaLight:20210502160008j:plain
これでハードは完成です。 f:id:PikaPikaLight:20210502170204p:plain

コード

ArduinoでプログラムしてLEDテープを点灯させるわけですが、 Adafruit_NeoPixelライブラリのサンプルプログラムをそのまま使うのが簡単です。 ただし、M5Atomに使われているESP32マイコンだとAdafruit_NeoPixelライブラリは完璧には動作しません。LEDの数が多いと誤点灯します。今回は誤点灯してもそれほど影響ないので、このライブラリを使いました。 github.com githubからライブラリのZIPをダウンロードし、ArduinoIDEにてライブラリインクルードをします。
サンプルプログラムのstrandtestがいい感じの点灯パターンです。 f:id:PikaPikaLight:20210502161712p:plain

修正するのは2か所だけ。LED制御信号のピン番号とLEDの数の設定だけ直せばOKです。 LED_PIN はM5AtomのGroveポートの26番ピンを使っているので26に、
LED_COUNT は今回72個使っているので、そのように修正します。

// Which pin on the Arduino is connected to the NeoPixels?
// On a Trinket or Gemma we suggest changing this to 1:
//#define LED_PIN    6
#define LED_PIN    26

// How many NeoPixels are attached to the Arduino?
//#define LED_COUNT 60
#define LED_COUNT 72

プログラムを書きこめば完成です。
strandtestによる点灯パターンの様子はこちら

消費電流確認

WS2812B LEDテープを使用するときは消費電流に気を付ける必要があります。
strandtestプログラムで72個使った場合の消費電流を簡易的にUSB電流計で測ってみました。
M5Atomの分も含めて最大320mA@5V でした。結構大きいですが普通のモバイルバッテリーで給電可能な値でした。 これ以上だとちょっと気にしないといけないと思うので、プログラム改造するときはこれ以上明るくしないよう注意必要と思います。

ツイッターにあげた動画