PMX PythonLib setMotorTorqueOn()
『PMX Library for Python』のsetMotorTorqueOn()関数について解説します。
【解説】
setMotorTorqueOn()関数は、PMXサーボのトルクスイッチをTorqueONに指令するための関数です。サーボをTorqueONにすることで、MotorWRITEコマンドなどの動作指令によりサーボが動作できる状態になります。
【構文】
[status, torqueSwitch, [rxDataList]] = setMotorTorqueOn(ID, receiveMode, controlMode)
【例】
1 2 3 4 5 6 7 8 9 |
controlMode = PMX.ControlMode.Position # 位置制御モード値 status = pmx.setControlMode(ServoID, controlMode, writeOpt=0x01) receiveMode = PMX.ReceiveDataOption.Full # すべて返す status = pmx.setMotorReceive(ServoID, receiveMode, writeOpt=0x01) # TorqueONに設定 status, tq, data = pmx.setMotorTorqueOn(ServoID, receiveMode, controlMode=controlMode) print("setMotorTorqueOn", hex(status), data) |
【パラメータ】
引数1:ID(int型)
第一引数の「ID」はサーボIDです。「ID」は、命令の対象になるサーボを指定しています。「ID」を0に指定すると、ID0のサーボを指定することができます。
引数2:receiveMode(int型)
第二引数の「receiveMode」は「応答データ指定」の設定値を渡します。
引数3:controlMode(int型)
第三引数の「controlMode」は「制御モード」の設定値を渡します。制御モードは読み出しに関係ない項目ですが、PMXサーボは位置制御モードを含む場合と、速度制御のみなど無限回転する動作の場合で現在位置の値が異なります。そのため、「制御モード」を渡すことで読み出した現在位置を正しいデータに変換して返してもらいます。
位置制御モードを含む場合=-320度~320度の範囲で検出
無限回転動作の場合=0度~359度の範囲で検出
詳しくは「パラメータ読み出し」をご参照ください。
【戻り値】
戻り値1:status(int型)
一つ目の戻り値は、サーボとの通信状態とサーボの状態が正常かどうかのステータスを足したものが返ってきます。データが0であれば問題ありません。0以外の場合は、なんらかの問題が発生していますので、ステータス部がエラーの場合はオンラインマニュアルの『5.エラー状態』を、通信部がエラーの場合は『ComError』を参照してください。
戻り値2:torqueSwitch(int型)
二つ目の戻り値は、トルクスイッチの現在の状態です。
戻り値3:rxDataList(int型のリスト)
三つ目の戻り値として読み出したデータが返ってきます。データは応答データ指定のbit0から順番にリストにまとまっています。