Robot Arduino controlado por bluetooth, con 4 ruedas
| Actualizado:
Comentarios: 0
![Robot Arduino controlado por bluetooth, con 4 ruedas](https://eloctavobit.com/imagenes/2021/06/1685951961_819e08d4cedf90e79486.webp)
En un artículo anterior construimos un robot arduino controlado por bluetooth con dos ruedas y el módulo controlador L298N, en este caso utilizaremos el controlador de motor L293D que permite la conexión de 4 motores reductores.
Es interesante que antes de comenzar a realizarlo se vea:
- ¿Cómo hacer un coche controlado por bluetooth con Arduino? En el artículo se ha utilizado el controlador de motor L298N y se explica cómo descargarse y configurar la aplicación bluetooth para controlar el vehículo.
- Tutorial básico de uso del módulo bluetooth HC-06 en Arduino. Se explica la conexión del módulo HC-06, que es el que vamos a utilizar.
Material necesario:
- Placa Arduino
- Chasis para el coche 4WD, podemos comprarlo o prepararlo nosotros mismos con una tabla.
- 4 ruedas
- Módulo controlador de motores L293D
- Módulo bluetooth HC-06 Baterías, en este caso utilizaremos una pila de 9V para alimentar la placa y una batería de LIPO para alimentar el controlador L293D
- Cables Tornillos y tuercas
- Soldador, tendremos que soldar dos pines del controlador para poder conectar el módulo HC-06
Esquema:
El módulo bluetooth tiene 4 pines. Conectamos el RX con el pin digital 1 y el TX con el pin digital 0, ambos debemos soldarlos a la placa del controlador. VCC es el cable de alimentación (rojo) y GND (negro) el de tierra, para ellos utilizaremos la parte de conexión para servos.
![Esquema para conexión de Arduino con el módulo controlador L293D y bluetooth para hacer un robot](https://eloctavobit.com/imagenes/2023/06/647d9607859b2.webp)
Pasos para su montaje
Paso 1. Montamos los 4 motores con los cables correspondientes. Para la unión de los cables utilizamos cinta aislante o los soldamos a los bornes metálicos. Podemos probar primero si los motores funcionan antes de colocar en el chasis.
![Soldar los cables a los motores.](https://eloctavobit.com/imagenes/2023/06/647d96351476b.webp)
Paso 2. Sujetarlos al chasis. Colocamos los motores usando las piezas que vienen para ello o podemos también pegar los motores al chasis con cola termofusible, una vez hecho esto, aprovechamos para colocar las tuercas de extensión que nos van a servir para ajustar la parte superior del chasis. Si optáis por pegar los motores, tened en cuenta que estén bien alineados, para no tener problemas con el movimento del coche.
![Chasis con los 4 motores y 4 tuercas de extensión.](https://eloctavobit.com/imagenes/2023/06/647d967b580ef.webp)
Paso 3. Antes de colocar la parte superior del chasis, sujetamos con unos tornillos la placa de Arduino. Utilizamos los agujeros que lleva el chasis.
![Placa de Arduino atornillada en la parte superior del chasis](https://eloctavobit.com/imagenes/2023/06/647d96b587e5b.webp)
Paso 4. Terminamos de montar el chasis. Colocamos la parte superior y atornillamos.
![Chasis superior atornillado a la parte inferior](https://eloctavobit.com/imagenes/2023/06/647d96df9c325.webp)
Paso 5. Para controlar el robot necesitamos la placa Arduino y el controlador de los motores, utilizaremos el Shield controlador de motor L293D, que es perfecto para conectar los 4 motores y el módulo de bluetooth. Lo colocamos sobre la placa Arduino.
![Colocar el controlador L293D sobre la placa Arduino](https://eloctavobit.com/imagenes/2023/06/647d9710035c0.webp)
Paso 6. Conectamos los cables de los motores al controlador. Dependiendo de la conexión que hagamos el giro de las ruedas puede variar. Esto lo podemos controlar con la programación o cambiando los cables de la conexión para invertir el sentido de giro de los motores.
![Se conectan los cables de los motores al controlador](https://eloctavobit.com/imagenes/2023/06/647d974ca7ece.webp)
Paso 7. Conectamos el módulo bluetooth HC-06. Utilizamos los pines RX y TX, están cubiertos con el modulo Shield, por lo que soldamos dos cables a estos pines. Y para la alimentación del módulo utilizamos los pines de los servos.
![Conectamos el módulo bluetooth](https://eloctavobit.com/imagenes/2023/06/647d977554521.webp)
Paso 8. Colocamos las ruedas. Si los cables de los motores chocan con las ruedas podemos sujetarlos con un poco de cinta aislante.
![Robot Arduino casi terminado](https://eloctavobit.com/imagenes/2023/06/647d97ae3ea86.webp)
Paso 9. Para la alimentación de los motores utilizaremos una batería LIPO, por lo que podemos retirar el jumper regulador ya que los motores no se alimentarán a través de la placa Arduino. Retirar el jumper nos permite una alimentación externa de los motores. El módulo de bluetooth se alimenta a partir de la placa Arduino ya que los servos se alimentan directamente de la placa Arduino.
![Quitamos el jumper para poder utilizar una batería para alimentar los motores](https://eloctavobit.com/imagenes/2023/06/647d97ceace5b.webp)
Para la conexión de la batería hemos preparado un cable con terminales XT60 macho, para poder unir la batería a los terminales del controlador
![Cable que hemos preparado para conectar la batería de LIPO](https://eloctavobit.com/imagenes/2023/06/647d98110b413.webp)
Unimos el cable que hemos preparado a los terminales del controlador del motor, el de tierra (negro) al GND y el de alimentación (rojo) al de alimentación.
![Conexión de los cables de la batería al controlador](https://eloctavobit.com/imagenes/2023/06/647d9865d710e.webp)
Paso 10. Vamos con la programación. Para la conexión del módulo de bluetooth hemos utilizado los pines TX (cable blanco) y RX (cable marrón), son los pines de transmisión y recepción de datos respectivamente para Arduino. Son compartidos con el USB de Arduino, por lo que no podemos tener conectado el módulo bluetooth para subir el programa. Desconectamos el cable negro y rojo del módulo bluetooth y conectar el USB del PC.
![Conectar el coche al PC para subir el programa](https://eloctavobit.com/imagenes/2023/06/647d98a28a4d9.webp)
Probemos primero el giro de las ruedas:
#include "AFMotor.h"
AF_DCMotor Motor1(1);
AF_DCMotor Motor2(2);
AF_DCMotor Motor3(3);
AF_DCMotor Motor4(4);
void setup() {
Motor1.run(RELEASE);
Motor2.run(RELEASE);
Motor3.run(RELEASE);
Motor4.run(RELEASE);
}
void loop() {
// velocidad maxima es 255
// retroceder
Motor1.setSpeed(100);
Motor1.run(BACKWARD);
Motor2.setSpeed(100);
Motor2.run(BACKWARD);
Motor3.setSpeed(100);
Motor3.run(BACKWARD);
Motor4.setSpeed(100);
Motor4.run(BACKWARD);
delay(5000);
// Hacia delante
Motor1.setSpeed(100);
Motor1.run(FORWARD);
Motor2.setSpeed(100);
Motor2.run(FORWARD);
Motor3.setSpeed(100);
Motor3.run(FORWARD);
Motor4.setSpeed(100);
Motor4.run(FORWARD);
delay(5000);
// izquierda
Motor1.setSpeed(100);
Motor1.run(BACKWARD);
Motor2.setSpeed(100);
Motor2.run(BACKWARD);
Motor3.setSpeed(100);
Motor3.run(FORWARD);
Motor4.setSpeed(100);
Motor4.run(FORWARD);
delay(5000);
// derecha
Motor1.setSpeed(100);
Motor1.run(FORWARD);
Motor2.setSpeed(100);
Motor2.run(FORWARD);
Motor3.setSpeed(100);
Motor3.run(BACKWARD);
Motor4.setSpeed(100);
Motor4.run(BACKWARD);
delay(5000);
}
Comprobamos que todas las ruedas giran en el sentido correcto, si no es así, cambiar los cables de los motores que correspondan.
Paso 11. Programar el módulo bluetooh. Antes hay que instalar la aplicación bluetooth controller que podemos conseguir en Google Play. (Hay un tutorial explicando el funcionamiento del módulo HC-06 y la instalación de la aplicación)
#include "AFMotor.h"
AF_DCMotor Motor1(1);
AF_DCMotor Motor2(2);
AF_DCMotor Motor3(3);
AF_DCMotor Motor4(4);
void setup() {
Serial.begin(9600);
Motor1.run(RELEASE);
Motor2.run(RELEASE);
Motor3.run(RELEASE);
Motor4.run(RELEASE);
}
void loop() {
if (Serial.available()){
char dato=Serial.read();
Serial.print("Dato recibido: ");
Serial.println(dato);
switch(dato){
case 'a':
adelante();
break;
case 'r':
retroceder();
break;
case 'd':
derecha();
break;
case 'i':
izquierda();
break;
case 'p':
para();
break;
}
}
}
// velocidad maxima es 255
// retroceder
void retroceder(){
Motor1.setSpeed(100);
Motor1.run(BACKWARD);
Motor2.setSpeed(100);
Motor2.run(BACKWARD);
Motor3.setSpeed(100);
Motor3.run(BACKWARD);
Motor4.setSpeed(100);
Motor4.run(BACKWARD);
}
// Hacia delante
void adelante(){
Motor1.setSpeed(100);
Motor1.run(FORWARD);
Motor2.setSpeed(100);
Motor2.run(FORWARD);
Motor3.setSpeed(100);
Motor3.run(FORWARD);
Motor4.setSpeed(100);
Motor4.run(FORWARD);
}
// izquierda
void izquierda(){
Motor1.setSpeed(100);
Motor1.run(BACKWARD);
Motor2.setSpeed(100);
Motor2.run(BACKWARD);
Motor3.setSpeed(100);
Motor3.run(FORWARD);
Motor4.setSpeed(100);
Motor4.run(FORWARD);
}
// derecha
void derecha(){
Motor1.setSpeed(100);
Motor1.run(FORWARD);
Motor2.setSpeed(100);
Motor2.run(FORWARD);
Motor3.setSpeed(100);
Motor3.run(BACKWARD);
Motor4.setSpeed(100);
Motor4.run(BACKWARD);
}
// parar
void para(){
Motor1.setSpeed(0);
Motor1.run(RELEASE);
Motor2.setSpeed(0);
Motor2.run(RELEASE);
Motor3.setSpeed(0);
Motor3.run(RELEASE);
Motor4.setSpeed(0);
Motor4.run(RELEASE);
}
Recordad que el módulo bluetooth lo tenemos desconectado; ahora tenemos que subir el programa.
![Volvemos a conectar el módulo bluetooth TH-06](https://eloctavobit.com/imagenes/2023/06/647d990a055d2.webp)
Una vez subido el programa, desconectamos el cable USB. Volvemos a conectar el módulo bluetooth, colocamos la batería de 9V para alimentar Arduino y nos aseguramos de que la batería de alimentación del controlador está bien puesta.
![Conectamos la batería de Arduino y del controlador y vinculamos el teléfono con el robot](https://eloctavobit.com/imagenes/2023/06/647d994545d8f.webp)
Vinculamos nuestro móvil con el coche y configuramos los botones, «a» hacia delante, «r» retroceder, «d» derecha, «i» izquierda y «p» paro. Ya podemos probar el funcionamiento de nuestro coche.