1.モーターの接続について
RECoreのモーター接続について説明します。
RECoreのモータードライバーには以下の機能が搭載されています。
- 組み合わせできる3種類のモーター接続
- 0~1500mAの電流制限機能
- 異常検知
モーターは以下の接続方法があり、これらを組み合わせて使用できます。
- 最大4台、1AまでのシングルDCモーター接続
- 最大2台、2AまでのパラレルDCモーター接続
- 最大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の順の番号になります。
シングルモードでモーターを動かすためには、以下の手順をプログラミングします。
- ユニットのモータータイプをシングルモードに設定する : setMotorType
- 全体の電流制限値を設定する : setMotorCurrent
- モーターの番号と速度を指定する : 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倍になることに注意してください。
パラレルモードでモーターを動かすためには、以下の手順をプログラミングします。
- ユニットのモータータイプをパラレルモードに設定する : setMotorType
- 全体の電流制限値を設定する : setMotorCurrent
- モーターの番号と速度を指定する : 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個のステッピングモーターを接続することができます。モーターの指定はユニットで行います。
ステッピングモードでモーターを動かすためには、以下の手順をプログラミングします。
- ユニットのモータータイプをステッピングモードに設定する : setMotorType
- 全体の電流制限値を設定する : setMotorCurrent
- モーターのユニットを指定し、速度またはステップ数を指定する : 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)