Você está na página 1de 17

16/7/2017 Robot mvil controlado por bluetooth

Contacte con nosotros Iniciar sesin

Buscar

0
S/. 0,00

CATEGORAS
All Blog News Robot mvil controlado por bluetooth

ARTCULOS POPULARES

Tutorial trasmisor de celda de carga HX711, Balanza Digital ago 23, 2015

Con guracin del mdulo bluetooth HC-05 usando comandos AT ago 08, 2015

Tutorial Mdulo GPS con Arduino jun 25, 2015

ARTCULOS RECIENTES

Usando ESP8266 con el IDE de Arduino oct 21, 2016

Tutorial Sensor de Distancia SHARP sep 28, 2016

Arduino y ESP8266 como cliente web ago 24, 2016

http://www.naylampmechatronics.com/blog/53_robot-movil-controlado-por-bluetooth.html 1/17
16/7/2017 Robot mvil controlado por bluetooth

PROMOCIONES ESPECIALES
Sensor EMG MyoWare
Controlar tus proyectos con el...

S/. 250,00 S/. 270,00

Todas los promociones especiales

ETIQUETAS

sensor robot cnc Servo infrarrojo LED LCD driver Fuente cable

NOVEDADES
Piezo Buzzer activo 12mm
Agrega alertas o efectos de sonido a tus proyectos

S/. 1,00

Piezo Buzzer activo 22mm


Agrega alertas o efectos de sonido a tus proyectos

S/. 7,00

Shield Display LCD TFT 3.5"


Pantalla de 3.5", colores vvidos, incluye lector de tarjetas microSD.

S/. 70,00

Mdulo expansor IO PCF8574


El PCF8574 es un expansor de E/S compatible con la mayora de...

S/. 12,00

http://www.naylampmechatronics.com/blog/53_robot-movil-controlado-por-bluetooth.html 2/17
16/7/2017 Robot mvil controlado por bluetooth
Sensor de presin BMP280
Sensor de presin baromtrica BMP280 de alta precisin y de bajo consumo...

S/. 15,00

Sensor de Presin, Temperatura y Humedad BME280


Sensor de monitoreo ambiental ideal para aplicaciones de Drones e...

S/. 28,00

Mdulo GY-91 MPU9250 + BMP280 : Acelermetro, Giroscopio, Magnetmetro, Altmetro I2C


Sensor ultra compacto de 10 grados de libertad (DoF)

S/. 50,00

Shield Relay v2
La manera ms sencilla y rpida de controlar cargas de alta corriente...

S/. 45,00

Todas los nuevos productos

Robot mvil controlado por bluetooth


Posted by Noticias 5 Comments

http://www.naylampmechatronics.com/blog/53_robot-movil-controlado-por-bluetooth.html 3/17
16/7/2017 Robot mvil controlado por bluetooth

En este tutorial, construiremos un robot mvil, el cual ser controlado por bluetooth desde
nuestro celular a travs de un aplicativo Android.

Materiales
Empecemos describiendo los principales materiales:

Arduino
Podemos usar cualquiera de las placas Arduino, nosotros usaremos el Arduino Uno R3 por
ser uno de los ms usados.

Modulo Bluetooth HC-06 o HC-05


Este mdulo nos sirve para que nuestro Arduino y el celular puedan comunicarse a travs
de bluetooth. Para esta aplicacin podemos usar cualquiera de los dos modulo pues los
trabajaremos en modo esclavo.

http://www.naylampmechatronics.com/blog/53_robot-movil-controlado-por-bluetooth.html 4/17
16/7/2017 Robot mvil controlado por bluetooth

Si usan un HC-06 estara listo para usar, si usan un HC-05 deben verificar que est
configurado como esclavo. La velocidad con la que vamos a trabajar es a 9600baudios,
que es la velocidad que viene por defecto tanto en el HC-06 como en el HC-05.

Nosotros usaremos el HC-06 con su configuracin por defecto, si desean realizar


configuraciones adicionales puede consultar nuestros tutoriales:
Con guracin del mdulo bluetooth HC-06 usando comandos AT
Con guracin del mdulo bluetooth HC-05 usando comandos AT

Driver Puente H
El puente H es el que nos permite invertir el giro de un motor, necesitamos un puente H
que tenga dos canales para poder controlar dos motores.

http://www.naylampmechatronics.com/blog/53_robot-movil-controlado-por-bluetooth.html 5/17
16/7/2017 Robot mvil controlado por bluetooth

Entre los puente H ms comunes tenemos el L298N, L293D, TB6612FNG y el L9110S , Algunos
mdulos aparte de los pines para controlar la direccin tienen un pin (Enable ) por donde
podemos enviar PWM y controlar la velocidad, pero para este tutorial podemos usar
cualquiera pues solo controlaremos direccin.

Motores con Llanta:


Bsicamente 2 motores DC con caja reductora y su respectiva llanta, una velocidad
promedio puede ser 100RPM, pero depender de la velocidad que uno desee.

http://www.naylampmechatronics.com/blog/53_robot-movil-controlado-por-bluetooth.html 6/17
16/7/2017 Robot mvil controlado por bluetooth

El voltaje depender de la batera, por ejemplo si tienen una batera de 6V o de 3.7V se


puede trabajar con el motor amarillo, si tienen una batera de 12V o 9V pueden trabajar
con los micro motores, Si alimentamos un motor con un voltaje inferior al nominal, su
velocidad disminuye, en cambio s alimentamos con un voltaje superior podemos malograr
el motor, por eso debemos de tener en cuenta las especificaciones tcnicas del motor.

Batera
Esto tal vez sea lo ms difcil de establecer, lo primero que hay que tener en cuenta es el
voltaje. Arduino trabaja con un voltaje entre 6 y 12V, aparte de esto hay que tener en
cuenta el voltaje del motor. Tambin hay que considerar la corriente y la capacidad, por
ejemplo si usamos una pila econmica de 9V nos durar menos de un minuto, se
recomienda que la capacidad sea superior a 500mAH
A continuacin mostramos las opciones que pueden usar dependiendo del motor que
tengan:

Motor de 6V:
Opcin 1: 4 pilas AA para los motores y una de 9V para el Arduino
Opcin 2: 1 celda de litio (batera de celular) para los motores y una pila de 9V para el
Arduino
Opcin 2: Cualquier batera superior a 6V (de suficiente corriente) y un step down para
bajar el voltaje.

Motor de 12V:
Opcin 1: Pila duracell 9V
Opcin 2: batera lipo o litio de 2 o 3 celdas.
Opcin 3: cualquier Batera de 12V (de suficiente corriente)
Opcin 4: 1 celda de litio (batera de celular) o batera de 3.7V y un step Up para
aumentar el voltaje.
Independiente del valor del voltaje de la batera podemos usar conversores DC-DC para
aumentar (step up) o reducir (step down) el voltaje.

Chasis y rueda loca


http://www.naylampmechatronics.com/blog/53_robot-movil-controlado-por-bluetooth.html 7/17
16/7/2017 Robot mvil controlado por bluetooth

Chasis y rueda loca


Esto depender del diseo de cada uno, pueden hacerlo, o comprar uno hecho. El chasis
bsicamente es en donde se va a poner los dos motores con llanta y los dems
componentes, adicionalmente se necesita una rueda giratoria o una ballcaster, que ser el
tercer punto de apoyo junto a las otras dos llantas.

Otros accesorios:
Adicionalmente podemos necesitamos un protoboard, cables DuPont Macho-Macho y
Hembra-Macho y cablecillo para soldar los motores.

1. Ensamblando la parte mecnica de nuestro Robot Mvil


Existen varios diseos en internet que nos pueden ayudar, as como existen plataformas
comerciales. Esto depender de cada uno,
Para nuestro tutorial usaremos la locomocin diferencial, que utiliza dos ruedas principales
que dan la traccin y por diferencia de velocidad en estas podremos realizar giros.
Usaremos esta configuracin por ser fcil de implantar, a diferencia de la configuracin
Ackerman (la que usan los vehculo motorizados) que es ms complicado de implementar
la parte mecnica.
La principal diferencia entre estas dos configuraciones es en el giro del robot, en la
configuracin diferencial tenemos que invertir el giro en uno de los motores o simplemente
disminuir la velocidad, en cambio en la configuracin Ackerman necesitamos de un
servomotor para girar las llantas delanteras.

http://www.naylampmechatronics.com/blog/53_robot-movil-controlado-por-bluetooth.html 8/17
16/7/2017 Robot mvil controlado por bluetooth

Como indicamos nosotros vamos a trabajar en la configuracin diferencial y


adicionalmente a las dos llantas principales necesitamos una o dos ruedas giratorias que
nos servirn de apoyo, esta rueda lo podemos poner adelante y/o atrs.

2. Conexiones elctricas:
A continuacin mostramos dos posibles conexiones dependiendo del tipo de motor que
tengan.

http://www.naylampmechatronics.com/blog/53_robot-movil-controlado-por-bluetooth.html 9/17
16/7/2017 Robot mvil controlado por bluetooth

2.1 Para motores DC de 3-6VDC

Para este caso si necesitamos usar una sola batera, es mejor usar un step down y no
alimentar los motores con los 5V del Arduino, pues sobrecalentaramos el regulador
interno que tiene.
La betera tiene que ser superior a 6V para que pueda trabajar nuestro Arduino pero se
recomienda que tampoco sea superior a los 12V, adicionalmente la batera debe tener
suficiente corriente para que pueda alimentar los dos motores, de lo contrario nuestro
Arduino se va a estar reseteando cuando empiecen a funcionar los motores.
Antes de instalar el step down hay que regular al voltaje que deseamos, puede ser 6v, 5V,
3v, etc, variando este voltaje tambin estamos modificando la velocidad de los motores.

2.2 Para motores DC de 12V DC

http://www.naylampmechatronics.com/blog/53_robot-movil-controlado-por-bluetooth.html 10/17
16/7/2017 Robot mvil controlado por bluetooth

De esta forma el voltaje que ingresa a los motores es el mismo que el de la batera.
Dependiendo del tipo de motor puedes usar la batera que ms se adecue a tu necesidad,
teniendo en cuenta que tenga la suficiente corriente y duracin.
Las conexin son similares para otros tipos de Drivers Puente H, pueden revisar nuestro
tutorial de uso del L298N en caso estn usando ese mdulo.

3. Programacin de nuestro Robot Mvil


Para que tengan una mayor comprensin trabajaremos el programa en dos etapas:

3.1 Test de movimientos


En este primer ejemplo probaremos los diferentes movimientos del robot, lo realizaremos
aun sin conexin bluetooth para poder entender mejor el programa.

Para poder programar necesitamos desconectar el mdulo bluetooth, podemos


desconectar todo el mdulo o simplemente dejar libre el RX (pin 0) del Arduino
El cdigo es el siguiente:

//Pines de conexin del driver


int Pin_Motor_Der_A = 8;
int Pin_Motor_Der_B = 9;
int Pin_Motor_Izq_A = 10;

http://www.naylampmechatronics.com/blog/53_robot-movil-controlado-por-bluetooth.html 11/17
16/7/2017 Robot mvil controlado por bluetooth

int Pin_Motor_Izq_B = 11;

void setup() {
// inicializar la comunicacin serial a 9600 bits por segundo:
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() {
//movemos el robot hacia delante por 2 segundos
Mover_Adelante();
delay(2000);
//movemos el motor a la derecha por 2 segundos
Mover_Derecha();
delay(2000);

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);
}

http://www.naylampmechatronics.com/blog/53_robot-movil-controlado-por-bluetooth.html 12/17
16/7/2017 Robot mvil controlado por bluetooth

Como se observa la programacin es fcil, se ha programado cada movimiento del robot


en funciones separadas, las cuales llamamos desde el void loop(),

Para probar los movimientos hay que ir probando cada funcin y ver si nuestro robot se
mueva de la misma manera como se lo ha programado, por ejemplo as como est el
cdigo, despus de encender o resetear el Arduino debe moverse hacia delante por 2
segundos, seguidamente debe girar a la derecha por dos segundos ms y lego repetir la
secuencia, si el robot gira en direccin equivocada, entonces debemos de cambiar la
polaridad de motor que gira en sentido errneo.
Podemos ir probando los movimientos de forma individual reprogramando cada vez para
cambiar el movimiento o programar todos a la vez con pausas entre movimientos, eso
depender de cada uno, despus de estar seguros que nuestro robot funciona
correctamente pasamos a implementar la comunicacin bluetooth.

2.2 Robot Mvil controlado por Bluetooth

Para controlar el Robot usaremos una aplicacin en nuestro celular, para esto debemos de
instalar en nuestro celular la siguiente aplicacion.

Naylamp Car: Instalar desde Google Play


La aplicacin consta de 4 botones una para cada direccin, al presionar el botn para
mover adelante, la aplicacin enva por bluetooth el carcter a y lo sigue enviando
constantemente mientras se tenga presionado. De igual manera para los otros botones, la
aplicacin enva r para retroceso, i para izquierda y d para mover a la derecha.

http://www.naylampmechatronics.com/blog/53_robot-movil-controlado-por-bluetooth.html 13/17
16/7/2017 Robot mvil controlado por bluetooth

Nuestro Arduino debe de leer estos 4 caracteres y realizar el movimiento, adems al no


tener un botn stop, nuestro Arduino deber detener de forma automtica los movimientos
cuando no se tenga presionado ningn botn.

Antes de cargar el programa a nuestro Arduino debemos de desconectar los cables de


nuestro bluetooth y despus de terminado la carga podemos volverlo a conectarlo.

El cdigo que debemos de cargar a nuestro Arduino es el siguiente:

//Pines de conexin del driver


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 comunicacin serial a 9600 bits por segundo:
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);

http://www.naylampmechatronics.com/blog/53_robot-movil-controlado-por-bluetooth.html 14/17
16/7/2017 Robot mvil controlado por bluetooth

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 (100ciclos)
{
Mover_Stop();
}

delay(1); //pasusa de 1ms por ciclo

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 );

http://www.naylampmechatronics.com/blog/53_robot-movil-controlado-por-bluetooth.html 15/17
16/7/2017 Robot mvil controlado por bluetooth

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);
}

Como se observa al cdigo del primer ejemplo solo le hemos agregado la parte de la
comunicacin serial, en donde leemos el dato y comparamos para ver si es el carcter
correspondiente para realizar su respectivo movimiento, adicionalmente si durante 100
milisegundos no llega ningn dato detenemos el robot, y tan pronto le llega uno de los
datos reiniciamos la cuenta de los 100ms.

Una vez que tengan todo listo, tan solo hay que abrir la App, conectarnos a nuestro
modulo bluetooth y empezar a mover nuestro robot con los botones.

Tags: robot Bluetooth carro

4 ? ? 0 ? Compartir 4

5 Comments

Juan Carlos Fernndez Lpez


dic 29, 2016

Hola amigo!! Felicidades por lo bien que explicas y ayudas tanto a gente como yo que tenemos
medio siglo de edad y seguimos estudiando electrnica. He realizado un trabajo con tres motores
para una pequea gra y t programacin de Arduino me ha venido genial y he podido incorporar
el tercer motor y he cambiado los movimientos. Tengo un pequeo problema al hacerme mi propia
app con MIT App inventor que cuando pulso el botn del mvil me lo hace como un click, aunque
lo haga con "touch down" y con tu aplicacin si me funciona los motores mientras lo tengo pulsado
(No me sirve la tuya porque necesito dos botones para el tercer motor) Ojal me puedas ayudar
Un abrazo desde Martos (Jan) ESPAA Feliz ao nuevo!!

Reply

pablo martinez
feb 26, 2017

http://www.naylampmechatronics.com/blog/53_robot-movil-controlado-por-bluetooth.html 16/17
16/7/2017 Robot mvil controlado por bluetooth

Que maravilla lo bien que lo explicis. Voy a usar este ejemplo para dar clases en Espaa. Muchas
gracias!

Reply

Luis
may 29, 2017

Una pregunta y si trabajo con cuatro motores cuanta bateria seria

Reply

Toteboy
jun 14, 2017

Hola buenas tardes, tengo un problema con este montaje. Una vez empleado el montaje a 9V y
cargado el programa (tras haber probado todo con el "test de movimientos") y establecido la
comunicacin bluethooth, a la hora de mandar los pulsos desde vuestra app, no llega ninghn tipo
de impulso al receptor HC-06 a 9600 baudios. Quisiera saber cmo puedo solucionarlo. Gracias de
antemano.

Reply

Naylamp
jun 30, 2017

Hola, primero asegrate si la app se a conectado al HC-06, el led del HC-06 debe
dejar de parpadear mientras est conectado. Asegrate de haber conectado
correctamente los pines RX y TX como en la imagen (cruzado rx con tx), el cable
USB debe de estar desconectado de la PC (o por lo menos cerrado el monitor
serial). Verifica que la batera tenga suficiente corriente para alimentar todo el
circuito. Verifica que el HC-06 est configurado a 9600

Reply

Leave a Reply
* Name:

* E-mail:
(Not Published)

Website:
(Site url withhttp://)

* Comment:

Submit

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

Você também pode gostar