Introduction: Robot Controlado Por Bluetooth

Prototipo de robot 4x4 RC, en el cual se puede manipular el giro del motor (adelante, atras, izquierda y derecha) y su velocidad de 0 a 255 por medio de bluetooth.



Step 1: Materiales

Los materiales que utilice para este proyecto son muy comunes y fáciles de encontrar.

Puente H: aunque este puente H es de 100A también funciona muy bien con el l293b o el l298 la programación es la misma, la razón por la que utilice este puente H es por que lo uso en mi robot "SUMO" y pues no tenia otro ala mano.

http://www.ebay.com/itm/100-A-High-Power-Dual-Chan...

Baterías Lipo: uso 2 baterías tipo lipo una de 11.1v y la otra de 7.4v, la de 11.1v es exclusivamente para los motores y la de 7.4v es para el arduino y el modulo bluetooth.

Arduino: en este caso utilice el arduino UNO pero de igual manera pueden usar el que mas les guste o tengan ala mano.

Motores: use 4 motores

http://leisonmotor.en.made-in-china.com/offer/OoIE...

Llantas: 4 llantas cada una con sus respectivos coples para eje de 5mm

http://superrobotica.com/S360175.htm

Modulo Bluetooth:

http://articulo.mercadolibre.com.mx/MLM-508124098-...

Chasis: En cuanto al chasis esta hecho de acero pesa alrededor de 2.5kg pero es por que es la base de mi robot "SUMO" como ya les había mencionado, pero puede ser de cualquier material.

app: La aplicación esta hecha en app inventor es una aplicación bastante sencilla

Step 2: Conexiones

En esta parte conectaremos los pines del puente h y el modulo bluetooth al arduino

no tiene que ser exactamente a los mismos pines en los que los conecto yo, esto puede variar segun el arduino que utilicen o a los que ustedes quieran.

En este caso el diagrama muestra un Arduino MEGA pero en realidad use un Arduino UNO y por eso los pines cambian.

Puente H:

PA= inestable del puente H = pin 3 asegúrense de conectarlo a un Pin analógico PWM ~

A1= Direccion 1 del puente H = pin 4

A2=Direccion 2 del puente H = pin 5

PB= inestable del puente H = pin 6 asegúrense de conectarlo a un Pin analógico PWM ~

B1= Direccion 1 del puente H = pin 7

B2=Direccion 2 del puente H = pin 8

En el modulo Bluetooth el RX se conecta al TX del arduino y el Tx al Rx del arduino. pines 0 y 1 del arduino UNO.

Los motores los conecte en paralelo para poder controlar con una salida del puente H 2 motores, asegúrense de conectarlos con la misma polaridad rojo con rojo y negro con negro, por que si los conectan al reves giraran en sentidos opuestos.

En este caso hice una plaquita para montarla directamente al arduino y así evitarme los problemas de que se salio un cable o el típico cable en falso.

Step 3: Codigo Arduino

const int enPin = 3; // inestable del Puente H

const int in1Pin = 4; // 1.-entradas del Puente H

const int in2Pin = 5;//2.-entradas del Puente H

const int enPin2 = 6; // inestable del Puente H

const int in1Pin2 = 7; // 1.-entradas del Puente H

const int in2Pin2 = 9;//2.-entradas del Puente H

char incomingByte = 1; // for incoming serial data

void setup() //modo serial con el arduino
{ Serial.begin(115200);

pinMode(in1Pin, OUTPUT); //declara salidas

pinMode(in2Pin, OUTPUT);

pinMode(in1Pin2, OUTPUT);

pinMode(in2Pin2, OUTPUT);

}
void loop() //void main() {

if (Serial.available()) {
// read the incoming byte:

incomingByte = Serial.read(); }

if(incomingByte >= '0' && incomingByte <= '9') //
{

int speed = map(incomingByte, '0', '9', 0, 254);

analogWrite(enPin, speed);// escribe el valor que
analogWrite(enPin2, speed);

}
switch(incomingByte) {

case 's':

digitalWrite(in1Pin,LOW);//bajo

digitalWrite(in2Pin,LOW);//bajo

digitalWrite(in1Pin2,LOW);//bajo

digitalWrite(in2Pin2,LOW);//bajo

Serial.println("Stop\n");

incomingByte='*';

break;

case 'd':
digitalWrite(in1Pin,HIGH);//alto

digitalWrite(in2Pin,LOW);//bajo

digitalWrite(in1Pin2,HIGH);//alto

digitalWrite(in2Pin2,LOW);//bajo

Serial.println("Rotate Right\n");

incomingByte='*';

break;

case 'i':
digitalWrite(in1Pin,LOW);//bajo

digitalWrite(in2Pin,HIGH);//alto

digitalWrite(in1Pin2,LOW);//bajo

digitalWrite(in2Pin2,HIGH);//alto

Serial.println("Rotate Left\n");

incomingByte='*';

break;

case 'a':
digitalWrite(in1Pin,HIGH);//alto

digitalWrite(in2Pin,LOW);//bajo

digitalWrite(in1Pin2,LOW);//alto

digitalWrite(in2Pin2,HIGH);//bajo

Serial.println("Forward\n");

incomingByte='*';

break;

case 'r':
digitalWrite(in1Pin,LOW);//alto

digitalWrite(in2Pin,HIGH);//bajo

digitalWrite(in1Pin2,HIGH);//alto

digitalWrite(in2Pin2,LOW);//bajo

Serial.println("Backward\n");

incomingByte='*';

break;

case 'v':
Serial.print("Guem07 7/7/1992 ");

Serial.println();

Serial.print("Mauricio Guillen, Inc.");

incomingByte='*';

break;

delay (500); }

}