CHIRIMEN : i2c-arduino-steppingMotor.js API

はじめに

これは CHIRIMEN for Raspberry Pi でステッピングモータを制御する i2c-arduino-steppingMotor.js の API リファレンスです。
動作させるには CHIRIMEN for Raspberry Pi と、ステッピングモータ、EasyDriver 等のステッピングモータドライバモジュール、arduino-stepping-motorのスケッチを書き込んだ Arduino を適切に接続している事が必要です。ステッピングモータドライバモジュールは、CLK と DIR で制御されるものを前提としています。Arduino は I2C スレーブデバイスとして動作し、CHIRIMEN は I2C インターフェースを通じてコマンドを発行します。

このライブラリを使用するには <script src="i2c-stepping-motor.jsへのパス"></script> でドライバライブラリを読み込みます。

クラス SteppingMotor

ステッピングモータを制御するためのクラスです。

constructor

new SteppingMotor(port, slaveAddress) により、SteppingMotorを制御するオブジェクトを生成します。

パラメータ

port CHIRIMEN の i2cAccess.ports.get() で取得したI2Cポートオブジェクトです。
slaveAddress I2Cデバイスのスレーブアドレスです。Arduino が arduino-stepping-motor のスケッチをそのまま使用している場合は 0x12 となります。

戻り値

SteppingMotorオブジェクト

init()

SteppingMotorオブジェクトが使用するI2Cポートの初期化を行います。コンストラクタで SteppingMotor オブジェクトを生成した後、init() で初期化を行う事により実際に使用可能な状態になります。この関数は非同期です。初期化が終了した時点でリゾルブされる Promise を返します。

パラメータ

なし

戻り値

Promise<void>

readStatus()

ステッピングモータの現在の状態を取得します。この関数は非同期です。リゾルブ時の引数としてステッピングモータが現在回転中ならば 1、停止中ならば 0 が渡されます。

パラメータ

なし

戻り値

Promise<status>

move(step)

ステッピングモータを指定のステップ数だけ動かします。step が正の値ならば正方向、負の値ならば逆方向に回転します。この関数は非同期で Promise を返し、Promise は指定のステップ数の回転が終了した時点でリゾルブします。指定可能なステップ数は -0xffff から +0xffff の範囲です。また、ステップ数として -0xffff または 0xffff を指定した場合はステップ数を無視して回り続けます。

このステップ数はモータドライバのマイクロステップ動作は関知しません。つまり、モータが 1 回転あたり 200 パルスでモータドライバが 1/8 マイクロステップ動作である場合、move(1600) で 1 回転します。

パラメータ

step ステップ数

戻り値

Promise<void>

abort()

ステッピングモータが現在回転中であれば強制的に停止します。この関数は非同期です。停止処理が完了した時点でリゾルブする Promise を返します。

パラメータ

なし

戻り値

Promise<void>

setSpeed(speed)

ステッピングモータの回転速度を指定します。この回転速度は次回以降の move() コマンドで使用されると共に、現在既に回転中であれば即時に回転速度を切り替えます。この関数は非同期です。コマンドが実行された時点でリゾルブされる Promise を返します。

この回転速度の単位はモータドライバのマイクロステップ動作にかかわらず pulse / sec です。例えばモータが 1 回転あたり 200 パルスでモータドライバが 1/8 マイクロステップ動作の場合、setSpeed(1600) で毎秒 1 回転の速度になります。

パラメータ

speed 回転速度 (pulse / sec)

戻り値

Promise<void>

setMinSpeed(speed)

ステッピングモータの最低回転速度を指定します。最低回転速度はモータの回転開始時の加速初期速度、停止時の減速の最終速度として使用されます。setSpeed() コマンドで setMinSpeed() の速度以下を指定した場合は無効となります。 この関数は非同期です。コマンドが実行された時点でリゾルブされる Promise を返します。

この回転速度の単位はモータドライバのマイクロステップ動作にかかわらず pulse / sec です。例えばモータが 1 回転あたり 200 パルスでモータドライバが 1/8 マイクロステップ動作の場合、setSpeed(1600) で毎秒 1 回転の速度になります。

この関数は非同期です。コマンドが実行された時点でリゾルブされる Promise を返します。

パラメータ

speed 回転速度 (pulse / sec)

戻り値

Promise<void>

setAccelRate(rate)

モータの回転開始/停止時の加減速の速さを指定します。ステッピングモータは回転速度の変化が急激すぎると回転が付いていかず「脱調」という現象が発生します。setAccelRate() を適切に設定する事で指定された速度に対して変化を緩やかにして脱調を抑える事ができます。 rate の単位は msec/kHz で、パルスの周波数が 1kHz あたり変化するために必要な時間(msec)を表します。

0 を指定した場合は加減速処理は行われず、指定された速度のパルスに即時に変化します。

この関数は非同期です。コマンドが実行された時点でリゾルブされる Promise を返します。

パラメータ

rate 加減速レート (msec / kHz)

戻り値

Promise<void>

enable(ena)

モータドライバの駆動を開始/停止します。ena が 0 の場合は停止、1 の場合は開始します。モータドライバは init()の後デフォルトで駆動状態にあります。enable(0) でモータドライバの駆動を停止する事でモータはフリーに回転できる状態になります。

この関数は非同期です。コマンドが実行された時点でリゾルブされる Promise を返します。

パラメータ

ena 0 または 1

戻り値

Promise<void>