COCHE+BLUETOOTH

COCHE-ROBOT CON BLUETOOTH.

Agradezco la colaboración de los alumnos Aarón González y Carlos Vela (Guadamur-Toledo) en al realización de este proyecto.

En este proyecto construiremos un robot de dos ruedas con motores, con un puente de cambio de sentido de giro gobernado por un Arduino que será controlado mediante el móvil de bluetooth.

Material:

  1. Dos ruedas de coche con motores engranados.
  2. Chasis de contrachapado hecho en el taller.
  3. Un sensor bluetooth.
  4. Un arduino UNO R3




APP androide gratis del móvil: "Naylamp Car" descargable por PlaySotore. Esta aplicación usa flechas de movimientos asociadas a letras que se pueden ver por el monitor serie: a,r,d,i.

http://www.naylampmechatronics.com/blog/53_robot-movil-controlado-por-bluetooth.html


CÓDIGO:
int Pin_Motor_Der_A = 8;
int Pin_Motor_Der_B = 9;
int Pin_Motor_Izq_A = 10;
int Pin_Motor_Izq_B = 11;
int tiempo=0;
void setup() {
  // inicializar la comunicación serial a 9600
  Serial.begin(9600);
  // configuramos los pines como salida
  pinMode(Pin_Motor_Der_A, OUTPUT);
  pinMode(Pin_Motor_Der_B, OUTPUT);
  pinMode(Pin_Motor_Izq_A, OUTPUT);
  pinMode(Pin_Motor_Izq_B, OUTPUT);
}
void loop() {
  if (Serial.available()) {
     char dato= Serial.read();
     if(dato=='a')     {
        Mover_Adelante();
        tiempo=0;
     }
     else if(dato=='r')     { 
        Mover_Retroceso();
        tiempo=0;
     }
     else if(dato=='d')     { 
        Mover_Derecha();
        tiempo=0;
     }
     else if(dato=='i')     { 
        Mover_Izquierda();
        tiempo=0;
     }   
  }
 if(tiempo<200) {          // 100 cilcos de 1ms 
    tiempo=tiempo+1;
  }
  else  {                         //ya transcurrió 100ms 
     Mover_Stop();
  }
  delay(1);                   //pasusa de 1ms 
  }
void Mover_Adelante() {
  digitalWrite (Pin_Motor_Der_A, HIGH);
  digitalWrite (Pin_Motor_Der_B, LOW);
  digitalWrite (Pin_Motor_Izq_A, HIGH);
  digitalWrite (Pin_Motor_Izq_B, LOW);
}
void Mover_Retroceso() {
  digitalWrite (Pin_Motor_Der_A,LOW );
  digitalWrite (Pin_Motor_Der_B,HIGH );
  digitalWrite (Pin_Motor_Izq_A,LOW );
  digitalWrite (Pin_Motor_Izq_B,HIGH );
}
void Mover_Derecha() {
  digitalWrite (Pin_Motor_Der_A,LOW );
  digitalWrite (Pin_Motor_Der_B,HIGH );
  digitalWrite (Pin_Motor_Izq_A,HIGH);
  digitalWrite (Pin_Motor_Izq_B,LOW);
}
void Mover_Izquierda() {
  digitalWrite (Pin_Motor_Der_A,HIGH);
  digitalWrite (Pin_Motor_Der_B,LOW);
  digitalWrite (Pin_Motor_Izq_A,LOW );
  digitalWrite (Pin_Motor_Izq_B,HIGH );
}
void Mover_Stop() {
  digitalWrite (Pin_Motor_Der_A, LOW);
  digitalWrite (Pin_Motor_Der_B, LOW);
  digitalWrite (Pin_Motor_Izq_A, LOW);
  digitalWrite (Pin_Motor_Izq_B, LOW);
}