- 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