いや、別に壊す気はなかったのですが、モーター制御の実験をしていて壊してしまいました T_T > Netduino 。グローバルサミットの後、年末に買っていくつかサンプルを作っていたのと、例の RealSense のコンテストで妖怪ウォッチの LED を光らせているのが Netduino plus 2 だったわけで、結構な値段で、ちょっとばかし落ち込んだのですよ。ええ、「Raspberry Pi は壊しても諦められる値段」だけど、Netduino plus 2 はちょっと高いんですよね。と言いますか、仕事で使おうと思ったら予備も含めて、最低2台は必要ですね。
さて、RasPi と Netduino, Arduino を同時にやっているのは、花札認識もそうなんですが、meArm を自走式にしたいからなのです。何がいいのかよくわからないので(最終的にはハイブリットな感じにはなりそうなのですが)いくつか同時に進めています。
で、LED は自由に光らせることができたので(妖怪ウォッチのLEDをリレー電飾っぽく光らせる方法もわかったし)、自走のためのモーター制御です。ラジコンっぽく動かしてみたい。LEGOマインドストームの EV3 と Raspberry Pi + PS3コントローラー の組み合わせでいけることが分かったので、この度はモーターを直接制御しようって話です。
手元にある「Aduino を始めよう」の 058 ページを見ながらモーターを動かそうとしていたのですが、これ Arduino じゃない外部電源を使う場合はどうするんでしょう?と思いつつ、Arduino でモータを動かす:息子と一緒に Makers:So-netブログ を参考にしつつやっていたわけですが、MOSFET がよくわからなくて詰まっておりました。Arudino のピンを使って制御する前の段階で、なんで、PIN で ON/OFF したら、モーターが動くのだろう?って疑問です。たぶん、実地でやってみればわかるだろうと思って、あれこれやってみた途中で netduino を壊してしまうというおまけがついていますが。
直ぐ忘れるので、写真を張っておきます。左から、ゲート、ドレイン、ソースです。
- ゲートのほうに、Arduino のピン制御を差し込む(プラス極)
- ドレインにモーターをつなぐ(プラス極)
- ソースを GND(マイナス極)につなぐ
モーターと並列に繋いであるダイオードはサージ用なので、逆向きにしておけばok。
で、素直に Arudino に配線して、モーターのオンオフを調べればいいのですが、先の何故ってのが気になっていたので、ピン制御をする部分を電池で代用してみます。こんな感じに、ゲートのところに6Vの電池を置きます。
ここで、6V の線をつなぐと、モーターが回りだします。線を外してもモーターは回り続けます。モーターを止めるには、6V のプラス極の線を、GND に設置させて電圧を0Vにしないといけないんですね。ここがよく分からなかったところで、電流を流し続けて続けている間、モーターが回るのかと思ったら、一旦、6V を流しておけば MOSFET 内で接点したままになって、モーターは回り続けます。
で、ここで必要なのは、4V 以上とのことで電池2個分の3Vではスイッチは働きません。
と、ここまで書いて、モーターを回す を見ていたら、ゲートとソースの間に抵抗を挟むことで放電させることができるんですね。そうなると、いちいち電圧を0Vにするために、6Vのプラス極を動かす必要はありません。
こんな感じに大き目の抵抗を挟み込むと、6Vの線を抜いた後にモーターが止まるようになります。
ちなみに、Arduino から制御するときは抵抗を挟まなくてもモーターのON/OFFが働きます。
モーターの動作自体は、LED の Blick のサンプルをそのまま使ったので、1秒動いて1秒止まっての繰り返しだけです。これを Bluetooth から制御するのと、逆回転の仕組みを作るのが次のステップ。