Este proyecto se trata del armado de un robot con componentes de fácil adquisición y que podemos controlar a través de nuestro celular con Android OS mediante bluetooth. Además agregando sensores y modificando su programación puede ser tan actualizable como quieras.
Materiales
Hardware
- 1 arduino nano (en el armado utilizamos un arduino nano genérico)
- 1 modulo bluetooth HC 06
- 2 mini protoboard
- 1 driver para motor DC – L9110S ( puede ser cualquier otro driver para motor DC)
- 1 regulador de tensión para protoboard
- 1 chasis de robot
- 1 conector batería 9V a arduino
- Cables telefónicos usados para el conexionado en la protoboard
- Cables Dupont Macho/Macho – Macho/Hembra
- 4 pilas recargables AA
- 1 Bateria recargable 9V
- Cautin 25W y soldadura
Software
- IDE de Arduino
- Hyperterminal RS232 de H-AVR (descargado desde la APP Store)
Descripción de los Materiales
Arduino Nano

Es el cerebro del proyecto. Con el ejecutaremos un programa que procesa los datos recibidos del Modulo Bluetooth HC 06 y controlaremos el driver LS9119S, que a su vez controla los motores. Solo por su pequeño tamaño se eligió un Arduino Nano, pero perfectamente se puede implementar con cualquier otro Arduino.
Modulo Bluetooth HC 06

Módulo Bluetooth HC 06
Es el dispositivo de transmisión y recepción que nos permitirá comunicar nuestro teléfono celular con nuestro robot.
Mini Protoboard

Mini protoboard
Nuestra base para el conexionado de nuestros componentes. Con esto podemos unir fácilmente nuestro proyecto.
Driver L9110S

Driver L9110S
Nuestro microcontrolador no puede en ocasiones manejar actuadores (motores dc en nuestro caso)directamente, ya sea porque estos requieren voltajes y/o corrientes diferentes a los que el micro puede entregar. Para adaptar estas señales del micro con los motores de nuestro robot usaremos un controlador o driver de motor dual, de bajo costo y sencillo de usar que nos permitirá darle movilidad a nuestros motores.
Regulador de tensión para protoboard

Regulador de tensión para protoboard
Es una pequeña fuente ideal que nos entrega en sus salidas las tensiones reguladas de 5Volt y 3,3Volt con una capacidad de corriente máxima de 800mA, suficiente para alimentar la parte lógica de nuestro proyecto.
Chasis de robot

Chasis de robot
Consta de una base, un par de motoreductores con llanta y portapilas. Se ensambla y quedará lista la estructura para contruir el primer robot.
Conector batería 9Volt a Arduino

Conector batería 9Volt a Arduino
Nos permite conectar nuestra batería de 9Volt a nuestra fuente para protoboard, y de ahí alimentamos nuestro microcontrolador y nuestro modulo bluetooth.
Cables telefónicos

Cables telefónicos
Nos permitirá realizar fácilmente el conexionado de los diferentes puntos de nuestra protoboard.
Cable Dupont Macho/Macho – Macho/Hembra

Cables Dupont
Otra alternativa para unir los diferentes módulos de manera mas ordenada, sin soldaduras, y sin falsos contactos, son los cables Dupont. Fáciles y baratos de conseguir. Se pueden utilizar una y otra vez.
Fuentes de alimentación del robot

Baterías
Solo por una decisión personal elegimos dos fuentes para el robot. Una batería de 9Volt recargable para alimentar nuestra placa Arduino y el Modulo HC -06. Y para alimentar los motores decidimos usar 4 pilas AA recargables puestas en el porta pilas que traía la base del robot. Con estas dos fuentes nos evitamos que el posible ruido eléctrico que generan los motores DC, nos pudieran dar cierto problemas con nuestra parte lógica, y así nos evitamos poner filtros y otros supresores de ruido.
Cautin 25W y soldadura
Adicionalmente se requerirá soldar ciertos cables en el proceso por lo tanto estos componentes servirán para realizar esa labor.
Programa Terminal
Este programa nos permite el envío de caracteres y otra información desde nuestro teléfono android a nuestro modulo bluetooth, y de ahí procesar ese dato con nuestro Arduino . Se hizo una prueba descargando desde la App Store, un emulador de terminal llamado Hyper Terminal Rs232 de H-AVR, el cual resultó bastante sencillo de utilizar. Una vez conectado y alimentado correctamente nuestro circuito, antes que todo debemos emparejar nuestro Modulo Hc-06 con nuestro Android.
Al momento de encender el robot, la luz roja del Hc-06 comenzara a parpadear. En el Smartphone, en Configuracion=> Conexiones Inalambricas=>Bluetooth, debemos vincular el nombre HC06 y cuando nos pida contraseña, teclear 1234 (valores por defecto del HC06). Si se ha emparejado correctamente la luz roja dejara de parpadear y quedara fija. Abrimos nuestro programa terminal, nos pedirá seleccionar el dispositivo que queremos trabajar y listo, ya podemos enviar datos.
Código de programación
/*Programa para Robot controlado por Bluetooth*/
#include <SoftwareSerial.h> // incluyo la libreria para crear un nuevo puerto
int rxPin = 10; // defino el pin 10 como RX
int txPin = 9; // defino el pin 9 como TX
int motor1avanza = 7; // defino el pin 7 para controlar el avance del motor 1
int motor1retrocede = 6; // defino el pin 6 para controlar el retroceso del motor 1
int motor2avanza = 5; // defino el pin 5 para controlar el avance del motor 2
int motor2retrocede = 4; // defino el pin 4 para controlar el retroceso del motor 2
int midato = 0; // defino variable para guardar mis datos recibidos
SoftwareSerial BT = SoftwareSerial(rxPin, txPin); // configuramos un nuevo puerto lo denominamos BT
void setup() {
// definimos el modo para los pines rx, tx y pines de control de los motores
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
pinMode(motor1avanza, OUTPUT);
pinMode(motor1retrocede, OUTPUT);
pinMode(motor2avanza, OUTPUT);
pinMode(motor2retrocede, OUTPUT);
BT.begin(9600); // inicializamos-configuramos el ratio de datos para el nuevo puerto que creamos
Serial.begin(9600); // inicializamos-configuramos el puerto serial para el monitor serie
}
void loop() {
char midato = BT.read(); // escucho la llegada de los datos serie
Serial.println(midato); // aqui visualizo el dato en el monitor serial
if (midato == ‘A’) // Robor Avanza
{
digitalWrite (motor1avanza, LOW);
digitalWrite (motor2avanza, LOW);
digitalWrite (motor1retrocede, HIGH);
digitalWrite (motor2retrocede, HIGH);
}
if (midato == ‘B’) // Robot retrocede
{
digitalWrite (motor1avanza, HIGH);
digitalWrite (motor2avanza, HIGH);
digitalWrite (motor1retrocede, LOW);
digitalWrite (motor2retrocede, LOW);
}
if (midato == ‘C’) // Robot gira a la izquierda
{
digitalWrite (motor1avanza, LOW);
digitalWrite (motor2avanza, HIGH);
digitalWrite (motor1retrocede, HIGH);
digitalWrite (motor2retrocede, HIGH);
}
if (midato == ‘D’) // Robor gira a la derecha
{
digitalWrite (motor1avanza, HIGH);
digitalWrite (motor2avanza, LOW);
digitalWrite (motor1retrocede, HIGH);
digitalWrite (motor2retrocede, HIGH);
}
if (midato == ‘1’) // Robot se detiene
{
digitalWrite (motor1avanza, HIGH);
digitalWrite (motor2avanza, HIGH);
digitalWrite (motor1retrocede, HIGH);
digitalWrite (motor2retrocede, HIGH);
}
}
Aspecto final del carro
Diagrama del Cicuito Eléctrico
Conexión Eléctrica de los componentes
Comentarios recientes