概要

KeiganMotor から、モーター測定情報やエラー情報などを、制御側に送信(出力)可能です。

KeiganMotor から送信される情報の種類(タイプ)

モーターから送信される情報には、以下のものがあります。それぞれ、txType という1バイトの数字で区別されます。特に、通知系の情報(モーター測定情報 MOTOR_MEASUREMENT または IMU測定情報 IMU_MEASUREMENT)については、interface レジスタを変更し、受信したい経路の優先を第一位にする必要があります(次項参照)。

名称 uint8_t txType 内容 interfaceレジスタの優先設定
READ 0x40 read系コマンドに対する返り値 不要(受信経路で返す)
ERROR 0xBE 成功・エラーコードの通知 不要(受信経路で返す)
MOTOR_MEASUREMENT 0xB4 モーター測定値(有線時の出力のみ) 必要
IMU_MEASUREMENT 0xB5 IMU測定値(有線時の出力のみ) 必要
MOTION_DATA 0xB7 モーションデータ(有線USBでの出力のみ) 不要(受信経路で返す)

 

interface 送信経路について

ローレベルAPIにおける interface レジスタ、または各言語ライブラリの interface 関数の設定によって、モーターから情報を通知する経路を変更することができます。interface レジスタの設定は、即時反映されますが、saveAllRegisters をしない限り本体フラッシュに保存されませんのでご注意下さい。
デフォルトでは、優先順位は以下となっています。ローレベルAPI > コマンド の、interface の項も参照下さい。

(優先度高い)BLE > USB > I2C(優先度低い)

エラーコードについて

KeiganMotor では、コマンドを正常に受信できたかどうか判別するために、コマンドのレスポンスとして、正常に受信成功または、エラー情報を送信します。エラー情報は、1バイトの数字 errorCode で区別されます。
ただし、以下のエラーコードについては、レスポンスではなくモーターが能動的に優先経路に送信します。

  • KM_ERROR_NRF_DEVICE
  • KM_ERROR_WDT_EVENT
  • KM_ERROR_OVER_HEAT

エラーコード一覧

成功 or エラー名称 uint32_t errorCode 内容 対応ファームウェア ver.
KM_SUCCESS 0 成功:コマンドを正常に受信処理完了 1.50
KM_ERROR_DATA_NOT_FOUND 3 エラー:存在しないデータ(モーションやタスクセット)※1 1.50
KM_ERROR_INVALID_COMMAND 5 エラー:存在しないコマンド 1.50
KM_ERROR_INVALID_PARAM 6 エラー:不正な引数 1.50
KM_ERROR_STORAGE_FULL 7 エラー:記憶領域が一杯である(モーションやタスクセット) ※2 1.50
KM_ERROR_INVALID_FLASH_STATE 8 エラー:フラッシュの状態が不正 ※3 1.50
KM_ERROR_INVALID_LENGTH 9 エラー:引数の長さが不正 1.50
KM_ERROR_INVALID_CHECKSUM 10 エラー:チェックサムが不正(CRC16誤り訂正符号が不正) ※4 1.50
KM_ERROR_FORBIDDEN 15 エラー:不許可な動作である ※5 1.50
KM_ERROR_INVALID_ADDR 16 エラー:アドレス参照が不正(モーションやタスクセット) ※6 1.50
KM_ERROR_MOTOR_DISABLED 20 エラー:モーターが動作不許可(disable 状態につき enable 必要) 1.50
KM_ERROR_UCON_DEVICE 70 エラー:搭載マイコンの不明エラー 1.50
KM_ERROR_WDT_EVENT 80 エラー:ウォッチドッグタイマーイベントの発動(リセット直前) 1.50
KM_ERROR_OVER_HEAT 81 エラー:基板部温度以上(マイコン温度が2分以上60度を超過) 1.50
KM_SUCCESS_ARRIVAL 100 成功:位置制御時、目標位置に到達 2.23

※1. フラッシュに書き込まれた情報「モーション」、「タスクセット」のいずれかを再生またはチェックしようとしたときに、指定のインデックス(バンク)にデータが見つからなかった場合のエラー(再生しようとしたがデータが見つからない場合)

※2. ティーチングをある index に行おうとしたときに、すでにデータが存在する場合のエラー。
エラーを回避するために、事前に eraseMotion / eraseAllMotion を実行する必要があります。

※3. フラッシュへのアクセスが必要な命令を実行しているときに別のフラッシュアクセス命令を送った場合のエラー。以下の機能はフラッシュを使用するため、排他的となっています。本エラー発生時は、IDLE状態に戻さない限り次の機能実行はできません。逆に、これらに関係ないコマンドは実行可能ですが、ティーチング中のモーター制御などは、
意図しない結果を生じます。(runForwardなどモーター制御)

  • ティーチング・プレイバック
  • タスクセット
  • IMU(ジャイロ加速度センサー)

※4. チェックサム機能が有効になっている場合に、チェックサム計算が合わないときに発行されるエラー。
CRC16の計算が合わない場合のエラーであり、CRC が Disable のときは、本エラーは起こりえません。

※5. interfaceコマンドで、全ての通信経路を無効化しようとした場合、本エラーとなります。

※6. ティーチング・プレイバック および、タスクセットで、範囲外のインデックスにアクセスしようとしたときに発行されるエラー。

データ構造(データフレーム)について

データ構造は、通信経路によって異なります。以下よりダウンロード下さい。

BLE 経由で送信されるデータ構造

PDFをダウンロード

USB(UART)経由で送信されるデータ構造

PDFをダウンロード

I2C 経由で送信されるデータ構造

PDFをダウンロード