ご質問

リンケージモードのように、直接連携ではなくデータを取り出して、任意のモーターで後から再生させたいです。
M5Stackを使って制御しているので、Arduino I2Cで実装できるのが理想です。

 

回答

ティーチングに関するデータ操作ですが、USB接続(uart)のみで以下のコマンドがあります。

●readMotion(at index: Uint16_t)
ダイレクトティーチングで記憶したモーションを外部出力する

●writeMotionPosition(float position)
外部からモーションの座標を1つ記録する

 

readMotionの返り値は、コマンドを受け取ってから全ての座標を順番に50ms間隔で返します。
この動作はKeiganMotor側から非同期で行われる為、通信仕様の制限により有線USB(uart)でのみ動作します。
I2Cは基本的にマスターに対する同期的な応答なので上記コマンドの提供はございません。


以下のファイルをご解凍いただき、フォルダ内のExcelシート[新 1-1. TX2]及び[TX2_UART送信データ ]を参照下さい。

https://keigan.zendesk.com/hc/article_attachments/4416554767897/211208_KeiganMotor_USB.zip

 

●サンプルコード(.NET C#  ライブラリ部分のみ。 Windows10 - USB用)