Coche a control remoto

Propuesta de trabajo:
  • Diseña y construye un coche controlado por control remoto desde una aplicación del móvil



Diseñar la app para el móvil:









Cada botón de la aplicación manda un número por Bluetooth.

Código para App Inventor:




Código para el Arduino:
    //ROBOT por control remoto mediante Bluetooth
      //Hay que crear una App para controlar el robot desde el movil

#include <Servo.h>            //Carga la librera Servo.h que contiene metodos para trabajar con servos

Servo servoI;                 //Crea un objeto servoI (servo Izquierdo) para controlar el servomotor izquierdo
Servo servoD;                 //Crea el objeto servoD (servo Derecho) para controlar el servo derecho
int estado=0;                  //Crea la variable estado, que servira para leer la señal del puerto serie


void setup()
{
  Serial.begin(38400);      //Conectar el puerto serie. El modulo Bluetooth de BQ funciona a 38400 baudios

  servoI.attach(6);        //asocia al servo Izquierdo el PIN 6
  servoD.attach(9);        //asocia al servo Derecho el PIN 9
    
}

void loop()
{
                            //Motor Izquierdo avanza en sentido Horario (0)
                            //Motor Derecho avanza en sentido AntiHorario (180)
                            //Motor parado (90)
    
    if(Serial.available()>0){
      estado = Serial.read();        //Iguala la variable estado a la lectura que llega por el puerto serie
    }
    
    if(estado =='1'){              //Si la variable estado (lo que se recibe por el puerto serie) es un 1
      servoI.write(0);              //Motor Izquierdo avanza en sentido Horario (0)
      servoD.write(180);            //Motor Derecho avanza en sentido AntiHorario (180)
      delay(15);                    //Retardo de 15 milisegundos para dar tiempo a los servos a posicionarse
    }
    
    if(estado =='2'){              //Si la variable estado (lo que se recibe por el puerto serie) es un 2
      servoI.write(90);             //Motor Izquierdo para (90)
      servoD.write(180);            //Motor Derecho avanza en sentido AntiHorario (180)
      delay(15);                    //Retardo de 15 milisegundos para dar tiempo a los servos a posicionarse
    }
    
    if(estado =='3'){              //Si la variable estado (lo que se recibe por el puerto serie) es un 3
      servoI.write(90);              //Motor Izquierdo para (90)
      servoD.write(90);            //Motor Derecho para (90)
      delay(15);                    //Retardo de 15 milisegundos para dar tiempo a los servos a posicionarse
    }
    
    if(estado =='4'){              //Si la variable estado (lo que se recibe por el puerto serie) es un 4
      servoI.write(0);              //Motor Izquierdo avanza en sentido Horario (0)
      servoD.write(0);            //Motor Derecho retrocede (sentido AntiHorario (180))
      delay(15);                    //Retardo de 15 milisegundos para dar tiempo a los servos a posicionarse
    }
    
    if(estado =='5'){              //Si la variable estado (lo que se recibe por el puerto serie) es un 5
      servoI.write(180);              //Motor Izquierdo avanza en sentido Horario (0)
      servoD.write(90);            //Motor Derecho para (90)
      delay(15);                    //Retardo de 15 milisegundos para dar tiempo a los servos a posicionarse
    }
    
}

Fuente: http://elprofegarcia.com/?s=control+remoto