Arduinoでクリップモータを制御する
今回からスタートするのは、Arduinoを使った簡単工作を通して、電子工作の原理や基本を学ぶ新企画。教えてくれるのは、メディアアートの分野で、また「ちょっと深い仕組み」を解説する書籍の世界で活躍している、伊藤尚未さんです。第1回は懐かしのクリップモータをArduinoで制御してみたいと思います。
目次
1. はじめに
みなさん、こんにちは。伊藤尚未です。
近年様々なマイコンが開発され、ホビーとしての電子工作も、ビジネスとしての機器開発も簡易かつ便利になりました。しかし、同時に何を使えば何ができるのか?こんなことをやりたいが何がふさわしいか?この要望に応えられるものはどれか?など悩める部分も多くなり、使ってみると案外簡単だったり反対に必要機能の不足など、予想に反する場合も少なくないです。
とにかく使ってみる、というのが理解の一番の近道かもしれません。機械も人もクセがわかれば使い方、応用、利活用できるものです。この記事をお読みになっている方はすでにそんなこと実践でお分かりのことと思いますので「釈迦に説法」かもしれませんが…。
さて、今回のシリーズでは私のアート作品でも使ってきましたArduinoの応用をいろいろ考えてみたいと思います。とはいえ、プログラムに特化したり、複雑なセンサやシステムを組み合わせるというものでもなく、普通の工作の一部を置き換えてみるというものです。
特に子供たちにも人気のある理科実験の中から、電気や回路に関係する一般的にもよく知られているものを扱ってみたいと思います。
まずは、非常にシンプルな構造で回転運動が得られるクリップモータを実験台に、さまざまな角度から実験していきたいと思います。
2. クリップモータとは?
皆さんは「クリップモータ」をご存じでしょうか?小学校や実験教室、科学館のイベントなどでも、もしかしたら作った人がいるかもしれません。この名前が正式なものかどうかもわかりませんが、他の呼び名もあまり知らないので、ここでは「クリップモータ」とします。おそらく名前の由来は軸受けの部分に、文具で使われるゼムクリップを使ったことからなのではないかと思われます。工作では一般に入手しやすいものを使っておこなう場合が多いので、その名前を取り入れたネーミングが自然と多くなるのかもしれません。
さて、これは電磁気の実験、工作では有名なものです。「フレミングの左手の法則」といえば、「あ、あれね」と思い出すかもしれません。エナメル線をぐるぐると巻いて、クリップを電極にして、磁石の上で回す、モータの基本的な実験です。
玩具、ミニ四駆や模型などで使われるDCモータはマブチ社製のものが有名です。一度は触ったことがある人も多いでしょう。中を分解すると軸に3極のコイルがあり、ブラシによって電極を変えることで回転させています。スムーズな回転開始、回転方向の制御なども3極あるからできるとも言えます。
一方、クリップモータは単極と言えるので、なかなか難しいのが静止からの回転開始になります。
3. クリップモータの原理と作り方
さて、クリップモータですが仕組みは非常にシンプルでエナメル線を巻いたコイルに電気を通すことで磁界を発生させ、これが近くに置かれた磁石の磁場に影響を受け、回転するという仕組みです。実際にはこのような形です。
併せてオリジナルクリップモータの作り方も紹介したいと思います。
材料はあまり多くありません。エナメル線はホームセンターなどで売られている0.4㎜のもの、100円ショップで購入したクリップ、電池と電池ボックス、接続用にミノムシクリップ、適当な台紙となります。これに単一乾電池を使ってエナメル線を10回程度巻き付け、コイルを作ります。
この時、しっかり指で押さえてないと、ほどけてしまって大変なことになります。根気のない人は大抵ここで嫌になって止めてしまう人もいるようですね。
さて、残った部分で左右にエナメル線を伸ばします。この時2回ほど、コイルにクルクルと巻き付けてほどけないようにします。
これを回転軸にするように横に伸ばしますが、片方はエナメル被覆を全周剥がし、もう片方は半分剥がします。この時には紙やすりなどを使いますが、私はカッターをあてて横方向に擦り、削り取る方法を使います。
この軸部分が通電する部分になります。ここの部分は工作によっては様々な方法がありますが、半周剥がすのが難しい場合は、ひとつの方法として半分の長さを全周剥がし、折り返して捻じる方法もあります。
クリップをこのようにまげて台紙にセロハンテープなどで貼り付けます。この上に先のコイルを乗せて、それぞれのクリップにミノムシクリップで配線します。
フレミング左手の法則で、磁界の中で電線に電気を流すと力を受けるというアレですが、例えば図のようにコイルが縦にある時に、電気が手前から奥に流れた際に磁界は電線の周りを右回りにできます。ここで下部に設置した磁石の上がN極、下がS極だった場合にはこの電線は右に力を受けます。
前述のような軸で回転するようなコイルであれば、反時計回りに回転するということです。この回転の勢いで半周回ると今度は磁石の上には電気が反対に流れる部分が来るので、このままでは反対に力を受け、止まってしまうので、この時には電気の流れを止めます。つまりブラシ部分で接触しないようにしているわけです。これがエナメル線では被覆で絶縁している理由です。半分削るというのはこういった絶縁部分を残しておくということなのです。
4. Arduinoでクリップモータを制御する
では、両方の軸部分(ブラシ部分)に絶縁部分を設けず、電気の流れをコントロールすることができればいいわけで、これをArduinoでできないかと考えつきました。ほんの小学生の実験工作をわざわざマイコンで作らなくてもいいわけなんですが…あまりにもナンセンスでしょうか(笑)。
軸の接点の入れ替えをコイルの回転で制御しているだけのシンプルな構造で、DCモータのブラシと同じですから、単に電気の流れ、パルス出力を制御すれば良いのではないかと考えました。
ただ、Arduinoの出力では電流値に限界があります。コイルとはいえ10回程度のものですから、実はショート回路に近いものではないかと考えられますので、電流はパルスであっても結構流れるのではないかと想像します。
とりあえず、Arduino出力をトランジスタでスイッチングさせるような回路を考えました。できるだけ大きな電流が流せるような「2SC2655」を選択。これでパルスを出すだけでコイルに断続電流が流れ、ブラシと同じような形で回転するのではないか?ということで回路を描いてみます。
これで定期的にパルス信号を出せればよいわけです。ブレッドボードで組もうとするとこのような形でしょうか。
さて、何につけ、物事を始めようとするにはまずは勢いが必要です。もちろん、コイルの最初の位置にもよりますが、例えば水平のような磁石と離れた状態ではなかなか回り始めません。
そこで、ちょっとだけ指で勢いをつけて回してあげます。スタンダードクリップモータであれば、ブラシの位置はエナメル線の被覆を剥がしたところで決まっていますから、回転する角度でうまく接触するタイミングが合えば回転し続けます。Arduinoクリップモータであれば電流はパルスで常に送られているので、このタイミングが合えば回転し続けるはずです。
ということで、指で勢いをつけてあげると回転し始めました。
スケッチはこんな形です。シンプルにサンプルから引用し、若干数値を変えるだけです。
void setup() { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(100); digitalWrite(13, LOW); delay(100); }
ここでは0.1秒で電気を流し、0.1秒で止めている形になります。物理的に運動するものにはそれぞれの共振周波数というか、都合の良いタイミングがあると思いますので、コイルの大きさなどの条件でこのタイミングが変わるでしょうけど、まずはこのぐらいでうまく
回ってくれました。この数値で回っているとしたら、1秒間に5回、回転していることになります。
と思っていたら、なかなか回らない時もあります。
はてさて、ある程度遅い回転では半回転したころにまたパルスが来て、今度は逆向きに力がかかってしまうということでしょう。
さて、ここで考えました。このままではスタンダードクリップモータと同じ仕組みで
ブラシの代わりにパルスを送っているということになります。
ん?そうなんです。
1回転するごとに電気が流れ磁力で引き付ける、あるいは引き離す、のどちらかの繰り返しなのですよね?でもコイルは反回転で反対側の電線が磁石に近づくのですから、この時にも電気を流せば効率がよいのではないでしょうか?しかし、そのまま流せば電流は逆方向になるので、これで回転が止まってしまう。
それでは、半回転ごとに逆に電気が流れるようにすればよいのではないか?ということで、トランジスタで逆電流も流せるような回路を考えました。
ブレッドボードはこんな形になります。
Arduinoからの信号を二つ使い、これをプログラムで交互に入れ替えるようにしました。スケッチはこうなります。
void setup() { pinMode(13, OUTPUT); pinMode(12, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(50); digitalWrite(13, LOW); delay(50); digitalWrite(12, HIGH); delay(50); digitalWrite(12, LOW); delay(50); }
13番と12番ピンを使ってコイルには0.1秒ごとに逆電流が流れるような形にしました。回転運動に対するエネルギー供給としては非常に無駄のない形になったのですが、見た目では回転はあまり変わらなかったというオチです。
エネルギー供給が2倍になるわけですから、これによって何かを駆動させたり、トルクが必要な場合にはこのような回路も有効なのではないかと思うのですが、回転を確認する実験程度で工作されるクリップモータなので、そこまでも必要ないでしょうか(笑)。
このような実験をやっているといろいろと深みにハマるものですが、さらに考えられるのはコイルの回転角をセンサで感知し、それに見合った信号で回転させるというアイデアも出ました。これを突き詰めると磁石の数と位置、軸の回転角の検知方法、コイルの効率化など様々な研究課題が浮かび上がりますが、とりあえず今回はここまでにしたいと思います。
次回もArduinoを制御デバイスとして、いろいろなモノを動かしていく実験をご紹介していきたいと思います。お楽しみに!
今回の連載の流れ
第1回:Arduinoでクリップモータを制御する(今回)
第2回:非接触型スイッチの制作と制御
第3回:自作電磁アクチュエータの制作
第4回:RGBのLEDライトを制御して楽しむ
第5回:Arduinoでサーボモータを制御して楽器を演奏する!