Robot Laberinto Raven

8
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. ResumenEs 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. AbstractIt 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.

Transcript of Robot Laberinto Raven

Page 1: Robot Laberinto Raven

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.

Page 2: Robot Laberinto Raven

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

Page 3: Robot Laberinto Raven

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…

Page 4: Robot Laberinto Raven

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

Page 5: Robot Laberinto Raven

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

Page 6: Robot Laberinto Raven

Instituto Tecnológico de Tuxtla Gutiérrez

Ciencia y Tecnología con sentido Humano

Ingeniería en Sistemas Computacionales digitalWrite(TRIG_FRENTE, LOW); dur_frente = pulseIn(ECHO_FRENTE, HIGH); frente = dur_frente/29/2; digitalWrite(TRIG_IZQ, LOW); delayMicroseconds(2); digitalWrite(TRIG_IZQ, HIGH); delayMicroseconds(5); digitalWrite(TRIG_IZQ, LOW); dur_izq = pulseIn(ECHO_IZQ, HIGH); izquierda = dur_izq/29/2; analogWrite(MOTOR_1_FORWARD, 0); analogWrite(MOTOR_1_BACK, 0); analogWrite(MOTOR_2_FORWARD, 0); analogWrite(MOTOR_2_BACK, 0); if(frente>8) { if(derecha>7 && derecha<12) { analogWrite(MOTOR_1_FORWARD, 120); analogWrite(MOTOR_1_BACK, 0); analogWrite(MOTOR_2_FORWARD, 0); analogWrite(MOTOR_2_BACK, 150); } if(derecha>=12){ analogWrite(MOTOR_1_FORWARD, 255); analogWrite(MOTOR_1_BACK, 0); analogWrite(MOTOR_2_FORWARD, 0); analogWrite(MOTOR_2_BACK, 60); } if(derecha<=5){ analogWrite(MOTOR_1_FORWARD, 60); analogWrite(MOTOR_1_BACK, 0); analogWrite(MOTOR_2_FORWARD, 0); analogWrite(MOTOR_2_BACK, 255); } } if(izquierda <=15 && derecha>15 && frente <=8) der(); if(izquierda >15 && derecha>15 && frente <=8) der(); if(derecha <=15 && izquierda>15 && frente <=8) izq(); if(derecha <=15 && izquierda<=15 && frente<=8) girar(); }

Page 7: Robot Laberinto Raven

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.

Page 8: Robot Laberinto Raven

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