Keigan モーターと Node-RED を連携してみて rpm という単位の雰囲気を体感できたメモ

Keigan モーターと Node-RED を連携してみて rpm という単位の雰囲気を体感できたメモです。

こんな風に体感できた

ちょうど年末年始に試していたので 100 円ショップで買った新年お祝い的なオブジェを回して、良い雰囲気なのは 3 rpmかということが分かりました。スイッチサイエンスさんから、KeiganMotor(KM-1U)アクリル製ターンテーブル(白) で回転する仕組みを作っています。

そう、Keigan モーターを購入していた

最近ハードウェアをあまり悩まずに、ソフトウェアに寄せた制御を色々やっていきたいと考えていて、KeiganMotor を購入していました。

Node-RED のフローはこんな感じで

  • Raspberry Pi 3 Model B+
  • Raspbian GNU/Linux 10 (buster)
  • Node-RED v1.2.6

で進めました。

こちらのモーターは ドキュメント がめちゃくちゃ豊富で Node-RED でどう扱うとイイかもしっかり情報が揃っています。

とくに、このあたりのドキュメントを参考にしながら以下のようなフローを作りました。

image

実際にインポートして動くフローの JSON データはこちらです。

[{"id":"f4414616.e3c9a8","type":"km-motor-usb-selector","z":"392e64b1.358b5c","name":"","selectMotorName":"","selectMotorNameself":false,"isInitializScan":false,"isMotorKeepalive":true,"x":540,"y":180,"wires":[["f7977e75.f8dd3"]]},{"id":"f7977e75.f8dd3","type":"km-motor-sequencer","z":"392e64b1.358b5c","name":"","cmdJson":"{\"cmd\":\"cmdEnable\"}","isErrStop":true,"x":760,"y":180,"wires":[["ad3f94d4.985958"]]},{"id":"15d0842c.f7aaac","type":"km-motor-sequencer","z":"392e64b1.358b5c","name":"","cmdJson":"{\"cmd\":\"cmdRun_rpm\",\"arg\":\"msg.payload\"}","isErrStop":true,"x":1030,"y":260,"wires":[[]]},{"id":"a60fc5ab.080bf8","type":"inject","z":"392e64b1.358b5c","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":340,"y":120,"wires":[["f4414616.e3c9a8"]]},{"id":"5e7c20b5.2c982","type":"ui_slider","z":"392e64b1.358b5c","name":"","label":"rpm setting","tooltip":"","group":"511495ad.e042d4","order":2,"width":0,"height":0,"passthru":true,"outs":"all","topic":"","min":0,"max":"260","step":1,"x":190,"y":260,"wires":[["6715164c.d81e08","8208b168.0db28"]]},{"id":"6715164c.d81e08","type":"change","z":"392e64b1.358b5c","name":"rpm 値移動","rules":[{"t":"set","p":"rpm","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":390,"y":260,"wires":[["f4414616.e3c9a8"]]},{"id":"ad3f94d4.985958","type":"change","z":"392e64b1.358b5c","name":"rpm 値を戻す","rules":[{"t":"set","p":"payload","pt":"msg","to":"rpm","tot":"flow"}],"action":"","property":"","from":"","to":"","reg":false,"x":760,"y":260,"wires":[["15d0842c.f7aaac"]]},{"id":"8208b168.0db28","type":"ui_gauge","z":"392e64b1.358b5c","name":"","group":"511495ad.e042d4","order":1,"width":0,"height":0,"gtype":"gage","title":"","label":"rpm","format":"{{value}}","min":0,"max":"260","colors":["#00b500","#e6e600","#ca3838"],"seg1":"","seg2":"","x":380,"y":320,"wires":[]},{"id":"5bbcfb42.8f4724","type":"km-motor-usb-selector","z":"392e64b1.358b5c","name":"","selectMotorName":"","selectMotorNameself":false,"isInitializScan":false,"isMotorKeepalive":false,"x":380,"y":440,"wires":[["cb3d3096.6adf7"]]},{"id":"cb3d3096.6adf7","type":"km-motor-sequencer","z":"392e64b1.358b5c","name":"","cmdJson":"{\"cmd\":\"cmdDisable\"}","isErrStop":true,"x":600,"y":440,"wires":[[]]},{"id":"d9195181.50417","type":"ui_button","z":"392e64b1.358b5c","name":"","group":"511495ad.e042d4","order":3,"width":0,"height":0,"passthru":false,"label":"Stop","tooltip":"","color":"","bgcolor":"","icon":"","payload":"","payloadType":"str","topic":"","x":170,"y":440,"wires":[["5bbcfb42.8f4724"]]},{"id":"533701cc.f4192","type":"comment","z":"392e64b1.358b5c","name":"回転停止","info":"","x":180,"y":400,"wires":[]},{"id":"b6f0c5ff.940388","type":"comment","z":"392e64b1.358b5c","name":"スライダで rpm 設定","info":"","x":210,"y":220,"wires":[]},{"id":"d3c2fc40.c81ef","type":"comment","z":"392e64b1.358b5c","name":"ゲージで表示","info":"","x":510,"y":320,"wires":[]},{"id":"a363af60.e2cdd","type":"comment","z":"392e64b1.358b5c","name":"実際に回転させる","info":"","x":950,"y":300,"wires":[]},{"id":"511495ad.e042d4","type":"ui_group","name":"デフォルト","tab":"cb6cac52.f1d2e","disp":false,"width":"6","collapse":false},{"id":"cb6cac52.f1d2e","type":"ui_tab","name":"ホーム","icon":"dashboard"}]

こちらを起動すると、先ほどのチュートリアルでうまく設定できていれば AutoDetect で Raspberry Pi につないだ Keigan モーターが認識されて動作できるはずです。

image

ダッシュボードで表示された、こちらの UI で rpm setting のスライダーを移動することで回転数を rpm で設定できます。

回転数をいろいろ設定して体感

最初紹介したものは、良い雰囲気で回転する 3 rpm でしたが、

に書かれている通り、"rotations per minute"の略で、1分の間での回転数 を意味しています。つまり、1分間に3回、回転するという設定値です。

Keigan モーターは最大 250 rpm まで回せます。先ほどの UI では、あえて 260 rpm まで与えていましたが 250 rpm 以上に設定しても無視してくれるようでした。えらい。

ということで、めちゃくちゃ速度変更するやつも試しました。3 rpm から 250 rpm に一気に設定上げても途中を良い感じに加速してくれてる。

250 rpm は 1 分間に 250 回も回転するのでエグイですね。オブジェは輪っかにしたマスキングテープで留めていましたが、250 rpmで回しても、少しの間なら吹っ飛ばない程度には固定できました。