M5Atom を使って光と音の演出付きの1/12フィギュア/ガールプラモ用の箱庭作った
こんなん。
全く頭になかったんだけど、急に思い出したのでM5ATOM Lite で制御することにして M5Stack Japan Creativity Contest 2020 に応募してみた。
制御周りの全体図はこんな感じ。
なお、M5ATOM用のArduinoスケッチはこちら。
以下、製作の経緯を。
遭遇編
乗馬クラブの帰りに海老名のおしゃカインズに寄ったら、インテリア用の鳥かごと造花コーナーが。
ティンと来たね
造花で鳥かごをフラワーアレンジメントして、箱庭っぽいものを作ってガールプラモ(FA:Gとかメガミとか)をいい感じに飾りたいなと思いつく。
早速、ごそごそ購入。
一通り買ってから、「造花の類ってダイソーで買ったほうがサイズ感的にもいいんじゃね?種類多いし」と思い、今度はダイソーへ。
(これが結果的に大勝利)
アクセントになりそうな小ぶりな造花大量ゲット。
同じ売場でやけにピックアップされてたので目に止まってワイヤーライト購入。
これを購入したことで、
「1/fゆらぎ制御とか入れたいよね」→「じゃあM5ATOMでやるか。いっぱいあるし」→「そういやM5Stackのコンテスト今やってるからちょうど作品になるんじゃね」
となり、急遽M5のコンテスト向けの作品として舵をきることになったのであった。あった。。。
このとき、9月19日。実にコンテスト応募締め切りの4日前である。。。
ダイソーではその他ガーデニング用の資材や小物、プラ板などこまごましたマテリアルを一気に揃える。
買ったものだいたいこんな感じ。
ワイヤーライトはあまりにもエモくてもう一本欲しくなり、この後買い足しに行くことになる。
まじ今回のMVP
その他、1/12系の小物は過去のワンフェスで買ったものを使いました。
フラワーアレンジ編
とりあえずそのままの勢いで、当日にだいたい全体イメージは固まる。
だいぶ完成形見えてきた pic.twitter.com/LdY6vrKFYe
— ウズキアオバ (@uzuki_aoba) 2020年9月19日
その後は、ひたすら隙間を埋めてく作業。
高さで色のゾーンを作って、エリアで種類のグループをつくって「雑多だけど統一感ある」感じを目指す。
これがこうじゃ! pic.twitter.com/IK134eFOMV
— ウズキアオバ (@uzuki_aoba) 2020年9月20日
電装・制御編
イルミネーションLED
今回もっともグッジョブなダイソーのワイヤーライト
白色LED8個ついたワイヤーライトが徒歩10分のダイソーで100円で買える。。。すき。。。
爪もなにもないから秒でバラせる。素材感ぱない。
M5ATOMからの1/fゆらぎ制御は、ESP32のLED_PWM関数を使ってサクッと実現。
ESP32 のLED_PWM初めて使ったけどクソ便利。millis使って実行タイミングずらして、3系統のLEDを個別に1/fゆらぎ点滅できた。M5Atomだから最大8系統までいける pic.twitter.com/wNitinZk5G
— ウズキアオバ (@uzuki_aoba) 2020年9月20日
LED_PWMは初めて使うので、このあたりとかを参考にさせてもらいました。
天気ステータスLED
光り物が一種類だけだと寂しいので、天井にネオピクセルをつけて光らせることにした。
ただ光ってるだけだと寂しいので、Web APIを叩いて天気を取得し、天気に応じた色を表示する素敵機能を付けることにする。
時代はIoTである。有用性とかいいからとりあえずクラウドにつないどけばいいのである。
天気の取得はOpenWeatherMapのAPIを使った。初めてだったので以下を参考に。
AndroidJson5 から AndroidJson6へのマイグレーションがややめんどかったくらいで、特に問題無し。
問題だったのはRGB LEDの制御。
M5Atom に別途neopixelをつないで制御したいんだけど、FastLEDもNeoPixelBusも初期化系の処理を叩いたところで Guru Meditation Error: Core 1 panic'ed (LoadProhibited). Exception was unhandled. になったり、M5.begin(true, false, false);してるのに本体側のLEDが緑に光ったり謎挙動する…
— ウズキアオバ (@uzuki_aoba) 2020年9月20日
M5Atom公式ライブラリとの相性が。。。
M5のライブラリを使わないでやってみてはどうか
— カワヅ (@necobut) 2020年9月20日
ということで、公式ライブラリは使わず、ただのESP32として使う。
制御は固まったので、物理の実装を。
ダイソーで打ってたアイスキューブ(ギャラクシー)を、
サクッと加工
カットして中身を抜いて、
同じくダイソーで買ってきたレジンとスパンコールをちょっとずつ投入していく。
Shigezoneで買ったハイパワーUVライト で速攻で固めていくぜ。
ででどん
いいかんじ。
環境音
LEDだけだと演出寂しいので、急にSE流すことにした。
以前、IoTファミマチャイムをESP8266で作ろうとした時のやつがワンセット発掘されたので助かった。過去の自分ありがとう!
DFPlayer mini とスピーカーげと。
肝心の環境音素材は以下を使わせていただきました。
基板
今回は時間無いのでユニバーサル基板でぽいっと。
M5ATOM の配線の部分は自分で作って配布しているブレークアウト基板を使いました。
電源、IOともにそれぞれ2方向に引き出してあるので、ユニバーサル基板に試作するときも配線レイアウトの自由度が上がって地味に便利。
今回は固定用のサムシングを作ってる余裕が無いので、吊るす。
その他
底面は薄いプラ板なので、レーザーカッターではなく超音波カッターでサクッと切り出します。
底のプラ板は、レーザーカッター無いので超音波カッターで手で切り出した。
— ウズキアオバ (@uzuki_aoba) 2020年9月20日
滑らかに切れるので出来はいい感じだけど、カッティングマットが犠牲になった。 pic.twitter.com/wodxNenaXf
設置編
これを吊り下げるために、天井にアンカー打ったなう pic.twitter.com/tUK8xNISBq
— ウズキアオバ (@uzuki_aoba) 2020年9月23日
撮影用にちょうどいい吊り下げポイントが無かったので、急遽天井にアンカー打った。
THE・つるし。
撮影
ProtopediaとYoutube用に撮影しまくる。
エモい。
いいね。
小物とも合う。
結果、満足!