CCCPaste

RoboKun

//This is the version with speed control, 
//use pins 4,5,9,10 (pwm) (on teensy 2.0)

//motor drive pins
int m1FW=4;
int m1RV=5;
int m2FW=9;
int m2RV=10;

//kill all function halt
void halt();

//directional function prototypes
void fw();
void rv();
void left();
void right();


//run time==dtime
int dtime=1000; //used for turning
//sped control
unsigned int sped= 96;

void setup() {
 Serial.begin(9600);
 pinMode(m1FW, OUTPUT);
 pinMode(m1RV, OUTPUT);
 pinMode(m2FW, OUTPUT);
 pinMode(m2RV, OUTPUT);
}
// lets make a fire!
void loop() {

  char inByte = ' ';
      if(Serial.available()){ // only send data back if data has been sent
          char inByte = Serial.read(); // read the incoming data
          Serial.println(inByte); 
  switch (inByte) {
    //wasd ws=y ad=x
    case 'w':
      halt();
      fw(); 
      break;
      case 'a':
      halt();
      left();   
      break;    
      case 's':
      halt();
      rv();
      break;    
      case 'd':
      halt();
      right();  
      break;
      case 'b':
      halt();  
      break;
    default:
      halt();  
      break;
        }
    }
}

void left(){
  halt();
  analogWrite(m1FW, sped);
  analogWrite(m2RV, sped);   
  delay(dtime);               // wait for a second
  halt();
  }

void right(){
  halt();
  analogWrite(m1RV,sped);
  analogWrite(m2FW,sped);   
  delay(dtime);               // wait for a second
  halt();
  }

void rv(){
  analogWrite(m1RV,sped);
  analogWrite(m2RV,sped);   
  }

void fw(){
  analogWrite(m1FW,sped);
  analogWrite(m2FW,sped);   
  }

void halt(){
  //stop all that sht
   analogWrite(m1FW, 0); 
   analogWrite(m1RV, 0); 
   analogWrite(m2FW, 0); 
   analogWrite(m2RV, 0); 

  }