レゴで4足歩行ロボットをつくりながら、EV3のモータ制御での思い違いが発覚したため、忘れないように書き記しておきます。
ものすごく初歩的な話ながら、今までEV3のモータ:ONという指令は使ったことがありませんでした。いつもは、角度指定や秒数指定でモータを制御していたため、単純なモータ:ON指令が必要なかったためです。
今回、4足歩行ロボットの各関節をスイッチ(タッチセンサ)押しっぱなしの間、動き続けるプログラムにしたいと思い、適当に組んだ際、初めてモータ:ON指令をつかいました。
てっきり動作条件がそろったらモータ:ONするものと思っていましたが、実際につかってみると、一度でも動作条件がそろうとモータが本当にONし続けるという代物で、モータの回転が止まらず、あやうくロボットを壊すところでした。
そこで、モータをOFFさせるときには、モータ:OFF指令が作動するプログラムに修正しましたが、この考え方は私の頭の中にはなかったため意外でした。
産業機械のモータ制御回路でいうと、「モータを停止させる」=「動力回路を遮断する」=「動作条件を落とす/阻害する」という発想ですが、EV3のプログラミングにおいてはモータ:OFFというダイレクトな指令が予め設けられているため、プログラム上で動作条件を落とすほかに、このモータ:OFFも併用する必要があるようです。
どちらかというと、モータ:ON指令自体に自己保持機能が組み込まれているため、親切設計なのかもしれません。(それか、私のインテリジェンスブロックの故障か)
コメント
この記事へのコメントはありません。
この記事へのトラックバックはありません。