チップマウンタ先端部分の回転
チップマウンタでチップをマウントするにはチップの向き(基板に置くときの角度)をコントロールしなればいけません。
そのためにチップマウンタ用のヘッド部となる部品を入手し、こちらを制御することにします。
チップマウンタの先端部分は、「チップを吸着して保持する」と「チップを配置するための角度を変える」必要があります。
「吸着する」と「角度を変える(回転する)」をそれぞれ実現するデバイスと言うのはたくさん世に出回っていますがこの二つを併せ持ったものというものは意外に少ないです。
今回はこのような部品を入手できましたので、こちらを使って制御を行ってみようと思います。
ステッピングモーターで芯が中空になっており、真空でチップを吸着させることができます。
制御テストの準備
テストを始める前に必要なものを揃えます。
今回のテストでは、プログラムによる制御はArduino(ボードはArduino Uno)から行います。
また、Arduinoからステッピングモーターを制御するときにモーターの線をそのままArduinoにつないでも、モーターを動かすことはできませんので「モータードライバーボード」を用意します。
今回は、「L9110S Hブリッジ ステッパ モータードライブ」というボードを使用します。
- 制御ボード・・・Arduino Uno
- モータードライバーボード・・・L9110S Hブリッジ ステッパ モータードライブ
- ステッピングモーター・・・中空式ステッピングモーター OK20HC30
- 接続用ジャンパワイヤー
制御テストの段階ではヘッドの先端部などが壊れたらいやなのでいったん外しておきます。
(先端部分は六角レンチでつけ外しすることができます)
外しただけではモーターが回っているか分かりにくいので、回転していることがわかりやすくなるようにテープ(今回はマスキングテープ)などを貼ります(これだけでも、モーターが動いているかいないかを確認するのはかなり楽になります)。
各パーツの接続
ステッピングモーターとドライバボードの接続
ステッピングモーターとドライバボードの結線をするわけですが、どの線をどこにつなぐかなどのていねいな情報はありません。
今回のモーターはバイポーラ結線と言われるタイプで、こちらをドライバボードと結線するときには、「2本ずつの線の組み合わせ」が分かれば結線することができます。
というのは、これらの線はステッピングモーター内では2つのコイルの両端の線となっているので、コイルの両端がどの色の線なのかがわかれば、結線することができます。
この組み合わせの確認方法は、テスタを使ってステッピングモーターの線を1本ずつ導通チェックを行うと、導通する線は1つしかありませんのですぐに分かります。
今回のモーターでは、赤と黒が同じコイル、黄色と緑が同じコイルでした。
この組み合わせを間違えないようにドライバボードに結線します。
モータードライバ側には”MOTOR-B”、”MOTOR-A”とプリントされていて2つの端子が用意されているので、”MOTOR-B”に赤と黒の線、”MOTOR-A”に黄色と緑の線を接続します。
これで、ステッピングモーターとモータードライバの接続が終わりました。
ドライバボードと制御ボードの接続
ドライバボード(L9110S Hブリッジ ステッパ モータードライブ)の反対側の端子を見ると、
- B-1A
- B-1B
- GND
- VCC
- A-1A
- A-1B
とプリントされています。
こちらは、
- B-1A ・・・ MOTOR-B用のPWM A
- B-1B ・・・ MOTOR-B用のPWM B
- GND ・・・ GND
- VCC ・・・ VCC
- A-1A ・・・ MOTOR-A用のPWM A
- A-1B ・・・ MOTOR-A用のPWM B
となるので、それぞれをArduinoに接続します。
VCCについては、モーターボードは2.5 – 12Vまでサポートしているのですが、モーターが3.9Vという電圧だったので
3.3Vで接続してみました。
- B-1A ・・・ デジタルの8番ピン
- B-1B ・・・ デジタルの9番ピン
- GND ・・・ GND
- VCC ・・・ 3.3V
- A-1A ・・・ デジタルの10番ピン
- A-1B ・・・ デジタルの11番ピン
これで、ステッピングモーターから制御ボード(Arduino Uno)までの接続が終了しました。
動作テスト用のスケッチの作成
Arduino IDEを使って、動作テスト用のスケッチを作成します。
Arduinoでステッピングモーターを制御するには、”Stepper”というライブラリを使用します。
(ライブラリのインクルードなどをしてもいいのですが、標準に入っているのでそのままコードで実装します)
#include <Stepper.h> Stepper obj(200, 8, 9, 10, 11); void setup() { // put your setup code here, to run once: obj.setSpeed(100); // 速度を設定する(120を超えると脱調する) } void loop() { // put your main code here, to run repeatedly: obj.step(50); // 360度で200ステップなので90度は200/4で50ステップ delay(200); }
このスケッチでは、ステッピングモーターを90度ずつ動かし、モーターの動作を確認しました。
モーターの動作確認