ClosedLoop

こちらのページを参考にしていただいて、配線後に以下のコマンドを投入します。

  • モード設定

    モードの切替はmコマンドで行います。

    これで、ClosedLoopのモードになりました。LEDが点滅していることを確認してください(この段階では処理が軽いので高速に点滅している)。
    コンパイル時の設定にもよります(現在のサンプルファームウェアはPID制御のみ)ClosedLoopの設定は m 1/2/3/4となり、それぞれP制御、PI制御、PD制御、PID制御にマッピングされます。繰り返しになりますが、現在のサンプルファームウェアはm 4のみで、PID制御のみとなります。繰り返しになりますが、現在のサンプルファームウェアのコードはm 0かそれ以外しか見ていないので、m 1としても、PID制御になります。

  • 速度設定

    左側のモータの速度設定をする例になります。

    で速度指定します。sの値は0-1023(2^10-1)になります。かけている電圧とモータやギアの特性にもよりますが、実際には500程度から設定しないとモータの駆動には至りません。
    OpenLoopの時とは違い、まだモータは廻りません。

  • 位置設定

    左側のモータの位置設定になります。

    エンコーダのカウント値を設定します。この例ですと、エンコーダのカウント値が2000になるまでモータを駆動します(実際にはパラメータやモータの特性により前後します)。

    時々、下記のコマンドを投入して、現在のエンコーダのカウントを観察してもいいでしょう。

  • PID パラメータ

    web-masterが本システムでの使用の経験上、モータの正逆回転時に挙動が異なるようでそれぞれにPIDのパラメータが必要です。本サンプルファームウェアはそれぞれのパラメータセットを持ちます。正回転時のパラメータセットをkp, 逆回転時のパラメータセットをknとします。

    コマンドプロンプト上から下記のコマンドを投入して、パラメータを確認します。

    コマンド単体での入力だと現在の設定値が返されます。
    コマンドの入力はP, I, Dそれぞれで行います。入力時はx1000して、小数点が無いようにします(例: kp の p を 1.8と設定する場合)。

    I, D についてもknに関しても同様です。

  • パラメータの決め方

    web-masterが試した限りでは、コレと言った万能の方程式はありません。ただ、使う速度は決めてから行います。それもDCモータは高い電圧ほど、トルクが出るので、1000程度に設定してからそれぞれのモータやギアに合わせて設定を行ったほうが良いと思います。
    設定したパラメータはEEPROMに保持されますので、リセット/電源再投入してもそのまま使えます。