こんにちは、北島です。
前回はCADを使ったハードウェアの要素設計をしました。アームでかごを持ち上げる→運ぶ→置くという一連の流れを水平と垂直の動きだけで実現しようというものでした。
動かすためには動力源が必要です。
というわけで、3回目の今回は「モーターを回してみよう!」です。
ぱっと見は小学生が理科の授業で習うやつですが…
そんな簡単じゃないのです
第1回で書いたとおり、都市鉱山から発掘してきたステッピングモータを使います。ドライバも発掘できたのでありがたく使います。
これまた第1回に書いたとおり、「モーター」ではなく「モータ」、「ドライバー」ではなく「ドライバ」と呼びます。機械系に残されたバグみたいなものなので気にしないでください。同じ意味です。
さて、ステッピングモータとかサーボモータとか聞いたことない人にとって、モータというのは+と-を電源につないだら回るものだと思うのではないでしょうか。
ところがこのモータには電線が4本あります、果たしてどうしたらいいのでしょう?こんなモータ見たことないと思います。
実はそもそもステッピングモータというのは普通のDCモータ(理科の実験とかミニ四駆とかに使われるようなもの)とは構造が違います。
基本はDCモータと一緒でコイルに流れる電流と軸についた永久磁石の磁力で動きます。しかし、DCモータは自動で入れ替わるブラシという機構があるので+とーを繋げば回り続けます。
それに対して、ステッピングモータはコイルの電流が自動で入れ替わらず、代わりにドライバという装置が制御することで任意の場所で回転を止める事ができます。同じ要領で回転速度も調整が効きます。
これらの調整のためにコイルがたくさんあるので電線が多いと思ってください。
ついでにいうと上で名前を出したサーボモータというのはDCモータにロータリエンコーダという回転角を検出するセンサーが付いたもので、回転速度や角度に合わせて電力を調整して回転速度や角度を制御するものです。
ステッピングモータも回転速度や角度を制御できるのが強みです。そしてサーボモータより基本的にパワフルです。しかしサーボモータと違い、角度を検出しているわけではないので力ずくで軸を回すとガクン、と回ってしまいます。これを「脱調」といいます。つまり脱調しないように一定以下のトルクで使う必要があります。
ここまででステッピングモータはドライバから動かすことはわかりました。ドライバはどうやって動かすのでしょう?
ドライバの動かし方
これが今回使うドライバです。入力と出力の端子が右に並んでいますね。
ステッピングモータをドライバのA+~B-につなぎます。
ドライバの【PUL】にPWM信号を送ります。これは0と1が周期的に入れ替わる信号です。入れ替わる速さが回転速度になります。
また、ドライバに送る信号としては回転方向を0と1で表す【DIR】と、モータに電流を流して回転しているときもしないときも軸に力を加えるかどうか(回転していないときは軸を固定する力になります)を設定する【ENA】があります。
以上の3つの信号をドライバに送ることでステッピングモータは制御できます。そのためにはマイコンというものを使う必要があります。
マイコンの使い方
マイコン=マイクロコンピュータです。つまり小型の電子機器や電化製品(例えば炊飯ジャーとか洗濯機とか)を制御して動かすいわば電気回路の頭脳です。有名なのはarduinoですが、今回はmbedのマイコンを使います。
C++で記述したプログラムコードに合わせてピンの電圧を変化させてくれます。また、PCと通信をして情報のやり取りをしたりもできます。
水色のやつです(正確にはその上のチップ)。普通の人は日常生活において目にすることはまずないでしょうが、大抵の電気製品にはサイズは異なりますが入っているものでして、必ずお世話になっています!
右側から出ている黒いケーブルがmicro USBでして。ここからPCにつないでプログラムを書き込んだり、通信をしたりします。
また、たくさんのピンが出ているのでそれを基板につないで使います。写真はテスト用に作った基板でしてユニバーサル基板を使っています(オレンジ・橙色っぽい穴のたくさん空いた板のこと)。
写真左側のコネクタや抵抗とマイコンのピンがマイコンのピンに接続されています。コネクタから伸びた電線がドライバなどにつながっています。
さて、モータで動かす装置は自動車の走り出しや減速時と同じようにいきなり最高速度で回すのではなく、ゆっくりスタートしてゆっくり停止したいですよね?そのためにこのステッピングモータとモータドライバを使ったときにはどのように信号を調整すれば良いでしょうか?
答えはPWM信号の波形の変化をゆっくりにすることですです。PWMの切り替わる周期が長いとゆっくりと回転し、短いと早く回転するので、PWMの周期を長い→短い→長いにすればモータは遅い→早い→遅いという回転をすることになります。
モータの回転数制御はどの程度精密な動きを求めるかによりますが、「かごを引っ掛けて運ぶ」程度の動きであれば上記のような速度変化が実現できれば十分です。
PCから横移動や縦移動をさせたいときにはマイコンに指示を出せばちゃんとモータが回ってくれます。
試作段階で実際にモータが正しく回転することを確認している動画が残っていたのでお見せします。
ちゃんと位置を守って回転していることがわかると思います。
とはいえ上で少し書いたとおり、ステッピングモータは「脱調」という可能性が否定できないので、少しずつずれが蓄積してしまうことがあります。
なので原点復帰と言って、ときどき原点(座標が0の点)を教えて上げる必要があります。
さて、今回はモータを意図したとおりに回転させることができました。
次回は「試作は大事!」ということで、水平方向と垂直方向のモータの原点復帰と、それを用いた試作の様子をお伝えします。
試作をしてみてわかった様々なこと、試作の終盤に発生したトラブルなど、実際にハードウェアを作っていくからこその試行錯誤をお楽しみに!