  * @author "Yusuke Doi"
  * @param msg This param is msg object of the motor_driver topic.
  */
-void motorCb(const geometry_msgs::Twist& msg) {
-  if (msg.angular.z < 0) steer(RIGHT); // Minus mean CCW or right.
-  else if (msg.angular.z > 0) steer(LEFT); // Plus mean CW or left.
-  else steer(KEEP); // Zero mean keep steer.
+void steerCb(const geometry_msgs::Twist& msg) {
+  if (msg.angular.z < 0) gen_pluse(RIGHT); // Minus mean CCW or right.
+  else if (msg.angular.z > 0) gen_pluse(LEFT); // Plus mean CW or left.
+  else gen_pluse(KEEP); // Zero mean keep steer.
    /* move task */
 }
 

const int ccw_minus = 6;

/* Declare proto type functions. */
void steer(const char direction); // Write pulse to the stepping motor.
void motorCb(const geometry_msgs::Twist& msg); // Call back function of the motor_driver topic.

/* Declare global constants. */
const unsigned int PULSE_FREQUENCY = 1000l * 1000 / (PULSE_WIDTH_MICRO_SECOND * 2); // Get frequency of pulse.
/* Declare global variables. */
ros::NodeHandle nh; // The nodeHandle.
ros::Subscriber<geometry_msgs::Twist> sub("motor_driver", &motorCb); // Set subscribe the motor_driver topic.

void setup() {
  /* Set pins Mode. */

 * @author "Yusuke Doi"
 * @param direction Steer to direction.
 */
void gen_pluse(const char direction) {
  switch (direction) {
  case LEFT: // Task steer left.
      noTone(cw_plus); // Unset tone. If don't running tone, not happen.
