22 พฤษภาคม 2555

22 พฤษภาคม 2555 (เพิ่ม Gripperในรถ Bluetooth)

โดยติดไว้ที่ส่วนด้านหน้าของรถสามารถยกขวดน้ำสิ่งของขนาดเล็กทั่วไปได้
โดยต่อบอร์ดIC293 เพิ่มอีกหนึ่งบอร์ด
โดยต่อกับarduinoดังนี้

enable1 : 36   enable2 : 40
motor3 : 38 39
motor4 : 42 43
และแก้โค๊ดโดยเพิ่มตัวแปร และฟังก์ชันดังนี้


//BluetoothCar Project
//author krit
//Date 11/4/2012


int pwm1=9;       int pwm2=8;
int m1D1=22;      int m1D2=23;
int m2D1=32;      int m2D2=33;
int enable1=36;   int enable2=40;
int m3D1=38;      int m3D2=39;
int m4D1=42;      int m4D2=43;
int in;
int total=0;
char state=0;

void countSec();
void go(int speedM);
void back(int speedM);
void tLeft(int speedM);
void tRight(int speedM);
void stopM();
void clip();
void un_clip();
void up();
void down();

void setup()
{
  pinMode(m1D1,OUTPUT);
  pinMode(m1D2,OUTPUT);
  pinMode(m2D1,OUTPUT);
  pinMode(m2D2,OUTPUT);
  pinMode(m3D1,OUTPUT);
  pinMode(m3D2,OUTPUT);
  pinMode(m4D1,OUTPUT);
  pinMode(m4D2,OUTPUT);
  pinMode(enable1,OUTPUT);
  pinMode(enable2,OUTPUT);
  Serial.begin(9600);
  Serial.print("Start\n");
}
void loop()
{
  total=0;
  state=0;
  if(Serial.available()>0){
    state=Serial.read();
    while(Serial.available()==0 && state!='S'&& state!='C'&& state!='N'&& state!='U'&& state!='D');
    if(Serial.available()>0 && state!='S'&& state!='C'&& state!='N'&& state!='U'&& state!='D'){
      total=(Serial.read());
      //total=(total-66)*10;
    }
  }
  if(state!=0){
    switch(state){
      case 'C':  clip();       break;
      case 'N':  un_clip();    break;
      case 'U':  up();         break;
      case 'D':  down();       break;
      case 'G':  go(total);    break;
      case 'B':  back(total);  break;
      case 'L':  tLeft(total); break;
      case 'R':  tRight(total);break;
      case 'S':  stopM();    break;
      default:  stopM();
    }
  }
}

void go(int speedM){
  Serial.print("Go!\t");
  Serial.print(speedM);
  Serial.print("\n");
  analogWrite(pwm1, speedM);
  digitalWrite(m1D1,HIGH);
  digitalWrite(m1D2,LOW);
  analogWrite(pwm2, speedM);
  digitalWrite(m2D1,HIGH);
  digitalWrite(m2D2,LOW);
}

void back(int speedM){
  Serial.print("Back!\t");
  Serial.print(speedM);
  Serial.print("\n");
  analogWrite(pwm1, speedM);
  digitalWrite(m1D2,HIGH);
  digitalWrite(m1D1,LOW);
  analogWrite(pwm2, speedM);
  digitalWrite(m2D2,HIGH);
  digitalWrite(m2D1,LOW);
}

void tLeft(int speedM){
  Serial.print("turnLeft!\t");
  Serial.print(speedM);
  Serial.print("\n");
  analogWrite(pwm1, speedM);
  digitalWrite(m1D2,HIGH);
  digitalWrite(m1D1,LOW);
  analogWrite(pwm2, speedM);
  digitalWrite(m2D2,LOW);
  digitalWrite(m2D1,HIGH);
}

void tRight(int speedM){
  Serial.print("turnRight!\t");
  Serial.print(speedM);
  Serial.print("\n");
  analogWrite(pwm1, speedM);
  digitalWrite(m1D2,LOW);
  digitalWrite(m1D1,HIGH);
  analogWrite(pwm2, speedM);
  digitalWrite(m2D2,HIGH);
  digitalWrite(m2D1,LOW);
}

void stopM(){
  Serial.print("Stop!\n");
  digitalWrite(pwm2, HIGH);
  digitalWrite(pwm1, HIGH);
  digitalWrite(m1D2,HIGH);
  digitalWrite(m1D1,HIGH);
  digitalWrite(m2D2,HIGH);
  digitalWrite(m2D1,HIGH);
  digitalWrite(enable1,HIGH);
  digitalWrite(m3D2,LOW);
  digitalWrite(m3D1,LOW);
  digitalWrite(enable2,HIGH);
  digitalWrite(m4D2,LOW);
  digitalWrite(m4D1,LOW);
}
void clip(){
  digitalWrite(enable2,HIGH);
  digitalWrite(m4D2,LOW);
  digitalWrite(m4D1,HIGH);

}
void un_clip(){
  digitalWrite(enable2,HIGH);
  digitalWrite(m4D2,HIGH);
  digitalWrite(m4D1,LOW);
}
void up(){
  digitalWrite(enable1,HIGH);
  digitalWrite(m3D2,LOW);
  digitalWrite(m3D1,HIGH);

}
void down(){
  digitalWrite(enable1,HIGH);
  digitalWrite(m3D2,HIGH);
  digitalWrite(m3D1,LOW);
}


ไม่มีความคิดเห็น:

แสดงความคิดเห็น