ご質問
モータ側からの情報(位置情報など)を約0.01[秒]の周期で取得したいと考えています。
任意のタイミングで情報を得る必要があるため,約0.05周期でしか値が更新されないという問題が発生しました。
このままではモータ側からの情報のリアルタイム性が保証されないため、"モータ側からの情報"を取得する周期(時間間隔)を変更する命令について、具体的な例などがあれば教えてください。
回答
以下及び添付ファイルを参照の上、設定と測定値の確認をお願いします。
※ 2022/4/22 サンプルコードを変更しました。
Windows用サンプルコード
https://keigan.zendesk.com/hc/article_attachments/5988078494233/keigan_motor_measurement_test.zip
pykeigan_motor ライブラリの、examples/windows_examples ディレクトリに 2つの python ファイルを置いて下さい。
※ KeiganMotor と通信するためには、現在の KeiganMotor 側のボーレートに対応する整数を指定する必要があります。
self.dev=usbcontroller.USBController(select_port(), baud=current_baud_rate())
詳細はコードを参照下さい。
1. KeiganMotorの設定変更(ボーレートとモーター観測周期)
keigan_motor_initial_setting.py (※コードでは2ms間隔にしておりますが、5ms以上推奨です)
2. モーター測定値の自動取得
keigan_motor_measurement_test.py
measurement_method = "callback"
デフォルトでは、KeiganMotor から、自動で測定値の情報を定期的に送信する設定になっています。
以下のようにすることで、read_motor_measurement() で任意のタイミングで取得することもできます。
measurement_method = "read"