Robot Laberinto Raven
-
Upload
extension-del-instituto-tecnologico-de-tuxtla-gutierrez-sede-bochil -
Category
Engineering
-
view
60 -
download
0
Transcript of 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.
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
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…
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
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);
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(); }
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.
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