   public:
     /* サーボモータのピンを設定する関数 */
     /* 無くても良いが、あると統一感が生まれる */
-    void servoPin(int pin){
+    void servoPin(const int pin){
       servo.attach(pin);
     }
 }; //}}}

        return;
      }     
    }
  }

  void brake(){
    // Brake code here...
  }
  void stop(){
    // Stop code here...
  }
  void moveFoward(){
    // Move Foward code here...
  }
  void moveBackward(){
    // Move backward code here...
  }

  public:
    /* 前進するよう状態を変更 */
    void toMoveFoward(){
      changedMotorState = {true,false, false};
    }
    /* 後退するよう状態を変更 */
    void toMoveBackward(){
      changedMotorState = {false,false, false};
    }
    /* 停止するよう状態を変更 */
    void toMoveStop(){
      changedMotorState = {true,true, false};
    }
    /* モータの状態を更新 */
    void updateMotorState(){
      motor();
    }
};//}}}

/* 制御のクラス */
class Control: public ServoIO, public MotorIO{ //{{{
  int errorPinNum; /* エラーピンの番号を表す */
  void error(void){
    digitalWrite(errorPinNum,HIGH); 
  }

  /* moveFooBarの抽象化関数 */
  void angleMove(const int angle, const bool isFoward){
    rotateServo(angle);
    if(isFoward){toMoveFoward();}else{toMoveBackward();}
  }
  
  public:
    /* 左前に移動するよう状態を変更 */
    void toMoveLeftFoward(){angleMove(-30, true);}
    /* 右前に移動するよう状態を変更 */
    void toMoveRightFoward(){angleMove(30, true);}
    /* 左後に移動するよう状態を変更 */
    void toMoveLeftBackward(){angleMove(-30, false);}
    /* 右後に移動するよう状態を変更 */
    void toMoveRightBackward(){angleMove(30, false);}
    /* エラーLEDのピンを設定する関数 */
    void errorPin(const int pin){
      errorPinNum = pin;
      pinMode(pin,OUTPUT);
    }
};//}}}

  }

  protected:
    /* サーボを回転させる関数 */
    /* 値は0~180の間で */
    void rotateServo(const int difference){
