M5StickC:NeoPixelでバーサライタ

M5StickCに、NeoPixelをつなげて光らせることができます。これを本体ごと回転させたらバーサライタになるのでは?

やってみます!

以前にも、M5Stack FIREをハンドスピナーで回転させて、バーサライタに挑戦したことがありました。

M5Stack:M5Stackスピナー
http://shikarunochi.matrix.jp/?p=2606

この時には「まあ…成功…と言えなくもない…かな…」ぐらいの結末で、イマイチ消化不良。ということで、M5バーサライタ再チャレンジ!


部品調達。コントローラのM5StickC が中心部品となります。

スイッチサイエンス:M5StickC
https://www.switch-science.com/catalog/5517/


最重要なLED部品、NeoPixel。安いですねー。WS2812B搭載で8個LEDが付いているタイプです。

棒状に配置されてて、ネジで固定できるようになってます。

今回は1本しか使わないのですが、将来的に使うかも、と思って2本セットにしときました。


モーターは工作でよく使われるタイプのを買いました。FA-130RA。

AmazonよりYodobashi.com のほうが安いですね。値段が倍ぐらい違います。


モーターを固定するためのホルダー

このモーターホルダー、モーターを軸方向から固定できて便利!まさに欲しかった形状です。


これら部品を配置する土台に使ったのは、これにしました。

クロスユニバーサルアームセット

組み立てのネジもこれに付属のセットでまかないました。少々長さ合わない部分も出ますが、気にせずにw


モーターシャフトカプラー 2mm x 3mm

モータ軸を、他の軸に接続するための部品です。モータ軸が2mm、ネジが3mm なので、サイズを合わせて買いました。なにげに今回の中で一番高額な部品でした。

軸を通し、横からネジで締めます。ネジ部品、小さくてなくしそうなので注意!(予備も付いてなかったです。)


それでは組み立てます!

手持ちのGROVEケーブルを短く切断して、NeoPixelと接続。VCC / GND / IN を繋ぎます。
GROVEケーブル、M5Stack系に付属しているものと市販のものとで、黄色/白色の並びが違ってることがあります。接続先を間違えなければOKです!

十字部品にM5Stack FIREに付属していたレゴブロックをネジで固定、これにM5StickCをジョイントで差し込みます。

このレゴブロック部品はこれかな…?

テクニック リフトアーム 1 x 9:
https://www.brickers.jp/?pid=26490567

ちょうど穴の位置があっているわけではないので、少々無理やりな固定ではあります。

モーターは1.5Vの電池で回転させます。小型モータなので、M5StickCを回転させるには力が弱いかな?と気がかりだったのですが、回してみたところ十分パワフルでした。いけそうです!


モーターを収めるケース(ライドウォッチ改造)は、こちら

M5StickC:バーサライタ+ライドウォッチ
http://shikarunochi.matrix.jp/?p=3523

基本プログラムは、こちら

M5StickC:バーサライタプログラム
http://shikarunochi.matrix.jp/?p=3557

回転同期については、こちら

M5StickC:バーサライタの回転同期
http://shikarunochi.matrix.jp/?p=3566


スイッチONで回転!バッチリ表示できましたー!

ちょこちょことノイズっぽいのが出てるのは、NeoPixel高速動作の弊害っぽいです。情報によれば、回路の途中にコンデンサ挟むと収まるのかも?まあ、そこまでキッチリつくるつもりではないので、これでOKとします!

ちなみに、別のNeoPixelライブラリのFastLed ライブラリに変えてみたところ、ノイズはまったく出なくなったのですが、そもそもの動作速度が間に合わなくなって、表示できなくなっちゃいました。残念。


M5StickCの電池容量小さいので、楽しく遊んでいるとすぐに(数分で)電池切れになります…。
電池がヘタッてくると、まず最初にESP32が落ちるので、NeoPixelが制御できずに光りっぱなしになります。

こちら、 バッテリー切れ状態。ESP32は落ちているのだけれど、NeoPixelへの給電は止まらず光り続ける。

回転するとこんな。ヒエー。


あと、M5StickCは、本体電源を切っていてもGROVE端子への給電はストップしないようです。本体の電源をOFFしてても、NeoPixelにどんどん電気を消費されているということですね…。

電源問題を解決するためには、無線給電を組み込むとよいかも。ちょっと大げさになってしまいますけれど。

とはいえ、そこまで作りこむのであれば、M5StickCを使って軽く作る感じじゃなくて本格的になっちゃいますね。その場合は、素のESP32を組み込むのが良いんじゃないでしょうか。

無線給電のESP32バーサライタは@H0meMadeGarbageさんのページに詳細な情報があります!

ESP32 でバーサライタ作製
https://homemadegarbage.com/pov-esp32


回転部分の固定に関しては、@google_homer_さんがTweetされてるように、タイヤのパーツ使うという手もありました!
この方法、シンプルで良いですね。僕は、モーター軸に直接接続する発想にとらわれてしまってました。