モーターを使う

  1. モーターの接続について
  2. モーターのプログラミングで使う関数
  3. シングルモードでDCモーターを回す
  4. パラレルモードでDCモーターを回す
  5. ステッピングモードでモーターを回す

1.モーターの接続について

RECoreのモーター接続について説明します。

RECoreのモータードライバーには以下の機能が搭載されています。

  • 組み合わせできる3種類のモーター接続
  • 0~1500mAの電流制限機能
  • 異常検知

モーターは以下の接続方法があり、これらを組み合わせて使用できます。

  1. 最大4台、1AまでのシングルDCモーター接続
  2. 最大2台、2AまでのパラレルDCモーター接続
  3. 最大2台、1Aまでのステッピングモーター接続

モーターの接続について

モーター端子は、下図のような割当になっています。

モーター端子の割当

モータードライバーは、ユニットAとユニットBがあり、その中でさらに2つのモーターのペアに分かれています。

シングルDCモードではモーターは、モーター0、モーター1といった小さなモーターペアに接続されます。パラレルDCモードとステッピングモードでは、モーターはユニットごとに接続されます。

モーターの設定はユニットごとに可能で、ユニットAをシングルDCモーター、ユニットBをステッピングモーターに設定するといった使い方が可能です。

電流制限機能について

電流制限機能はモーターに流れる電流を0~1500mAの範囲で、プログラムで指定した電流に制限できる機能です。この機能を組み合わせることで、モーターの破損を防止し安全に使用したり、ごく簡易的なトルク制御を行うことが可能です。

電流制限機能は、すべてのモーターユニットで共通で、この機能はユニットごと・モーターごとに設定できない点に注意してください。

異常検知について

モータードライバーが加熱したり、ショートや大きな電流を検知した場合に、モータードライバーでは保護動作が発生します。保護動作の動作状況は、プログラムから確認することができます。

異常検知(フォールト)も同様にすべてのモーターユニットで共通となっています。


2.モーターのプログラミングで使う関数

モーターのプログラミングでは以下の関数が使われます。

setMotorType(ユニット, モータータイプ)

モーターのタイプをユニットごとに設定します。

ユニット : MotorUnit.A、MotorUnit.B

モータータイプ : MotorType.SINGLE_DC、MotorType.PARALLEL_DC、MotorType.STEPPING

setMotorCurrent(電流値(mA))

モーターの電流制限値を設定します。単位はmAです。

setMotorSpeed(モーター番号, スピード設定)

DCモーターで、モーターのスピードを設定します。

スピード設定は0~1.0までの割合で、正の値で正転、負の値で逆転します。

モーター番号 : 0~4

スピード設定 : 1.0 ~ 0 ~ -1.0

setSteppingSpeed(ユニット, 回転方向, 回転数(min^-1))

ステッピングモーターで、指定した方向に指定した回転数で回転し続けます。

ユニット : MotorUnit.A、MotorUnit.B

回転方向 : False、 True (または0、1)

回転数 : min^-1 (rpm)

setSteppingSteps(ユニット, ステップ数, 回転数(min^-1), (オプション)ステップ数)

ステッピングモーターで、指定したステップ数を指定した回転数で回転させます。

ステップ数は正の値で正回転、負の値で逆回転の設定になります。

ユニット : MotorUnit.A、MotorUnit.B

ステップ数 : 整数のステップ数

回転数 : min^-1 (rpm)

(オプション)ステップ数 : モーターの一回転あたりのステップ数 指定しない場合は200


3.シングルモードでDCモーターを回す

モータードライバーをシングルモードで使用することで、最大で4個のDCモーターを接続することができます。

モーターと端子台は下図のように接続します。モーターは端子台の右から0~3の順の番号になります。

シングルモードのDCモーター接続

シングルモードでモーターを動かすためには、以下の手順をプログラミングします。

  1. ユニットのモータータイプをシングルモードに設定する : setMotorType
  2. 全体の電流制限値を設定する : setMotorCurrent
  3. モーターの番号と速度を指定する : setMotorSpeed

以下の動作を行うプログラム例です。

  • ユニットAのモータータイプをシングルDCに設定
  • 電流制限を100mAに設定
  • モーター0の速度を50%(0.5)に設定

from pyrecore import *
import time

recore = RECore()

#ユニットAのモーターの種類をシングルタイプに設定します
recore.setMotorType(MotorUnit.A,MotorType.SINGLE_DC)

#モーターの電流制限を100mAに設定します
recore.setMotorCurrent(100)

#モーター0のスピードを50%(0.5)に設定します
recore.setMotorSpeed(0, 0.5)


4.パラレルモードでDCモーターを回す

モータードライバーをパラレルモードで使用することで、最大で2個のDCモーターを接続することができます。

モーターの指定は、ユニットAのモーターは0または1、ユニットBのモーターは2または3で指定することができます。

パラレルモードで設定した電流制限設定は、設定値の2倍になることに注意してください。

パラレルモードのDCモーター接続

パラレルモードでモーターを動かすためには、以下の手順をプログラミングします。

  1. ユニットのモータータイプをパラレルモードに設定する : setMotorType
  2. 全体の電流制限値を設定する : setMotorCurrent
  3. モーターの番号と速度を指定する : setMotorSpeed

以下の動作を行うプログラム例です。

  • ユニットAのモータータイプをシングルDCに設定
  • 電流制限を500mAに設定、パラレルモードではユニットで1A
  • モーター0の速度を50%(0.5)に設定

from pyrecore import *
import time

recore = RECore()

#ユニットAのモーターの種類をパラレルタイプに設定します
recore.setMotorType(MotorUnit.A,MotorType.PARALLEL_DC)

#モーターの電流制限を500mA、ユニットで1Aに設定します
recore.setMotorCurrent(500)

#モーター0のスピードを50%(0.5)に設定します
recore.setMotorSpeed(0, 0.5)


5.ステッピングモードでモーターを回す

モータードライバーをステッピングモードで使用することで、最大で2個のステッピングモーターを接続することができます。モーターの指定はユニットで行います。

ステッピングモードのDCモーター接続

ステッピングモードでモーターを動かすためには、以下の手順をプログラミングします。

  1. ユニットのモータータイプをステッピングモードに設定する : setMotorType
  2. 全体の電流制限値を設定する : setMotorCurrent
  3. モーターのユニットを指定し、速度またはステップ数を指定する : setSteppingSpeed、setSteppingSteps

以下の動作を行うプログラム例です。

  • ユニットA、ユニットBのモータータイプをステッピングに設定
  • 電流制限を200mAに設定
  • ユニットAのステッピングモーターを速度指定で、ユニットBのステッピングモーターをステップ数指定で動作

from pyrecore import *
import time

recore = RECore()

#ユニットA,Bのモーターの種類をステッピングタイプに設定します
recore.setMotorType(MotorUnit.A, MotorType.STEPPING)
recore.setMotorType(MotorUnit.A, MotorType.STEPPING)

#モーターの電流制限を200mA
recore.setMotorCurrent(200)

#ユニットAのステッピングモーターを100min^-1で正回転
recore.setSteppingSpeed(MotorUnit.A, False, 100)

#ユニットBのステッピングモーターを100min^-1で200ステップ正回転
recore.setSteppingSpeed(MotorUnit.B, 200, 100)