1. Instituto Tecnológico de Tuxtla Gutiérrez
Ciencia y Tecnología con sentido Humano
Ingeniería en Sistemas Computacionales
ROBOT PARA SOLUCIONAR LABERINTOS
“RAVEN”
Hernández Calvo, Luis Ángel; Hernández Pérez, Daniela Karina; Vázquez Hernández Eliver
Jovanny; Gómez Grajales, Luis Ángel.
Lenguajes de Interfaz.
Instituto Tecnológico de Tuxtla Gutiérrez, Carretera Panamericana Km. 1080, C.P. 29050, Apartado
Postal: 599, Tuxtla Gutiérrez, Chiapas.
Resumen— Es un proyecto, el cual lo llevamos a lo largo del semestre con el propósito de
participar en un concurso, la categoría que elegimos fue laberintos. El presente robot fue
programado en Arduino UNO, llevaba distintos materiales los cuales son; sensores
ultrasónicos, motor reductores, chasis, interruptor, jumpers, baterías (de 9 volts), puente H;
entre estos materiales buscamos personalizar tanto el código, como los materiales.
Palabras clave: Robot, laberinto, sensores ultrasónicos, arduino UNO.
Abstract— It is a project which took him throughout the semester in order to participate in a
contest, the category you chose was mazes. This robot was programmed in Arduino UNO,
had different materials which are; ultrasonic sensors, reducing engine, chassis, switch,
jumpers, batteries (9 volts), bridge H; among these materials we seek to customize both the
code and the materials.
Keywords: Robot, maze, ultrasonic sensors, arduino UNO.
Introducción
Desde el principio del semestre nos
emocionamos con el proyecto del robot, por
varias razones, una de ellas era aprender a
aplicar la programación en algo que valiera la
pena y que mejor que en esto, otra cosa
esencial fue que podríamos armarlo nosotros
mismos, lo cual implicaba que nuestro toque
personal estaría presente, aunque sabíamos
que algunos cosas iba a ser de dificultad,
nosotros continuamos, comenzando a ver
que material teníamos que utilizar, para luego
ir a conseguirlo. Para lograr el desarrollo
adecuado del robot, es necesario tener
conocimiento de la electrónica. El equipo
wallet se esforzó mucho para poder lograr el
buen funcionamiento del robot y obtener los
resultados deseados que teníamos desde el
inicio del curso de lenguaje de interfaz.
2. Instituto Tecnológico de Tuxtla Gutiérrez
Ciencia y Tecnología con sentido Humano
Ingeniería en Sistemas Computacionales
Materiales
Materiales que usamos en nuestro prototipo:
Arduino UNO: Arduino es una plataforma de prototipos electrónica de código abierto (open-
source) basada en hardware y software flexibles y fáciles de usar. Está pensado para
artistas, diseñadores, como hobby y para cualquiera interesado en crear objetos o entornos
interactivos.
Arduino puede sentir el entorno mediante la recepción de entradas desde una variedad
de sensores y puede afectar a su alrededor mediante el control de luces, motores y otros
artefactos. El microcontrolador de la placa se programa usando el Arduino Programming
Language (basado en Wiring) y el Arduino Development Environment (basado en
Processing). Los proyectos de Arduino pueden ser autonomos o se pueden comunicar con
software en ejecución en UN ordenador (por ejemplo con Flash, Processing, MaxMSP,
etc.).
Las placas se pueden ensamblar a mano o encargarlas preensambladas; el software se
puede descargar gratuitamente. Los diseños de referencia del hardware (archivos CAD)
están disponibles bajo licencia open-source, por lo que eres libre de adaptarlas a tus
necesidades.
Sensores ultrasónicos: es un módulo que incorpora un par de transductores de ultrasonido
que se utilizan de manera conjunta para determinar la distancia del sensor con un objeto
colocado enfrente de este. Quizá la característica más destacada del HC-SR04 es que
puede ser adquirido por una baja suma de dinero y esto mismo lo ha hecho muy popular.
Afortunadamente el módulo HC-SR04 es bastante fácil de utilizar a pesar de su bajo precio
y no demanda grán cantidad de trabajo ponerlo a funcionar, mucho menos si utilizamos
una librería para sensores ultrasónicos.
Jumpers: o puente es un elemento que permite cerrar el circuito eléctrico del que forma
parte dos conexiones. Esto puede hacerse mediante soldadura (se derrite suficiente estaño
para cerrar el circuito), soldando un cable o alambre entre ambos puntos o, lo más
frecuente, conectado dos pines en hilera o paralelo mediante una pieza de plástico que
protege el material conductor que cierra el circuito. Los más habituales tienen tamaños de
2,54 mm, 2 mm y 1,27 mm.
Motorreductores: son apropiados para el accionamiento de toda clase de máquinas y
aparatos de uso industrial, que necesitan reducir su velocidad en una forma segura y
eficiente. Se suministran normalmente acoplando a la unidad reductora un motor eléctrico
normalizado asincrónico tipo jaula de ardilla, totalmente cerrado y refrigerado por ventilador
para conectar a redes trifásicas de 220/440 voltios y 60 Hz.
Sensores ópticos: Detectan la presencia de una persona o de un objeto que interrumpen el
haz de luz que le llega al sensor. Se utiliza para detener su movimiento cuando van a
tropezar con un obstáculo o bien disparar alguna alarma. También sirven para regular la
iluminación artificial en función de la luz natural.
Puente H: es un circuito electronico que nos permite controlar el giro de un motor de
corriente continua, me refiero a que el motor gire en el sentido de las agujas de un reloj o
en el sentido contrario a las mismas.
Interruptor:
Batería recargable de 9 volts
Cables
Llanta deslizable
3. Instituto Tecnológico de Tuxtla Gutiérrez
Ciencia y Tecnología con sentido Humano
Ingeniería en Sistemas Computacionales
Desarrollo y diseño
En un principio comenzamos a conseguir el material que tenía que llevar nuestro prototipo,
pensamos en la forma que debía de tener, colocamos una pequeña base de plástico la cual tenía
que tener todo el material, después colocamos 2 motor reductores y una pequeña llanta deslizable
Pero eso no era todo, colocamos 3 sensores ultrasónicos en la parte de enfrente para que este
comprendiera el entorno, el sensor óptico iba adentro, los jumpers fueron utilizados para que
conectáramos al igual que los cables, la batería fue usada para darle alimentación y estábamos
pensando de que tipo seria, el interruptor iba en la parte de atrás, mientras que el arduino UNO era
utilizado para ir programando su código, no fue fácil porque tuvo diversas modificaciones, nuestro
prototipo fue algo de lo que estamos orgullosos pero esperábamos más…
4. Instituto Tecnológico de Tuxtla Gutiérrez
Ciencia y Tecnología con sentido Humano
Ingeniería en Sistemas Computacionales
Resultados y Discusión
Al final acomodamos todo como creímos mejor, el código fue modificado varias veces, por que al
momento de probarlo no quedaba como deseábamos, este detectaba pero avanzaba hacia los
obstáculos.
Aplicación:
Un robot laberinto podría aplicarse en las vías de trenes, metros o ferrocarriles para que cuando
detecten un objeto que les impida realizar su recorrido, mediante los detectores de obstáculos
puede que el tren se detenga o este mande un mensaje a la estación para que verifique si puede
seguir su curso o en su caso parar para evitar mayor daño a los pasajeros o en su caso al propio
vehículo.
Código del robot Raven
//esta son las declaraciones de los motores de las llantas, donde indicamos los pines donde se
deberán instalar.
#define MOTOR_1_FORWARD 13
#define MOTOR_1_BACK 11
5. Instituto Tecnológico de Tuxtla Gutiérrez
Ciencia y Tecnología con sentido Humano
Ingeniería en Sistemas Computacionales
#define MOTOR_2_FORWARD 9
#define MOTOR_2_BACK 10
Estas variables corresponden a los sensores ultrasónicos, también nos indica en cuales pin de la
placa arduino deberán instalarse.
int ECHO_DER = 7;
int TRIG_DER = 6;
int ECHO_FRENTE = 5;
int TRIG_FRENTE = 4;
int ECHO_IZQ = 3;
int TRIG_IZQ = 2;
void setup()
{
//En esta parte mandamos energia a los motores en la placa de arduino.
pinMode(MOTOR_1_FORWARD, OUTPUT);
pinMode(MOTOR_1_BACK, OUTPUT);
pinMode(MOTOR_2_FORWARD, OUTPUT);
pinMode(MOTOR_2_BACK, OUTPUT);
//en esta parte encendemos los sensores quienes detectaran los objetos, es decir los obstáculos
que nuestro robot localice durante su desplazamiento.
pinMode(ECHO_DER, INPUT);
pinMode(TRIG_DER, OUTPUT);
pinMode(ECHO_FRENTE, INPUT);
pinMode(TRIG_FRENTE, OUTPUT);
pinMode(ECHO_IZQ, INPUT);
pinMode(TRIG_IZQ, OUTPUT);
}
void loop()
{
delay(5000);
while(true){
long dur_frente, dur_der, dur_izq, frente, derecha, izquierda;
digitalWrite(TRIG_DER, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_DER, HIGH);
delayMicroseconds(5);
digitalWrite(TRIG_DER, LOW);
dur_der = pulseIn(ECHO_DER, HIGH);
derecha = dur_der/29/2;
digitalWrite(TRIG_FRENTE, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_FRENTE, HIGH);
delayMicroseconds(5);
7. Instituto Tecnológico de Tuxtla Gutiérrez
Ciencia y Tecnología con sentido Humano
Ingeniería en Sistemas Computacionales
}
void izq(){
analogWrite(MOTOR_1_FORWARD, 0);
analogWrite(MOTOR_1_BACK, 255);
analogWrite(MOTOR_2_FORWARD, 0);
analogWrite(MOTOR_2_BACK, 255);
delay(700);
Serial.println("izq");
}
void der(){
analogWrite(MOTOR_1_FORWARD, 255);
analogWrite(MOTOR_1_BACK, 0);
analogWrite(MOTOR_2_FORWARD, 255);
analogWrite(MOTOR_2_BACK, 0);
delay(800);
Serial.println("der");
}
void girar(){
analogWrite(MOTOR_1_FORWARD, 255);
analogWrite(MOTOR_1_BACK, 0);
analogWrite(MOTOR_2_FORWARD, 255);
analogWrite(MOTOR_2_BACK, 0);
delay(1200);
Serial.println("giro");
}
Conclusiones
Deseamos mejorar esta experiencia, puesto a que aprendimos mucho y de los fallos; podemos
saber dónde ajustar. El robot nos emocionó mucho, quisiéramos agregar más material al robot,
como por ejemplo unos led’s que digan su nombre, más que eso, ay que perfeccionar el código
para que el robot puedo resolver el laberinto sin el mayor de los problemas. Como recompensa
obtuvimos un conocimiento bastante amplio en el ámbito de la electrónica, desarrollar aplicaciones
con arduino y utilizar diferentes materiales con los cuales podemos desarrollar prototipos realmente
increíbles, capaces de resolver cualquier conflicto en la vida real.
Los robots suelen ser una de las herramientas más eficientes que los seres humanos podemos
desarrollar, gracias a ellos no arriesgamos vidas humanas en actividades donde las personas no
podrían realizar.
8. Instituto Tecnológico de Tuxtla Gutiérrez
Ciencia y Tecnología con sentido Humano
Ingeniería en Sistemas Computacionales
Referencias/Bibliografía
http://profundiza.org/proyecto-finalizado-el-robot-resuelve-laberintos-del-romero-murube/
https://www.arduino.cc/en/main/arduinoBoardUno
http://www.ittuxtlagutierrez.edu.mx/index.php?option=com_content&view=article&id=1123&Itemid=
27
http://indianabot.tripod.com/
http://uea2013.frbb.utn.edu.ar/wp-content/uploads/TE_1.pdf
https://www.youtube.com/watch?v=oFyTtHxYDGw