PMX MotorWRITE概要
■MotorWRITEコマンドについて
MotorWRITEコマンドは、PMXサーボの動作を指示するためのコマンドです。このコマンドを使用することで、命令を受け取ったサーボは設定された「制御モード」に合わせて動作します。また、パケットを受け取った返事として「応答データ指定」で指定したデータを含んで返事を返します。
■サーボの電源投入から動作までの手順
PMXサーボは、多彩な機能を実行するためにサーボの電源投入から動作開始まで各モードの設定が必要です。
①「制御モード」を指定する
②「応答データ指定」を指定する
③「トルクスイッチ」の設定をTorqueONに指定する
④「MotorWRITE」コマンドで動作指示をする
①「制御モード」を指定する
Bit0:位置制御
Bit1:速度制御
Bit2:電流制御
Bit3:トルク制御
Bit4:PWM制御
Bit5:移動時間指示
各ビットを1にすることでモードを選択することができます。例えば、位置制御のみの場合は0x01(0b00000001)、位置制御と電流制御を組み合わせる場合は、0x05(0b00000101)となります。こちらのデータをMemWRITEコマンドを使用し、アドレス501の「制御モード」に書き込みます。
ライブラリでは、setControlMode()という制御モードを変更するための専用の関数を用意しています。
②「応答データ指定」を指定する
応答データは下記の8種類です。
Bit0:現在位置
Bit1:現在速度
Bit2:現在電流値
Bit3:現在推定トルク
Bit4:PWM出力割合
Bit5:モータ温度
Bit6:CPU温度
Bit7:入力電圧
各ビットを1にすることで指定することができます。0xFFで8種類すべての応答データを受け取ることもできますし、0を指定すれば応答データを含めずに最小のバイト数で返事のパケットを受け取ることができます。制御に必要なデータを選択してください。
ライブラリのsetMotorReceive()関数を使用することで「応答データ指定」を書き換えることができます。
【設定を保存する】
以上①②の設定は、SAVEコマンドを実行することでサーボに保存することができます。保存が完了しましたら、以降は電源投入後③のトルクをオンにする手順からスタートすることでき、トルクオンから即動作することが可能です。
③「トルクスイッチ」の設定をTorqueONに指定する
「トルクスイッチ」にデータを書き込んで、サーボをTorqueONモードにします。「トルクスイッチ」には下記の4種類のモードがあります。
・TorqueON setMotorTorqueOn()関数
・Free setMotorFree()関数
・Brake setMotorBrake()関数
・Hold setMotorHold()関数
サーボに電源が入った直後の脱力した状態が「Free」です。サーボが動作するためには必ず「TorqueON」に設定します。「Free」「Brake」「Hold」でMotorWRITEコマンドを受け取ってもサーボは動作しませんのでご注意ください。各モードの詳細は、オンラインマニュアルの『トルクスイッチ』をご参照ください。
ライブラリのsetMotorTorqueOn()関数を使用することでサーボを「TorqueON」の状態にできます。また、それぞれのモードに設定するための関数も用意されています。
④「MotorWRITE」コマンドで動作指示をする
ここまでの処理でPMXサーボを動作させる準備が整いました。次の処理からMotorWRITEコマンドを使用してサーボを動かします。