原点復帰と座標管理

ステッピングモータと原点復帰

システムの電源投入時は、モータが現在どの位置で止まっているかが不明の状態です。前回電源を切った時のタイミング次第でいろんな方向に向いている可能性があります。

またステッピングモータは限界を超える外力がかかるとステップがずれてしまいます(脱調)。そうなると、プログラム上の位置と物理的な位置がずれたまま動き続けてしまいます。

そのため、位置や向きがある使い方の場合は、起動時に、あるいは定期的にセンサを使って基準位置を検出する必要があります。この動作は原点復帰と呼ばれます。

センサとスイッチ

Two configuration of homing sensor

原点センサにはフォトインタラプタがよく使われています。左はスライダに取り付けられた白い樹脂がフォトインタラプタの発光部と受光部を遮るようになっています。右は回転テーブルの例で、フォトインタラプタが黒いねじに反応するようになっています。 ほかにもマイクロスイッチや光電センサなどが使われます。

STEP400の原点復帰機能

STEP400は各軸に対してHOMEとLIMITの2つのコネクタがあり、センサやスイッチを接続できるようになっています。また端子にはセンサ用の5V電源も供給されています。

HOME

モータドライバチップに直接接続されていて、ドライバの原点復帰機能と組み合わせて使うことができます。通常はこのコネクタを原点センサ用に使います。

LIMIT

アプリケーションによってはセンサが2つ必要なこともあります。例えばスライダなどは動作範囲が限定されているため、動作中に脱調するとどちらかの端に衝突してしまう可能性があります。このような場合に両端にセンサを設置しておくと衝突を防ぐことができます。

これらの端子が反応するとモータを強制的に停止する設定が可能ですが、逆にモータ動作と切り離して単純なスイッチ入力として使うこともできます。例えば押しボタンを接続しておいて、押されたらOSCメッセージで通知する、という使い方もできます。

原点復帰コマンド

STEP400では、モータドライバチップのPowerSTEP01から継承した以下のような原点復帰コマンドがあります。

/goUnitl

まずはこのコマンドで原点センサに向かって移動していきます。(そのように設定している場合は)原点センサが反応するとモータが減速停止します。 -> /goUntil

/releaseSw

モータが停止した位置が原点です!ただ厳密には、/goUnitlコマンドでは瞬間に停止するのではなく、減速して停止したため、センサが反応した瞬間からずれて停止します。このコマンドは現在位置からゆっくりと逆方向へ移動し、センサが反応しなくなったところで即時停止します。 -> /releaseSw

どちらのコマンドもセンサが反応した時点で現在位置の座標をゼロにリセットする設定にできます。-> /setHomeSwMode

これらのコマンドと動作の実例はこちらの映像をご覧ください。

常時開と常時閉

電気的接続

「センサが反応する」をもう少し厳密に考えてみます。 HOMEとLIMITの各コネクタのピン配置は以下の通りです。

ピン番号 機能
1 GND
2 スイッチ/センサ入力
3 5V電源出力

HOMEとLIMITの各センサピンは3.3Vでプルアップされています。スイッチをつなぐ場合は1番のGNDと2番のセンサ端子を接続します。スイッチが押されるとGNDピンとつながって、3.3Vから0Vへ電圧が落下します。このHIGHレベルからLOWレベルへの電圧の変化時 (Falling Edge) に、センサが反応したという判定が発生します。

センサの場合は、EE-SX671Aを例にとると次のような接続になります。

EE-SX671A Diagram

ピン番号 機能 センサピン
1 GND -
2 SW/センサ入力 OUT
3 5V出力 +

センサの反応時に入光するのか遮光するのか

ここはセンサを買いに行く前によく考えておかなければならない部分です。 Dark on or Light on

左の場合は、原点位置でセンサに入光するようになっていますが、右の場合は原点位置でセンサが遮光されるようになっています。

センサにも、入光時にONになるタイプと遮光時にONになるタイプがあります。また切替式のセンサもあって、上記のオムロン製センサの場合はLという端子と+端子をショートすると動作が切り替わります。

原点位置でセンサピンがHIGH→LOWになるように機構とセンサを組み合わせなければなりません。

回転テーブルの場合

例えば上の写真の左の回転テーブルで考えた場合、時計回りの場合と反時計回りの場合で原点センサの反応位置が穴のサイズ分ずれてしまいます。STEP400では原点センサのHIGH→LOWとLOW→HIGHの変化どちらともOSCメッセージで通知させることができます。このメッセージには回転方向も含まれていますので、回転方向によって場合分けすれば原点位置をそろえることができます。 -> /enableHomeSwReport

Back to top