# ProgramacionIngenieriaMecanicaUPB:Grupo 1320 01
## Integrantes

* Juan Manuel Cortes, Ingeniería Mecánica.
* Daniela Muñoz, Ingeniería Mecánica.

## Resumen

Se construyó un laberinto en el que las paredes distan 30 cm sin marcas en el piso y paredes blancas, y se realizó la programación de un robot de Lego, mediante el software de Lego Mindstorms NXT para que caminara por este. La finalidad de este robot es que una vez ubicado en el punto de partida, realice el recorrido completo por nuestro laberinto, el cual cuenta con distintas desviaciones y obstáculos; y que logre superarlos hasta encontrar la salida.

## Introducción

El robot Mindstorms es un robot elaborado por industrias Lego para la interacción de los usuarios con la robótica. Este, posee elementos básicos de las teorías robóticas, viene con un software basado en la GUI(la interfaz gráfica de usuario ) de robolab.
El siguiente trabajo tiene como objetivo principal, la programación de un robot Minstorms móvil, el cual, se ubica dentro de un laberinto de 2,10 X 1,80 m. donde tendría que buscar la salida, por medio de una programación previamente establecida.
Para lograr que nuestro robot encontrara la salida se utilizaron dos sensores: un sensor ultrasónico y un sensor de toque

## Marco teórico

Un laberinto, es un lugar formado por calles y encrucijadas, las cuales le dan diferentes grados de complejidad. Generando confusión al que está dentro de él para poder encontrar el punto de salida.
Hay varias clases de laberintos:
* laberinto clásico.
* laberinto romano.
* laberinto barroco.
* laberinto manierista
* laberinto rizoma
* laberinto de Hampton Court
* laberintos medievales
* laberinto ruso
* laberintos modernos
La estrategia de salida del laberinto:
Seguir la pared del lado derecho o izquierdo resuelve una cantidad gigante de laberintos. Durante el recorrido, incluyendo las bifurcaciones, debe mantenerse en la pared elegida (derecha o izquierda). Esta estrategia de salida se puede dar, cuando la entrada y la salida están situadas a lo largo de su perímetro, o cuando la entrada y la salida son puntos arbitrarios. Hay laberintos que forman un ciclo cerrado evitando que el robot encuentre la salida indicada.

## Diseño de la solución

En este trabajo se utilizaron dos tipos de sensores para que el robot pudiera encontrar la salida del laberinto. Sensor ultrasónico: este es un sensor que mide distancias . Es capaz de detectar objetos que se encuentren desde 0 hasta 100 cm. Mediante el principio del eco, el sensor es capaz de recibir la información de los distintos objetos que se encuentren en el campo de detección.
Sensor de contacto: este permite detectar si ha colisionado o no con algún objeto que se encuentre en su trayectoria inmediata. Al tocar una superficie, una pequeña cabeza externa se contrae, permitiendo que una pieza dentro del bloque cierre un circuito eléctrico, provocando una variación de energía de 0 a 5 V.
Solución del laberinto:
* Se organizaron las medidas a sensar entre paredes(7-10 cm), para no acercarse ni alejarse mucho a ellas y así poder guiar al robot con las menores oscilaciones.
* Se presentaron varios callejones sin salida en los cuales el robot tenía que regresarse en busca de esta. Para esto se utilizó el sensor de choque y los motores B y C para que el robot realizara un giro de 180 grados, dividido en dos pasos (1.choque-giro de 90 y 2.choque-giro de 90).
* Se guió el robot a través de un sensor ultrasónico para que pudiera encontrar los espacios que hay entre las paredes y así llegar a la salida. Cuando el sensor detectó una distancia superior a 15 cm el robot giró a la derecha.
* Se hizo pasar al robot por dos paredes puestas en paralelo formando un ángulo de 45°.

## Resultados

A través del video se puede ver el recorrido realizado por el robot y la superación de los obstáculos para encontrar la salida.
http://www.youtube.com/watch?v=8Do5lyL8ehc&feature=youtu.be

## Conclusiones y trabajo futuro

* Con el robot Lego Mindstorms NXT se pueden conocer bases sobre mecánica,electrónica y programación con las cuales se pueden realizar infinidad de proyectos tanto colegiales, universitarios y profesional.
* El robot no mantenía una dirección única, en largas distancias tendía siempre hacia un lado, por ello había que corregir su trayectoria por medio del sensor ultrasonico, haciendo que iterara entre 7-10 cm de distancia, manteniéndose entre este margen.
* Por medio de la programación se logró guiar al robot en su recorrido.
* Si el robot se torcía en su trayectoria y no era corregida desde un principio se obtenía una sumatoria de errores, haciendo que este perdiera su ruta.
* Se presentaron factores externos que influían sobre el funcionamiento del robot tales como: la fricción, el deslizamiento, el polvo, la batería, el punto ciego del sensor ultrasónico, etc.