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で回転!バッチリ表示できましたー!
M5StickC と NeoPixel でバーサライタ作りました! pic.twitter.com/KVXAttXNEU
— Nochi (@shikarunochi) 2019年8月25日
ちょこちょことノイズっぽいのが出てるのは、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されてるように、タイヤのパーツ使うという手もありました!
この方法、シンプルで良いですね。僕は、モーター軸に直接接続する発想にとらわれてしまってました。
— Google Homer (@google_homer_) 2019年8月30日