Robot Arduino controlado por bluetooth, con 4 ruedas
| Actualizado:
Comentarios: 0
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.
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.
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.
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.
Paso 4. Terminamos de montar el chasis. Colocamos la parte superior y atornillamos.
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.
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.
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.
Paso 8. Colocamos las ruedas. Si los cables de los motores chocan con las ruedas podemos sujetarlos con un poco de cinta aislante.
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.
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
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.
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.
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.
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.
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.