本講座のサンプルをVS-WRC003LVに移植する場合の注意点

2010年9月18日現在、VSTONEのサポートページで公開されているVS-WRC003LVのサンプルプログラム(「モータ制御サンプル」等、すべて)に含まれるMtr_run関数にはバグがあります。

この関数はBeauto Chaser用に書いたプログラムをVS-WRC003LVでも変わらず使えるようにするため(互換性のため)のものです。ブレーキ動作をあらわす0x80を入れた場合の動作が間違っていて、モーターが100%に近い速度で回りだします。本講座のプログラムのようにブレーキをよく使う場合には致命的ですので注意してください。

この関数を使用する場合はvs-wrc003lv.cの56行目から62行目を次のように修正してください。

修正前
  void Mtr_Run(BYTE mt1,BYTE mt2,BYTE mt3,BYTE mt4){
        if(mt1 == 0x80)
!               mt1 == 0;
        if(mt2 == 0x80)
!               mt2 == 0;
        if(mt3 == 0x80)
!               mt3 == 0;
        if(mt4 == 0x80)
!               mt4 == 0;
修正後
  void Mtr_Run(BYTE mt1,BYTE mt2,BYTE mt3,BYTE mt4){
        if(mt1 == 0x80)
!               mt1 = 0;
        if(mt2 == 0x80)
!               mt2 = 0;
        if(mt3 == 0x80)
!               mt3 = 0;
        if(mt4 == 0x80)
!               mt4 = 0;

なおVS-WRC003LVのモータードライバはフリーの動作ができないようになっており、Mtr_runやMtr_run_lvに0を指定してもフリーではなくブレーキになります。本講座のサンプルプログラムをVS-WRC003LVに応用する際、第5回、第6回のrun関数にある「0の場合0x80にする特別な場合わけ」は必要なくなります。

また、VS-WRC003LVはそのままではPCからシリアルポートとして認識させることができません。本講座で説明したような対話的デバッグや調整をするためには、VS-WRC003LV シリアルコンバータを使用して設定を変更する必要があります。

山口辰久

Valid HTML 4.01! Valid CSS!