google-site-verification: google3bd66dd162ef54c7.html

Arduinoでマイクロステップ駆動の実験は中断

 この間からポタ赤作りに取り組んでいるのですが、なかなか良いメカが出来ません。ならばステッピングモーターのマイクロステップ駆動の方を仕上げようとしたのですが、こちらもうまくいってません。

 モーターを回転させることは出来ていますが、ステップの中間でひっかかるような動きになっていて、スムーズに回転させることが出来ないでいます。ひっかかる位相はいつも同じなので、これは実験に使ったモーターの特性なのかも知れません。

▼ステッピングモーター
ステッピングモーター
 これ以外にも赤道儀の駆動に使った送りネジ付きのモーターも試しましたがやはり途中に引っかかりがあります。

 ちなみに、写真の左側のモーターは秋月で売っていた物。右側はプリンタを分解した時に回収して置いた物です。これらはクローポール型のPMモーターと呼ばれているようで、このタイプの物はマイクロステップドライブには向いていないのかもしれません。

 もちろん普通に2相駆動を行った場合に比べ、マイクロステップドライブにすると振動が大幅に減るので全くメリットが無い訳ではありません。でもマイクロステップドライブで電気的にバーニアをかけるような使い方をするのは無理っぽいです。

▼回路図 (クリックで別窓に拡大)
Arduinoでステッピングモーターをマイクロステップ駆動
 以前の回路とほとんど同じですが、モーターの電源を分離しています。

 駆動波形は以前の記事に掲載した台形波以外に正弦波も試したのですが、途中でひっかかるようになる動きは改善されませんでした。 

 正弦波波形によるマイクロステップ駆動実験のスケッチ

 スケッチをあれこれいじってみたのですが、改善できる目処が立ちません。ということで、この話は一旦クローズすることにします。

 なお、1回転が200パルスの本格的なステッピングモーターならうまくいような気がします。手頃な物が手に入ったら再度実験してみようかと思います。でもHDDポタ赤のメカにうまく収まる物が手に入るかどうかが問題です。

HDDポタ赤、メカ完成して動作確認したけれど・・

 この間から取り組んでいるHDD部品を使ったポタ赤作りですが、とりあえず動くようになりました。

 送りネジのピッチが粗い(3mm)ところにもってきて、ステッピングモーターの送りピッチが1回転20ステップと粗いという二重苦はやはり問題で、トルク不足は許容範囲を超えている感じです。ただ、送りピッチの問題はマイクロステップドライブにすれば、標準レンズを使った星野写真くらいになら何とかなりそうな感じです。

 ということでポタ赤完成とは程遠い状態なのですが、せっかくやった結果なので現在の状態を記事にしておきます。

▼完成品の全体像
HDDポタ赤完成
 見ての通りですが、この写真だけでは判り難いので、部品にばらして説明したいと思います。

▼構成部品
使用部品
 主に3.5インチのHDDを分解した部品で構成しています。左の黒い部品がHDDのベースになる部分で、DE(ディスクエンクロージャ)と呼ばれています。DEにはスピンドルモーターが埋め込まれていますが、HDDポタ赤ではこの軸受けを極軸として使うことで安くて高精度の赤道儀作りを目指しています。

▼HDDのプラッターに三脚用のインチネジを取り付け
プラッター重ねて三脚座のネジ取り付け
 HDDの記録媒体の円盤(プラッター)に1/4インチのボルトを取り付け、三脚が固定できるようにします。

 ネジを固定するための金具はヘッドシーク用のVCMの磁気回路のヨークです。これに1/4インチのタップを立てて裏からボルトを差し込んでいます。ヨークは分厚い鉄板で作られていますが軟鉄なので加工は比較的容易です。なお、プラッターは2枚あったので、強度を稼ぐために重ねてネジ留めしました。

▼送りモーターとネジ
送りモーターとネジ
 これが一番苦労した部品です。DVDドライブのヘッドシーク用のネジ/モーターアセンブリをアルミのL字アングルに載せることで赤道儀の駆動部品に仕立て上げました。

▼裏側です
送りモーターとネジの裏面

▼ネジ/モーターアセンブリの取り付け軸
送りネジの受け軸
 これはHDDのヘッドの回転軸から不要な部分を除去して作ったもので、優れた軸受けとして使うことが出来ます。もし同じ精度の部品を単体で買ったら、とんでもない値段になるのは間違いないです。

 この軸の取り付けネジはHDDの取り付けネジと同じインチネジ(No.6 32UNW)なので、同寸法のタップを用意することで好きな場所にこの軸を移動させることが出来ます。

▼組立て
組立て
 DEの右上付近にタップを立て、送りネジ/モーターの回転軸を固定しています。

▼送りネジとプラッタの結合部品
送りネジとピポット受け
 下の三角形の空白の部分でプラッター側に立てた2.5mmのオスネジを挟んで動力を伝達させました。

 適度なバネ性が欲しいのでゼムクリップを曲げて作りましたが、ガタが最小になるように曲げるのは大変でした。実は、ここの回転軸にはベアリングを使いたかったのですが、構造が複雑になるので妥協して上の写真の構造にしました。

▼早送りのテスト

 これは2相励磁でやっています。ピッチが粗いのが幸いして、星空の回転速度の1000倍以上の速さで早送りが可能です。笑

▼マイクロステップ駆動のデモ

 1/16のマイクロステップ駆動で動かしています。モーターは20パルスで1回転なので 20x16= 320ステップで一回転しているはずです。でも動画を見るとあまりスムーズに回転していない感じです。なおマイクロステップの駆動は正弦波でやっています。

◆まとめ
 とりあえずポタ赤みたいな物は出来ました。ただ記事中に書いたように、トルクが小さいのでバランスを慎重に取っても、コンデジで使うくらいが限界のような気がします。

 この問題解決のためにはピッチの細かいネジとステップの小さなステッピングモーターを使えばいいのですが、今回作った物のようにコンパクトに仕上げるのは難しいと思います。何かうまい方法が無いか引き続き考えてみたいと思います。

 それと、HDDのスピンドルの絶対的な強度が心配です。高精度というのは同時に高剛性になっているはず。なので、耐加重も大きいはずと思います。でも元々は大きな加重に耐えるように設計されている物ではありません。重い物を載せると軸受けがガコンと外れる、あるいは周辺のフランジなどの部品の破損が心配です。高価なデジ一と交換レンズが丸ごと地面に落下したら泣いちゃいます。だからここは慎重に見極める必要があると思います。

 このあたりはHDDのメカに詳しい方のご意見をお聞きしたいところですがどんなもんでしょう。これ以外でも、この記事のここは見当違い!アホ!というお叱りでもかまいません。

 ということで、HDDの部品を使ったポタ赤作りの実験は不完全燃焼ですが、このへんで一旦おしまいにしたいと思います。何か進展があったらまた記事で報告したいと思います。

 なお、ここで使ったマイクロステップドライブのプログラムは汎用性が高いと思いますので、後日記事で紹介しようと思います。

Arduinoでステッピングモーターを廻す。駆動回路作り

 何とかしてポタ赤が作れないか、という話の続きです。

 前回まではArduinoのポートにステッピングモーターのコイルを接続するという荒技でやっていました。小さなモーターなので一応動きましたが、明らかにトルク不足です。それにマイクロステップ駆動にした場合に、スムーズに回転しないという問題が出ています。

 今後はちゃんとしたドライブ回路が必要になるのは間違いないので、手持ちにあったフルブリッジドライバICのL298Nで駆動回路を組んでみました。

▼回路図
バイポーラ駆動ステッピングモーターの駆動回路
 フライホイールダイオードは手持ちの高速スイッチングダイオード1N4148を使いました。でも、これで良かったのかあまり自信が無いので、回路図への型番の記載はやめました。
 フルブリッジのドライバICはいろいろなことに使えるので、エレメカに興味のある方は常備しておくことをお勧めします。ちなみにこのICは倒立振子作りでも活躍してくれました。

▼Arduinoとブレッドボード
ブレッドボード

▼L298N
フルブリッジドライバIC
 足を曲げるとブレッドボードに挿すことが出来ます。

 以下はこの回路図の動作確認用スケッチで、2相駆動用になっています。14行目のtの値は適当に調整して下さい。最初は50000くらいから始めるといいと思います。

/* ステッピングモーターのドライブテスト、2相励磁+外部ドライブ回路
* バイポーラ方式のモーターを駆動
* 2015/7/18 ラジオペンチ 
* http://radiopench.blog96.fc2.com/blog-entry-578.html
*/
#define input1 4 // input1 @ L298N
#define input2 5 // 2
#define input3 7 // 3
#define input4 8 // 4
#define enableA 9 // enableA
#define enableB 10 // enableB

unsigned int pos = 32000; // 回転位置記録用変数
int t = 1500; // パルスレート設定 単位:ms

void setup() {
Serial.begin(9600);
pinMode(input1, OUTPUT);
pinMode(input2, OUTPUT);
pinMode(enableA,OUTPUT);
pinMode(input4, OUTPUT);
pinMode(input3, OUTPUT);
pinMode(enableB,OUTPUT);

digitalWrite(enableA, HIGH); // 出力許可
digitalWrite(enableB, HIGH);
}

void loop() {
for(int i=0; i<200; i++){
cwP(); // CW方向へ1パルス
}
delay(500);
for(int i=0; i<200; i++){
ccwP(); // CCW方向へ1パルス
}
delay(500);
}

void cwP() { // CW方向へ1パルス
pos++;
PMdrive(pos);
}

void ccwP() { // CCW方向へ1パルス
pos--;
PMdrive(pos);
}

void PMdrive(unsigned int n) { // 指定状態にコイルを励磁
int phase;
phase = n % 4; // 位相を求め
switch (phase) { // 相当する状態に通電
case 0:
digitalWrite(input1, HIGH); // A+
digitalWrite(input2, LOW);
digitalWrite(input3, HIGH); // B+
digitalWrite(input4, LOW);
break;
case 1:
digitalWrite(input1, LOW);
digitalWrite(input2, HIGH); // A-
digitalWrite(input3, HIGH); // B+
digitalWrite(input4, LOW);
break;
case 2:
digitalWrite(input1, LOW);
digitalWrite(input2, HIGH); // A-
digitalWrite(input3, LOW);
digitalWrite(input4, HIGH); // B-
break;
case 3:
digitalWrite(input1, HIGH); // A+
digitalWrite(input2, LOW);
digitalWrite(input3, LOW);
digitalWrite(input4, HIGH); // B-
break;
}
delayMicroseconds(t); // 一定時間待つ
}
 回路とプログラムを実際に動かした動画です。ハードオフのジャンクで100円で売っていたDVDドライブから、ヘッドのシーク機構を取り出して動かしてみました。

 余分な部分があるので、移動距離に比べて外形寸法が大きいですが、マイコン制御の直動機構です。なかなかキビキビと動くし、移動の寸法精度も高いはずです。

 ということで、ドライバ回路が出来たので、ポタ赤のメカ作りに入りたいと思います。
カレンダー
05 | 2017/06 | 07
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -
プロフィール

ラジオペンチ

Author:ラジオペンチ
電子工作を中心としたブログです。たまに近所(東京都稲城市)の話題など。60過ぎて視力や器用さの衰えを感じつつ日々挑戦!
コメントを入れる時にメールアドレスの記入は不要です。なお、非公開コメントは受け付けていません。

記事が気に入ったらクリックを!
最新記事
カテゴリ
最新コメント
リンク
FC2カウンター
検索フォーム
月別アーカイブ
RSSリンクの表示
QRコード
QRコード