PmxArdinoLib 1.0.3
読み取り中…
検索中…
一致する文字列を見つけられません
PmxHardSerial クラス

PMXで使用する関数や定義をひとまとまりにしたもので、ArduinoのHardwareSerialを使用して動作します。 [詳解]

#include <PmxHardSerialClass.h>

PmxHardSerial の継承関係図
PmxHardSerial 連携図

公開メンバ関数

 PmxHardSerial (HardwareSerial *hardSerial, byte enPin, long baudrate=115200, int timeout=100)
 Construct a new Pmx Hard Serial:: Pmx Hard Serial object
 
 PmxHardSerial (HardwareSerial *hardSerial, byte enPin, long baudrate, unsigned short serialConfig, int timeout)
 Construct a new Pmx Hard Serial:: Pmx Hard Serial object
 
 ~PmxHardSerial ()
 Destroy the Pmx Hard Serial:: Pmx Hard Serial object
 
bool begin (long baudrate=PMX::ErrorUint32Data, int timeout=PMX::ErrorUint16Data)
 HardwareSerialポートの設定をする
 
bool isSynchronize ()
 Synchronize関数が送受信してるか確認する
 
virtual bool synchronize (byte *txBuf, byte txLen, byte *rxBuf, byte rxLen)
 HardwareSerialを使用して送受信します
 
virtual bool synchronizeVariableRead (byte *txBuf, byte txLen, byte *rxBuf, byte *rxLen)
 HardwareSerialを使用してtxBufのコマンドを送受信します。 返信データ数がわからない場合に使用します。
 
virtual bool synchronizeNoRead (byte *txBuf, byte txLen)
 ブロードキャストIDなどでデータの返事がないとわかっている時に送信をします。
 
virtual void setLogSerial (HardwareSerial *logSerial)
 Logを出力するシリアルポートの設定をします。
 
- 基底クラス PmxBase に属する継承公開メンバ関数
unsigned short MemREAD (byte id, unsigned short addr, int readDataSize, byte rxData[])
 MemREADコマンドでPMXサーボモータからデータを取得します。
 
unsigned short MemREADToByte (byte id, unsigned short addr, byte *byteData)
 MemREADで取得したデータをbyte(符号なし1byte)に変換して取得します。
 
unsigned short MemREADToInt16 (byte id, unsigned short addr, short *int16Data)
 MemREADで取得したデータをint16(符号あり2byte)に変換して取得します。
 
unsigned short MemREADToUint16 (byte id, unsigned short addr, unsigned short *uint16Data)
 MemREADで取得したデータをUint16(符号なし2byte)に変換して取得します。
 
unsigned short MemREADToInt32 (byte id, unsigned short addr, long *int32Data)
 MemREADで取得したデータをint32(符号あり4byte)に変換して取得します。
 
unsigned short MemREADToUint32 (byte id, unsigned short addr, unsigned long *uint32Data)
 MemREADで取得したデータをUint32(符号なし4byte)に変換して取得します。
 
unsigned short MemWRITE (byte id, unsigned short addr, byte txDataArray[], int txDataSize, byte writeOpt=0)
 PMXサーボモータにMemWRITEコマンドを発行し、結果を取得します。
 
unsigned short MemWRITEToByte (byte id, unsigned short addr, byte byteData, byte writeOpt=0)
 MemWRITEでbyte(符号なし1byte)のデータを書き込みます。その結果のステータス情報を返信します。
 
unsigned short MemWRITEToInt16 (byte id, unsigned short addr, short int16Data, byte writeOpt=0)
 MemWRITEでint16(符号あり2byte)のデータを書き込みます。その結果のステータス情報を返信します。
 
unsigned short MemWRITEToUint16 (byte id, unsigned short addr, unsigned short uint16Data, byte writeOpt=0)
 MemWRITEでUint16(符号なし2byte)のデータを書き込みます。その結果のステータス情報を返信します。
 
unsigned short MemWRITEToInt32 (byte id, unsigned short addr, long int32Data, byte writeOpt=0)
 MemWRITEでint32(符号あり4byte)のデータを書き込みます。その結果のステータス情報を返信します。
 
unsigned short MemWRITEToUint32 (byte id, unsigned short addr, unsigned long uint32Data, byte writeOpt=0)
 MemWRITEでUint32(符号なし4byte)のデータを書き込みます。その結果のステータス情報を返信します。
 
unsigned short MotorREAD (byte id, byte receiveMode, long receiveData[8], byte controlMode=0x01, byte *torqueSw=nullptr)
 MotorREAD関数を発行し、応答モードに応じてデータを取得します。
 
unsigned short MotorWRITE (byte id, byte toruqeOnSw)
 MotorWRITE 機能は、モータの制御やトルクのオン/オフを切り替えるコマンドを送信し、モーターからステータスとデータを受信します。
 
unsigned short MotorWRITE (byte id, byte toruqeOnSw, byte receiveMode, long receiveData[8], byte controlMode=0x01)
 MotorWRITE 機能は、モータの制御やトルクのオン/オフを切り替えるコマンドを送信し、モーターからステータスとデータを受信します。
 
unsigned short MotorWRITE (byte id, long writeDatas[], int writeDataCount)
 MotorWRITE 機能は、モータの制御やトルクのオン/オフを切り替えるコマンドを送信し、モーターからステータスとデータを受信します。
 
unsigned short MotorWRITE (byte id, long writeDatas[], int writeDataCount, byte receiveMode, long receiveData[8], byte controlMode=0x01)
 MotorWRITE 機能は、モータの制御やトルクのオン/オフを切り替えるコマンドを送信し、モーターからステータスとデータを受信します。
 
unsigned short MotorWRITESingle (byte id, long targetVal)
 MotorWRITEでデータ指示一つの場合に使用します
 
unsigned short MotorWRITESingle (byte id, long targetVal, byte receiveMode, long receiveData[8], byte controlMode=0x01)
 MotorWRITEでデータ指示一つの場合に使用します
 
unsigned short MotorWRITEDouble (byte id, long targetVal1, long targetVal2)
 MotorWRITEを使用して2変数を指示するときに使用します。
 
unsigned short MotorWRITEDouble (byte id, long targetVal1, long targetVal2, byte receiveMode, long receiveData[8], byte controlMode=0x01)
 MotorWRITEを使用して2変数を指示するときに使用します。
 
unsigned short MotorWRITETriple (byte id, long targetVal1, long targetVal2, long targetVal3)
 MotorWRITEを使用して3変数を指示するときに使用します。
 
unsigned short MotorWRITETriple (byte id, long targetVal1, long targetVal2, long targetVal3, byte receiveMode, long receiveData[8], byte controlMode=0x01)
 MotorWRITEを使用して3変数を指示するときに使用します。
 
unsigned short LOAD (byte id)
 PMXサーボモータのLOADコマンドを発行し、ステータス結果を取得します。
 
unsigned short SAVE (byte id)
 PMXサーボモータのSAVEコマンドを発行し、ステータス結果を取得します。
 
unsigned short SystemREAD (byte id, byte rxData[])
 SystemREAD 関数は、サーボからシステム情報を読み取ります。
 
unsigned short getSerialNumber (byte id, unsigned long *serialLongNum)
 指定したIDのサーボからシリアル番号を取得します。
 
unsigned short getSerialNumber (byte id, byte serialByteNum[4])
 指定したIDのサーボからシリアル番号を取得します。
 
unsigned short getModelNum (byte id, unsigned long *modelFullNum)
 指定したIDのサーボからモデル番号を取得します。
 
unsigned short getModelNum (byte id, unsigned short *modelNum, unsigned short *seriesNum)
 指定したIDのサーボからモデル番号を取得します。
 
unsigned short getVersion (byte id, byte verData[4])
 指定したIDからファームウェアのバージョン番号を取得します。
 
unsigned short getResponseTime (byte id, byte *respTime)
 システム読み取り操作のステータスと応答時間を取得します。
 
unsigned short SystemWRITE (byte id, byte serialNum[4], byte option, byte newId, byte newBaudrateVal, byte newParityVal, byte newResponseTime)
 SystemWRITEコマンドを使用してID、ボーレート、パリティ、および応答時間を設定します。
 
unsigned short SystemWRITE (byte id, unsigned long serialNum, byte option, byte newId, byte newBaudrateVal, byte newParityVal, byte newResponseTime)
 SystemWRITEコマンドを使用してID、ボーレート、パリティ、および応答時間を設定します。
 
unsigned short SystemWRITE (byte id, byte option, byte newId, byte newBaudrateVal, byte newParityVal, byte newResponseTime)
 SystemWRITEコマンドを使用してID、ボーレート、パリティ、および応答時間を設定します。
 
unsigned short setId (byte id, byte newId)
 指定したIDを新しい ID に設定します。
 
unsigned short setBaudrate (byte id, byte newBaudRate)
 指定したIDの通信速度を設定します
 
unsigned short setParity (byte id, byte newParityNum)
 指定したIDのパリティを設定します
 
unsigned short setResponseTime (byte id, byte respTime)
 指定したIDの応答時間を設定します
 
unsigned short ReBoot (byte id, int resetTime=0)
 サーボモータを再起動させます。
 
unsigned short FactoryReset (byte id, byte serialNum[4]=NULL)
 サーボを工場出荷時の設定にリセットします
 
unsigned short getPositionKpGain (byte id, unsigned long *data)
 指定した ID の位置制御のPゲインを取得します。
 
unsigned short getPositionKiGain (byte id, unsigned long *data)
 指定した ID の位置制御のIゲインを取得します。
 
unsigned short getPositionKdGain (byte id, unsigned long *data)
 指定した ID の位置制御のDゲインを取得します。
 
unsigned short getPositionGain (byte id, unsigned long *kpdata, unsigned long *kidata, unsigned long *kddata)
 指定した ID の位置制御のPIDゲインを取得します。
 
unsigned short getPositionStretchGain (byte id, unsigned long *data)
 指定した ID の位置制御のストレッチゲインを取得します。
 
unsigned short getSpeedKpGain (byte id, unsigned long *data)
 指定した ID の速度制御のPゲインを取得します。
 
unsigned short getSpeedKiGain (byte id, unsigned long *data)
 指定した ID の速度制御のIゲインを取得します。
 
unsigned short getSpeedKdGain (byte id, unsigned long *data)
 指定した ID の速度制御のDゲインを取得します。
 
unsigned short getSpeedGain (byte id, unsigned long *kpdata, unsigned long *kidata, unsigned long *kddata)
 指定した ID の速度制御のPIDゲインを取得します。
 
unsigned short getCurrentKpGain (byte id, unsigned long *data)
 指定した ID の電流制御のPゲインを取得します。
 
unsigned short getCurrentKiGain (byte id, unsigned long *data)
 指定した ID の電流制御のIゲインを取得します。
 
unsigned short getCurrentKdGain (byte id, unsigned long *data)
 指定した ID の電流制御のDゲインを取得します。
 
unsigned short getCurrentGain (byte id, unsigned long *kpdata, unsigned long *kidata, unsigned long *kddata)
 指定した ID の電流制御のPIDゲインを取得します。
 
unsigned short getTorqueKpGain (byte id, unsigned long *data)
 指定した ID のトルク制御のPゲインを取得します。
 
unsigned short getTorqueKiGain (byte id, unsigned long *data)
 指定した ID のトルク制御のIゲインを取得します。
 
unsigned short getTorqueKdGain (byte id, unsigned long *data)
 指定した ID のトルク制御のDゲインを取得します。
 
unsigned short getTorqueGain (byte id, unsigned long *kpdata, unsigned long *kidata, unsigned long *kddata)
 指定した ID のトルク制御のDゲインを取得します。
 
unsigned short getCenterOffset (byte id, short *offsetData)
 指定した ID の中央値オフセット値を取得します。
 
unsigned short getCloneReverse (byte id, byte *data)
 指定した ID のクローン/リバース値を取得します。
 
unsigned short getMinVoltageLimit (byte id, unsigned short *data)
 指定したIDの下限電圧リミット値を取得します。
 
unsigned short getMinVoltageLimitPower (byte id, unsigned short *data)
 指定したIDの下限リミット電圧を下回った場合の出力割合を取得します。
 
unsigned short getMaxVoltageLimit (byte id, unsigned short *data)
 指定したIDの上限リミット電圧を取得します。
 
unsigned short getMaxVoltageLimitPower (byte id, unsigned short *data)
 指定したIDの上限リミット電圧を超えた場合の出力割合を取得します。
 
unsigned short getCurrentLimit (byte id, unsigned short *data)
 指定したIDの電流リミット値を取得します。
 
unsigned short getCurrentLimitPower (byte id, unsigned short *data)
 指定したIDの電流リミットを超えた時の出力割合を取得します。
 
unsigned short getMotorTempLimit (byte id, unsigned short *data)
 指定したIDのモータ温度リミット値を取得します。
 
unsigned short getMotorTempLimitPower (byte id, unsigned short *data)
 指定したIDのモータ温度リミットを超えた時の出力割合を取得します。
 
unsigned short getCpuTempLimit (byte id, unsigned short *data)
 指定したIDのCPU温度リミット値を取得します。
 
unsigned short getCpuTempLimitPower (byte id, unsigned short *data)
 指定したIDのCPU温度リミットを超えた時の出力割合を取得します。
 
unsigned short getCwPositionLimit (byte id, short *data)
 指定したIDのCW方向の動作角度リミット値を取得します。
 
unsigned short getCwPositionLimitPower (byte id, unsigned short *data)
 指定したIDのCW側の角度を超えた時の出力の割合を取得します。
 
unsigned short getCcwPositionLimit (byte id, short *data)
 指定したIDのCCW方向の動作角度リミット値を取得します。
 
unsigned short getCcwPositionLimitPower (byte id, unsigned short *data)
 指定したIDのCCW側の角度を超えた時の出力の割合を取得します。
 
unsigned short getMaxGoalSpeed (byte id, short *data)
 指定したIDの指令可能な最大速度値を取得します。
 
unsigned short getMaxGoalCurrent (byte id, short *data)
 指定したIDの指令可能な最大電流値を取得します。
 
unsigned short getMaxGoalTorque (byte id, short *data)
 指定したIDの指令可能な最大推定トルク値を取得します。
 
unsigned short getTotalPowerRate (byte id, unsigned short *data)
 指定したIDのモータに出力する割合を取得します。
 
unsigned short getLockDetectTime (byte id, unsigned short *data)
 指定したIDのロック検知を認識するまでの時間を取得します。
 
unsigned short getLockThresholdPower (byte id, unsigned short *data)
 指定したIDのロック検知を開始する出力指示の閾値を取得します。
 
unsigned short getLockDetectOutputPower (byte id, unsigned short *data)
 指定したIDがロック検知が起きた時の出力の割合を取得します。
 
unsigned short getPositionPresetNum (byte id, byte *data)
 指定した ID の位置制御プリセットゲイン番号を取得します。
 
unsigned short getSpeedPresetNum (byte id, byte *data)
 指定した ID の速度制御プリセットゲイン番号を取得します。
 
unsigned short getCurrentPresetNum (byte id, byte *data)
 指定した ID の電流制御プリセットゲイン番号を取得します。
 
unsigned short getTorquePresetNum (byte id, byte *data)
 指定した ID のトルク制御プリセットゲイン番号を取得します。
 
unsigned short getAllPresetNum (byte id, byte *pos, byte *spd, byte *cur, byte *trq)
 指定した ID の位置制御、他すべてのPIDプリセットゲイン番号を取得します。
 
unsigned short getPositionKpGain2 (byte id, unsigned long *data)
 指定した ID の位置制御のPゲイン2を取得します。
 
unsigned short getPositionKiGain2 (byte id, unsigned long *data)
 指定した ID の位置制御のIゲイン2を取得します。
 
unsigned short getPositionKdGain2 (byte id, unsigned long *data)
 指定した ID の位置制御のDゲイン2を取得します。
 
unsigned short getPositionGain2 (byte id, unsigned long *kpdata, unsigned long *kidata, unsigned long *kddata)
 指定した ID の位置制御のPIDゲイン2を取得します。
 
unsigned short getPositionStretchGain2 (byte id, unsigned long *data)
 指定した ID の位置制御のストレッチゲイン2を取得します。
 
unsigned short getSpeedKpGain2 (byte id, unsigned long *data)
 指定した ID の速度制御のPゲイン2を取得します。
 
unsigned short getSpeedKiGain2 (byte id, unsigned long *data)
 指定した ID の速度制御のIゲイン2を取得します。
 
unsigned short getSpeedKdGain2 (byte id, unsigned long *data)
 指定した ID の速度制御のDゲイン2を取得します。
 
unsigned short getSpeedGain2 (byte id, unsigned long *kpdata, unsigned long *kidata, unsigned long *kddata)
 指定した ID の速度制御のPIDゲイン2を取得します。
 
unsigned short getCurrentKpGain2 (byte id, unsigned long *data)
 指定した ID の電流制御のPゲイン2を取得します。
 
unsigned short getCurrentKiGain2 (byte id, unsigned long *data)
 指定した ID の電流制御のIゲイン2を取得します。
 
unsigned short getCurrentKdGain2 (byte id, unsigned long *data)
 指定した ID の電流制御のDゲイン2を取得します。
 
unsigned short getCurrentGain2 (byte id, unsigned long *kpdata, unsigned long *kidata, unsigned long *kddata)
 指定した ID の電流制御のPIDゲイン2を取得します。
 
unsigned short getTorqueKpGain2 (byte id, unsigned long *data)
 指定した ID のトルク制御のPゲイン2を取得します。
 
unsigned short getTorqueKiGain2 (byte id, unsigned long *data)
 指定した ID のトルク制御のIゲイン2を取得します。
 
unsigned short getTorqueKdGain2 (byte id, unsigned long *data)
 指定した ID のトルク制御のDゲイン2を取得します。
 
unsigned short getTorqueGain2 (byte id, unsigned long *kpdata, unsigned long *kidata, unsigned long *kddata)
 指定した ID のトルク制御のDゲイン2を取得します。
 
unsigned short getPositionKpGain3 (byte id, unsigned long *data)
 指定した ID の位置制御のPゲイン3を取得します。
 
unsigned short getPositionKiGain3 (byte id, unsigned long *data)
 指定した ID の位置制御のIゲイン3を取得します。
 
unsigned short getPositionKdGain3 (byte id, unsigned long *data)
 指定した ID の位置制御のDゲイン3を取得します。
 
unsigned short getPositionGain3 (byte id, unsigned long *kpdata, unsigned long *kidata, unsigned long *kddata)
 指定した ID の位置制御のPIDゲイン3を取得します。
 
unsigned short getPositionStretchGain3 (byte id, unsigned long *data)
 指定した ID の位置制御のストレッチゲイン3を取得します。
 
unsigned short getSpeedKpGain3 (byte id, unsigned long *data)
 指定した ID の速度制御のPゲインを取得します。
 
unsigned short getSpeedKiGain3 (byte id, unsigned long *data)
 指定した ID の速度制御のIゲインを取得します。
 
unsigned short getSpeedKdGain3 (byte id, unsigned long *data)
 指定した ID の速度制御のDゲインを取得します。
 
unsigned short getSpeedGain3 (byte id, unsigned long *kpdata, unsigned long *kidata, unsigned long *kddata)
 指定した ID の速度制御のPIDゲインを取得します。
 
unsigned short getCurrentKpGain3 (byte id, unsigned long *data)
 指定した ID の電流制御のPゲイン3を取得します。
 
unsigned short getCurrentKiGain3 (byte id, unsigned long *data)
 指定した ID の電流制御のIゲイン3を取得します。
 
unsigned short getCurrentKdGain3 (byte id, unsigned long *data)
 指定した ID の電流制御のDゲイン3を取得します。
 
unsigned short getCurrentGain3 (byte id, unsigned long *kpdata, unsigned long *kidata, unsigned long *kddata)
 指定した ID の電流制御のPIDゲイン3を取得します。
 
unsigned short getTorqueKpGain3 (byte id, unsigned long *data)
 指定した ID のトルク制御のPゲイン3を取得します。
 
unsigned short getTorqueKiGain3 (byte id, unsigned long *data)
 指定した ID のトルク制御のIゲイン3を取得します。
 
unsigned short getTorqueKdGain3 (byte id, unsigned long *data)
 指定した ID のトルク制御のDゲイン3を取得します。
 
unsigned short getTorqueGain3 (byte id, unsigned long *kpdata, unsigned long *kidata, unsigned long *kddata)
 指定した ID のトルク制御のDゲイン3を取得します。
 
unsigned short getPosition (byte id, short *posData)
 指定したIDの現在指示位置を取得します。
 
unsigned short getPosition (byte id, unsigned short *posData)
 指定したIDの現在指示位置を取得します。
 
unsigned short getPosition (byte id, long *posData, byte controlMode=0x01)
 指定したIDの現在の位置を取得します。
 
unsigned short getSpeed (byte id, short *spdData)
  指定した ID の現在の速度を取得します。
 
unsigned short getCurrent (byte id, short *curData)
 指定した ID の現在の電流を取得します。
 
unsigned short getTorque (byte id, short *trqData)
 指定した ID の現在のトルクを取得します。
 
unsigned short getPwm (byte id, short *pwmData)
 指定したIDの現在のPWMを取得します。
 
unsigned short getMotorTemp (byte id, short *motTempData)
 指定したIDの現在のモータ温度を取得します。
 
unsigned short getCPUTemp (byte id, short *cpuTempData)
 指定された ID の現在のCPU温度を取得します。
 
unsigned short getInputVoltage (byte id, unsigned short *volData)
 指定された ID の現在の電圧を取得します。
 
unsigned short getTrajectoryTime (byte id, unsigned short *traTimeData)
 指定された ID の現在の補間時間を取得します。
 
unsigned short getEncoder (byte id, unsigned short *encData)
 指定された ID のエンコーダを取得します。
 
unsigned short getStatus (byte id, byte *stData)
 指定したIDのステータスを取得します。
 
unsigned short getSystemStatus (byte id, byte *sysStaData)
 指定された ID のシステムステータスを取得します。
 
unsigned short getMotorStatus (byte id, byte *motStaData)
 指定したIDのモータステータスを取得します。
 
unsigned short getRamAccessStatus (byte id, unsigned short *ramStaData)
 指定された ID のRAMアクセスステータスを取得します。
 
unsigned short getFullStatus (byte id, byte *sysSt, byte *motorSt, unsigned short *ramSt)
 指定した ID の全てのステータス情報を取得します。
 
unsigned short resetFullStatus (byte id)
 指定された ID の全てのステータス情報をリセットします。
 
unsigned short getTorqueSwitch (byte id, byte *trqSwitchData)
 指定した ID のトルク ON 値を取得します。
 
unsigned short getControlMode (byte id, byte *controlMode)
 指定した ID の制御モードを取得します。
 
unsigned short getMotorReceive (byte id, byte *receiveMode)
 指定した ID の応答データ指定値を取得します。
 
unsigned short getTrajectory (byte id, byte *traData)
 指定した ID の補間制御軌道生成タイプ指定を取得します。
 
unsigned short getLedMode (byte id, byte *ledData)
 指定した ID のLED点灯モードを取得します。
 
unsigned short getCenterOffsetRange (byte id, short *minData, short *maxData)
 指定したIDの中央値オフセット(CenterOffset)の設定可能な最小/最大の範囲を取得します。
 
unsigned short getMinVoltageLimitRange (byte id, unsigned short *minData, unsigned short *maxData)
 指定したIDの入力最小電圧リミット値(MinVoltageLimit)の設定可能な最小/最大の範囲を取得します。
 
unsigned short getMaxVoltageLimitRange (byte id, unsigned short *minData, unsigned short *maxData)
 指定した ID の最大電圧(MaxVoltage)の設定可能な範囲を取得します。
 
unsigned short getCurrentLimitRange (byte id, unsigned short *minData, unsigned short *maxData)
 指定した ID の電流(Current)の設定可能な範囲を取得します。
 
unsigned short getMotorTempLimitRange (byte id, short *minData, short *maxData)
 指定した ID のモータ温度(MotorTemp)の範囲を取得します。
 
unsigned short getCpuTempLimitRange (byte id, short *minData, short *maxData)
 指定した ID のCPU温度の範囲(CpuTemp)を取得します。
 
unsigned short getMaxGoalSpeedRange (byte id, short *minData, short *maxData)
 指定した ID の最大速度指令値(MaxGoalSpeed)の設定可能な範囲を取得します。
 
unsigned short getMaxGoalCurrentRange (byte id, short *minData, short *maxData)
 指定した ID の最大電流指令値(MaxGoalCurrent)の設定可能な範囲を取得します。
 
unsigned short getMaxGoalTorqueRange (byte id, short *minData, short *maxData)
 指定した ID の最大トルク指令値(MaxGoalTorque)の設定可能な範囲を取得します。
 
unsigned short getCwPositionLimitRange (byte id, short *minData, short *maxData)
 指定したIDの指定したCW方向の動作角度リミット値(CwPosition)の設定可能な範囲を取得します。
 
unsigned short getCcwPositionLimitRange (byte id, short *minData, short *maxData)
 指定したIDの指定したCCW方向の動作角度リミット値(CcwPosition)の設定可能な範囲を取得します。
 
unsigned short setPositionKpGain (byte id, unsigned long data, byte writeOpt=0)
 指定した ID の位置制御のPゲインを変更します。
 
unsigned short setPositionKiGain (byte id, unsigned long data, byte writeOpt=0)
 指定した ID の位置制御のIゲインを変更します。
 
unsigned short setPositionKdGain (byte id, unsigned long data, byte writeOpt=0)
 指定した ID の位置制御のDゲインを変更します。
 
unsigned short setPositionGain (byte id, unsigned long kpdata, unsigned long kidata, unsigned long kddata, byte writeOpt=0)
 指定した ID の位置制御のPIDゲインを変更します。
 
unsigned short setPositionStretchGain (byte id, unsigned long data, byte writeOpt=0)
 指定した ID の位置制御のストレッチゲインを変更します。
 
unsigned short setSpeedKpGain (byte id, unsigned long data, byte writeOpt=0)
 指定した ID の速度制御のPゲインを変更します。
 
unsigned short setSpeedKiGain (byte id, unsigned long data, byte writeOpt=0)
 指定した ID の速度制御のIゲインを変更します。
 
unsigned short setSpeedKdGain (byte id, unsigned long data, byte writeOpt=0)
 指定した ID の速度制御のDゲインを変更します。
 
unsigned short setSpeedGain (byte id, unsigned long kpdata, unsigned long kidata, unsigned long kddata, byte writeOpt=0)
 指定した ID の速度制御のPIDゲインを変更します。
 
unsigned short setCurrentKpGain (byte id, unsigned long data, byte writeOpt=0)
 指定した ID の電流制御のPゲインを変更します。
 
unsigned short setCurrentKiGain (byte id, unsigned long data, byte writeOpt=0)
 指定した ID の電流制御のIゲインを変更します。
 
unsigned short setCurrentKdGain (byte id, unsigned long data, byte writeOpt=0)
 指定した ID の電流制御のDゲインを変更します。
 
unsigned short setCurrentGain (byte id, unsigned long kpdata, unsigned long kidata, unsigned long kddata, byte writeOpt=0)
 指定した ID の電流制御のPIDゲインを変更します。
 
unsigned short setTorqueKpGain (byte id, unsigned long data, byte writeOpt=0)
 指定した ID のトルク制御のPゲインを変更します。
 
unsigned short setTorqueKiGain (byte id, unsigned long data, byte writeOpt=0)
 指定した ID のトルク制御のIゲインを変更します。
 
unsigned short setTorqueKdGain (byte id, unsigned long data, byte writeOpt=0)
 指定した ID のトルク制御のDゲインを変更します。
 
unsigned short setTorqueGain (byte id, unsigned long kpdata, unsigned long kidata, unsigned long kddata, byte writeOpt=0)
 指定した ID のトルク制御のPIDゲインを変更します。
 
unsigned short setCenterOffset (byte id, short offsetData)
 指定した ID の中央値オフセット値を設定します。
 
unsigned short setCloneReverse (byte id, byte data)
 指定した ID のクローン/リバースを設定します。
 
unsigned short setMinVoltageLimit (byte id, unsigned short minVol, unsigned short limPower, byte writeOpt=0)
 指定した ID の下限電圧を下回った時の挙動を設定します。
 
unsigned short setMaxVoltageLimit (byte id, unsigned short maxVol, unsigned short limPower, byte writeOpt=0)
 指定した ID の上限電圧を上回った時の挙動を設定します。
 
unsigned short setCurrentLimit (byte id, short maxCur, unsigned short limPower, byte writeOpt=0)
 指定した ID のモータ消費電流最大値を上回った時の挙動を設定します。
 
unsigned short setMotorTempLimit (byte id, short motorTemp, unsigned short limPower, byte writeOpt=0)
 指定した ID のモータ温度最大値を上回った時の挙動を設定します。
 
unsigned short setCpuTempLimit (byte id, short cpuTemp, unsigned short limPower, byte writeOpt=0)
 指定した ID のCPU温度最大値を上回った時の挙動を設定します。
 
unsigned short setPositionLimit (byte id, short cwPos, short ccwPos, unsigned short limPower, byte writeOpt=0)
 指定した ID の最大角を上回った時の挙動を設定します。
 
unsigned short setMaxGoalSpeed (byte id, short maxGoalSpd, byte writeOpt=0)
 指定した ID の最大速度指令値を設定します。
 
unsigned short setMaxGoalCurrent (byte id, short maxGoalCur, byte writeOpt=0)
 指定した ID の最大電流指令値を設定します。
 
unsigned short setMaxGoalTorque (byte id, short maxGoalTrq, byte writeOpt=0)
 指定した ID の最大動推定トルク指令値を設定します。
 
unsigned short setTotalPowerRate (byte id, unsigned short rate, byte writeOpt=0)
 指定した ID のモータ出力制限%値を設定します。
 
unsigned short setLockDetect (byte id, unsigned short time, unsigned short power, unsigned short outputPower, byte writeOpt=0)
 指定した ID のロック時間、ロックと認識される出力割合、およびロック時間の出力%値を設定します。
 
unsigned short setPositionPresetNum (byte id, byte presetNum, byte writeOpt=0)
 指定された ID の位置制御プリセットゲイン番号を設定します。
 
unsigned short setSpeedPresetNum (byte id, byte presetNum, byte writeOpt=0)
 指定された ID の速度制御プリセットゲイン番号を設定します。
 
unsigned short setCurrentPresetNum (byte id, byte presetNum, byte writeOpt=0)
 指定された ID の電流制御プリセットゲイン番号を設定します。
 
unsigned short setTorquePresetNum (byte id, byte presetNum, byte writeOpt=0)
 指定された ID のトルク制御プリセットゲイン番号を設定します。
 
unsigned short setAllPresetNum (byte id, byte presetNum, byte writeOpt=0)
 指定した ID の位置制御、他すべてのPIDプリセット番号を変更します。
 
unsigned short setPositionKpGain2 (byte id, unsigned long data, byte writeOpt=0)
 指定した ID の位置制御のPゲイン2を変更します。
 
unsigned short setPositionKiGain2 (byte id, unsigned long data, byte writeOpt=0)
 指定した ID の位置制御のIゲイン2を変更します。
 
unsigned short setPositionKdGain2 (byte id, unsigned long data, byte writeOpt=0)
 指定した ID の位置制御のDゲイン2を変更します。
 
unsigned short setPositionGain2 (byte id, unsigned long kpdata, unsigned long kidata, unsigned long kddata, byte writeOpt=0)
 指定した ID の位置制御のPIDゲイン2を変更します。
 
unsigned short setPositionStretchGain2 (byte id, unsigned long data, byte writeOpt=0)
 指定した ID の位置制御のストレッチゲイン2を変更します。
 
unsigned short setSpeedKpGain2 (byte id, unsigned long data, byte writeOpt=0)
 指定した ID の速度制御のPゲイン2を変更します。
 
unsigned short setSpeedKiGain2 (byte id, unsigned long data, byte writeOpt=0)
 指定した ID の速度制御のIゲイン2を変更します。
 
unsigned short setSpeedKdGain2 (byte id, unsigned long data, byte writeOpt=0)
 指定した ID の速度制御のDゲイン2を変更します。
 
unsigned short setSpeedGain2 (byte id, unsigned long kpdata, unsigned long kidata, unsigned long kddata, byte writeOpt=0)
 指定した ID の速度制御のPIDゲイン2を変更します。
 
unsigned short setCurrentKpGain2 (byte id, unsigned long data, byte writeOpt=0)
 指定した ID の電流制御のPゲイン2を変更します。
 
unsigned short setCurrentKiGain2 (byte id, unsigned long data, byte writeOpt=0)
 指定した ID の電流制御のIゲイン2を変更します。
 
unsigned short setCurrentKdGain2 (byte id, unsigned long data, byte writeOpt=0)
 指定した ID の電流制御のDゲイン2を変更します。
 
unsigned short setCurrentGain2 (byte id, unsigned long kpdata, unsigned long kidata, unsigned long kddata, byte writeOpt=0)
 指定した ID の電流制御のPIDゲイン2を変更します。
 
unsigned short setTorqueKpGain2 (byte id, unsigned long data, byte writeOpt=0)
 指定した ID のトルク制御のPゲイン2を変更します。
 
unsigned short setTorqueKiGain2 (byte id, unsigned long data, byte writeOpt=0)
 指定した ID のトルク制御のIゲイン2を変更します。
 
unsigned short setTorqueKdGain2 (byte id, unsigned long data, byte writeOpt=0)
 指定した ID のトルク制御のDゲイン2を変更します。
 
unsigned short setTorqueGain2 (byte id, unsigned long kpdata, unsigned long kidata, unsigned long kddata, byte writeOpt=0)
 指定した ID のトルク制御のPIDゲイン2を変更します。
 
unsigned short setPositionKpGain3 (byte id, unsigned long data, byte writeOpt=0)
 指定した ID の位置制御のPゲイン3を変更します。
 
unsigned short setPositionKiGain3 (byte id, unsigned long data, byte writeOpt=0)
 指定した ID の位置制御のIゲイン3を変更します。
 
unsigned short setPositionKdGain3 (byte id, unsigned long data, byte writeOpt=0)
 指定した ID の位置制御のDゲイン3を変更します。
 
unsigned short setPositionGain3 (byte id, unsigned long kpdata, unsigned long kidata, unsigned long kddata, byte writeOpt=0)
 指定した ID の位置制御のPIDゲイン3を変更します。
 
unsigned short setPositionStretchGain3 (byte id, unsigned long data, byte writeOpt=0)
 指定した ID の位置制御のストレッチゲイン3を変更します。
 
unsigned short setSpeedKpGain3 (byte id, unsigned long data, byte writeOpt=0)
 指定した ID の速度制御のPゲイン3を変更します。
 
unsigned short setSpeedKiGain3 (byte id, unsigned long data, byte writeOpt=0)
 指定した ID の速度制御のIゲイン3を変更します。
 
unsigned short setSpeedKdGain3 (byte id, unsigned long data, byte writeOpt=0)
 指定した ID の速度制御のDゲイン3を変更します。
 
unsigned short setSpeedGain3 (byte id, unsigned long kpdata, unsigned long kidata, unsigned long kddata, byte writeOpt=0)
 指定した ID の速度制御のPIDゲイン3を変更します。
 
unsigned short setCurrentKpGain3 (byte id, unsigned long data, byte writeOpt=0)
 指定した ID の電流制御のPゲイン3を変更します。
 
unsigned short setCurrentKiGain3 (byte id, unsigned long data, byte writeOpt=0)
 指定した ID の電流制御のIゲイン3を変更します。
 
unsigned short setCurrentKdGain3 (byte id, unsigned long data, byte writeOpt=0)
 指定した ID の電流制御のDゲイン3を変更します。
 
unsigned short setCurrentGain3 (byte id, unsigned long kpdata, unsigned long kidata, unsigned long kddata, byte writeOpt=0)
 指定した ID の電流制御のPIDゲイン3を変更します。
 
unsigned short setTorqueKpGain3 (byte id, unsigned long data, byte writeOpt=0)
 指定した ID のトルク制御のPゲイン3を変更します。
 
unsigned short setTorqueKiGain3 (byte id, unsigned long data, byte writeOpt=0)
 指定した ID のトルク制御のIゲイン3を変更します。
 
unsigned short setTorqueKdGain3 (byte id, unsigned long data, byte writeOpt=0)
 指定した ID のトルク制御のDゲイン3を変更します。
 
unsigned short setTorqueGain3 (byte id, unsigned long kpdata, unsigned long kidata, unsigned long kddata, byte writeOpt=0)
 指定した ID のトルク制御のPIDゲイン3を変更します。
 
unsigned short setTorqueSwitch (byte id, byte data, byte writeOpt=1)
 指定された ID のトルクスイッチを設定します。(TorqueON / Free / Brake / Hold)
 
unsigned short setControlMode (byte id, byte controlMode, byte writeOpt=0)
 指定された ID の位置制御などの制御モードを設定します。
 
unsigned short setMotorReceive (byte id, byte receiveMode, byte writeOpt=0)
 指定したIDのmotorREADやmotorWRITEから返信される応答モードを設定します。
 
unsigned short setTrajectory (byte id, byte trajecrotyData, byte writeOpt=0)
 指定した ID の補間制御軌道生成タイプ指定を設定します。
 
unsigned short setLedMode (byte id, byte ledModeData, byte writeOpt=0)
 指定した ID のLED点灯モードを設定します。
 
unsigned short setMotorTorqueOn (byte id)
 指定した ID のモータをトルクオンにし、ステータス、モータのON/OFF、受信データを取得します。
 
unsigned short setMotorTorqueOn (byte id, byte receiveMode, long receiveData[8], byte controlMode=0x01)
 指定した ID のモータをトルクオンにし、ステータス、モータのON/OFF、受信データを取得します。
 
unsigned short setMotorFree (byte id)
 指定した ID のモータをフリーにし、ステータス、モータのON/OFF、受信データを取得します。
 
unsigned short setMotorFree (byte id, byte receiveMode, long receiveData[8], byte controlMode=0x01)
 指定した ID のモータをフリーにし、ステータス、モータのON/OFF、受信データを取得します。
 
unsigned short setMotorBrake (byte id)
 指定した ID のモータをブレーキにし、ステータス、モータのON/OFF、受信データを取得します。
 
unsigned short setMotorBrake (byte id, byte receiveMode, long receiveData[8], byte controlMode=0x01)
 指定した ID のモータをブレーキにし、ステータス、モータのON/OFF、受信データを取得します。
 
unsigned short setMotorHold (byte id)
 指定した ID のモータをホールドにし、ステータス、モータのON/OFF、受信データを取得します。
 
unsigned short setMotorHold (byte id, byte receiveMode, long receiveData[8], byte controlMode=0x01)
 指定した ID のモータをホールドにし、ステータス、モータのON/OFF、受信データを取得します。
 
unsigned short setPosition (byte id, short pos)
 指定した ID のモータの位置パラメーターを設定し、データをモーター コントローラーに送信します。
 
unsigned short setPosition (byte id, short pos, byte receiveMode, long receiveData[8])
 指定した ID のモータの位置パラメーターを設定し、データをモーター コントローラーに送信します。
 

限定公開メンバ関数

void enHigh ()
 enPinに割り当てられているピンをHにする
 
void enLow ()
 enPinに割り当てられているピンをLにする
 
virtual void logOutputPrint (byte outputBytes[], int outputSize)
 Pmxで送信したデータ配列を表示する関数
 
virtual HardwareSerial * getLogSerial ()
 
- 基底クラス PmxBase に属する継承限定公開メンバ関数
bool defaultMakeCmd (byte id, byte cmd, byte txData[], byte *txDataSize, byte header=0xfe)
 
unsigned short checkRecv (byte rxBuff[], byte cmd, byte header=0xfe)
 checkRecv関数は、受信パケットのヘッダー、パケット長、およびコマンドをチェックします。
 

限定公開変数類

HardwareSerial * pmxSerial
 
int g_timeout = PMX::ErrorUint16Data
 
long g_baudrate = PMX::ErrorUint32Data
 
unsigned short g_SerialConfig = 0xFF
 
byte g_enPin = 0xFF
 
byte sendBuff [256]
 送信バッファ
 
byte receiveBuff [256]
 受信バッファ
 

その他の継承メンバ

- 基底クラス PmxBase に属する継承静的限定公開メンバ関数
static unsigned int __byteCounter (byte val)
 制御モード、応答モードを基に必要とするデータが合計何byteになるのか計算をします。
 
static bool __convReceiveMotorData (byte receiveMode, byte returnDataBytes[], byte receiveBytesSize, long reData[], byte controlMode=0x01)
 受信モードに基づいてMotorWRITE/Readで送られて来たデータを変換します。
 

詳解

PMXで使用する関数や定義をひとまとまりにしたもので、ArduinoのHardwareSerialを使用して動作します。

・PMXの固有値の定義 ・PMXのコマンドの生成、チェックおよび送受信(送信部分は外部依存) ・PMXで必要だと思われる機能の関数化 ・通信部分はArduinoのHardwareSerialを使用しています

構築子と解体子

◆ PmxHardSerial() [1/2]

PmxHardSerial::PmxHardSerial ( HardwareSerial * hardSerial,
byte enPin,
long baudrate = 115200,
int timeout = 100 )

Construct a new Pmx Hard Serial:: Pmx Hard Serial object

引数
[in]hardSerialArduinoのHardwareSerialのポインタ
[in]enPin送受信を切り替えるピン
[in]baudrate通信速度
[in]timeout受信タイムアウト

◆ PmxHardSerial() [2/2]

PmxHardSerial::PmxHardSerial ( HardwareSerial * hardSerial,
byte enPin,
long baudrate,
unsigned short serialConfig,
int timeout )

Construct a new Pmx Hard Serial:: Pmx Hard Serial object

引数
[in]hardSerialArduinoのHardwareSerialのポインタ
[in]enPin送受信を切り替えるピン
[in]baudrate通信速度
[in]serialConfigArduinoのHardwareSerialの通信設定
[in]timeout受信タイムアウト
警告
serialConfigは、PMXの設定ではなく、Arduinoの通信設定(SERIAL_8N1等)を記述する事

関数詳解

◆ begin()

bool PmxHardSerial::begin ( long baudrate = PMX::ErrorUint32Data,
int timeout = PMX::ErrorUint16Data )

HardwareSerialポートの設定をする

引数
baudrate通信速度
timeout受信タイムアウト
戻り値
true begin成功
false begin失敗

◆ getLogSerial()

virtual HardwareSerial * PmxHardSerial::getLogSerial ( )
inlineprotectedvirtual

PmxBaseを再実装しています。

◆ isSynchronize()

bool PmxHardSerial::isSynchronize ( )

Synchronize関数が送受信してるか確認する

戻り値
true 送受信中
false 送受信待機中

◆ logOutputPrint()

void PmxHardSerial::logOutputPrint ( byte outputBytes[],
int outputLength )
protectedvirtual

Pmxで送信したデータ配列を表示する関数

引数
[in]outputBytes表示する送信データ
[in]outputLength表示する送信データ数

PmxBaseを再実装しています。

◆ setLogSerial()

virtual void PmxHardSerial::setLogSerial ( HardwareSerial * logSerial)
inlinevirtual

Logを出力するシリアルポートの設定をします。

引数
[in]logSerial

PmxBaseを再実装しています。

◆ synchronize()

bool PmxHardSerial::synchronize ( byte * txBuf,
byte txLen,
byte * rxBuf,
byte rxLen )
virtual

HardwareSerialを使用して送受信します

引数
[in]txBuf送信データ
[in]txLen送信データ数
[out]rxBuf受信データ
[out]rxLen受信データ数
戻り値
true 送受信成功
false 送受信失敗

◆ synchronizeNoRead()

bool PmxHardSerial::synchronizeNoRead ( byte * txBuf,
byte txLen )
virtual

ブロードキャストIDなどでデータの返事がないとわかっている時に送信をします。

引数
[in]txBuf送信データ
[in]txLen送信データ数
戻り値
true 送信成功
false 送信失敗

◆ synchronizeVariableRead()

bool PmxHardSerial::synchronizeVariableRead ( byte * txBuf,
byte txLen,
byte * rxBuf,
byte * rxLen )
virtual

HardwareSerialを使用してtxBufのコマンドを送受信します。 返信データ数がわからない場合に使用します。

引数
[in]txBuf送信データ
[in]txLen送信データ数
[out]rxBuf受信データ
[out]rxLen受信データ数
戻り値
true 送受信成功
false 送受信失敗
覚え書き
データを読む際、6byte目にLengthがあるので、まずは6byte取得する
Lengthを取得できたらそのデータをもとに全てのデータを取得する
データが来ない場合もあるのでTimeoutでエラー処理も行う

PmxBaseを再実装しています。

メンバ詳解

◆ sendBuff

byte PmxHardSerial::sendBuff[256]
protected

送信バッファ

byte g_rxPin = 0xFF; // RXピンの定義(M5などで必要な場合) byte g_txPin = 0xFF; // TXピンの定義(M5などで必要な場合)


このクラス詳解は次のファイルから抽出されました: