Download AGV - DIEE
Document related concepts
no text concepts found
Transcript
SECRETARIA DE EDUCACIÓN PÚBLICA DIRECCIÓN GENERAL DE EDUCACIÓN SUPERIOR TECNOLÓGICA INSTITUTO TECNOLÓGICO DE MÉRIDA TEMA “AGV (Vehículo Automáticamente Guiado)” PARA OPTAR AL TITULO DE: INGENIERO ELECTRÓNICO PRESENTA LOS ALUMNOS: MAGAÑA LANZ EDUARDO VALENCIA AVILA JOSHUA VERDEJO ESCALANTE HECTOR MÉRIDA YUCATÁN MÉXICO 2013 Contenido Introducción. ............................................................................................................................................... 5 Objetivos………………………………………………………………………………………………………5 Objetivo general. ......................................................................................................................................... 5 Objetivos específicos. .................................................................................................................................. 5 Hipótesis……... ........................................................................................................................................... 6 Justificación. ................................................................................................................................................ 6 Delimitaciones y limitaciones. ..................................................................................................................... 7 Impacto social, tecnológico y ambiental. ...................................................................................................... 7 Cronograma de actividades. ......................................................................................................................... 9 Capítulo I… ............................................................................................................................................... 10 1. Principios teóricos.................................................................................................................................. 10 1.1 Brújula electrónica.............................................................................................................................. 10 1.2 GPS (Global Positioning System). ...................................................................................................... 12 1.3 Puente H (Driver). .............................................................................................................................. 15 1.4 Microcontrolador. ............................................................................................................................... 16 1.5 Software de programación visual. ....................................................................................................... 17 Capítulo II.. ............................................................................................................................................... 19 2. Antecedentes y causas del problema....................................................................................................... 19 2.1 Robot peatón Obelix. .......................................................................................................................... 21 2.2 Curiosity Rover. ................................................................................................................................. 23 2.3 Taxis inteligentes. ............................................................................................................................... 26 Capítulo III. ............................................................................................................................................... 30 3. Presentación del proyecto....................................................................................................................... 30 3.1 Variables de entrada y salida. ............................................................................................................. 31 3.2 Diagrama a bloques. ........................................................................................................................... 31 3.3 Resumen de cada bloque..................................................................................................................... 32 3.3.1 Datos de entrada. ......................................................................................................................... 32 3.3.2 Adquisición de datos. .................................................................................................................. 32 3.3.3 Procesamiento de datos. .............................................................................................................. 32 3.3.4 Control de motor. ........................................................................................................................ 33 3.3.5 Datos de salida. ........................................................................................................................... 33 3.4 Diseño. ............................................................................................................................................... 34 3.4.1 Justificación del hardware. .......................................................................................................... 34 3.4.1.1 GPS Receiver A1035-H (Global Positioning System). .................................................................... 34 3.4.1.2 Brújula (Hitachi® HM55B Compass Module). ............................................................................... 39 3.4.1.3 Arduino Duemilanove. ............................................................................................................. 43 3.4.1.4 Servo Motor. ............................................................................................................................ 45 3.4.1.5 Motor DC 12V. ........................................................................................................................ 48 3.4.1.6 Puente H DRV8816. ................................................................................................................. 50 3.4.2 Justificación del software. ........................................................................................................... 54 3.4.2.1 IDE Arduino. ............................................................................................................................ 54 3.4.2.2 Software Processing. ................................................................................................................ 55 3.5 Adquisición de datos. ......................................................................................................................... 56 3.6 Filtrado de información. ..................................................................................................................... 59 3.7 Procesamiento de datos....................................................................................................................... 61 3.8 Control de motor. ............................................................................................................................... 63 3.9 Datos de salida. .................................................................................................................................. 66 Capítulo IV. ............................................................................................................................................... 69 4.1 Pruebas. .............................................................................................................................................. 69 4.2 Software. ............................................................................................................................................ 78 4.3 Resultados. ......................................................................................................................................... 80 4.4 Conclusiones. ..................................................................................................................................... 84 Bibliografía................................................................................................................................................ 85 Índice de figuras. Figura 1. Brújula electrónica. ..................................................................................................................... 14 Figura 2. Módulo GPS. .............................................................................................................................. 17 Figura 3. Puente H creado con Relay’s. ...................................................................................................... 18 Figura 4. Ejemplo de microcontrolador con tarjeta. .................................................................................... 20 Figura 5. Logotipo de programa visual. ...................................................................................................... 21 Figura 6. Robot peatón Obelix. .................................................................................................................. 25 Figura 7. Robot curiosity NASA. ............................................................................................................... 26 Figura 8. Familia de robots Rover. ............................................................................................................. 27 Figura 9. Estructura del Curiosity............................................................................................................... 28 Figura 10. Matemáticas del taxi inteligente. ............................................................................................... 30 Figura 11. Ruta de planeación. ................................................................................................................... 30 Figura 12. Diagrama a bloques del funcionamiento en general. .................................................................. 34 Figura 13. Kit de evaluación GPS Receiver A1035H. ................................................................................ 38 Figura 14. LED´s que contiene el kit de evaluación.................................................................................... 39 Figura 15. Terminales del A1035H. ........................................................................................................... 40 Figura 16. Interruptores DIP del GPS. ........................................................................................................ 40 Figura 17. Esquema eléctrico del A1035H. ................................................................................................ 41 Figura 18. Brújula electrónica HM55B. ..................................................................................................... 43 Figura 19. Especificaciones del HM55B. ................................................................................................... 43 Figura 20. Pines de conexión y definiciones. .............................................................................................. 44 Figura 21. Modo de conexión básico. ......................................................................................................... 45 Figura 22. Modo de conexión alternativo. .................................................................................................. 45 Figura 23. Comandos para el HM55B. ....................................................................................................... 45 Figura 24. Placa Arduino Duemilanove...................................................................................................... 46 Figura 25. Características del servo motor.................................................................................................. 49 Figura 26. Modelo de servomotor. ............................................................................................................. 50 Figura 27. Especificaciones motor DC 12V. .............................................................................................. 52 Figura 28. Dimensiones motor DC 12V. .................................................................................................... 52 Figura 29. Puente H DRV8816. ................................................................................................................. 54 Figura 30. Terminales del DRV8816. ......................................................................................................... 55 Figura 31. Componentes externos. ............................................................................................................. 55 Figura 32. Valores mínimos y máximos. .................................................................................................... 56 Figura 33. Condiciones de funcionamiento. ............................................................................................... 56 Figura 34. Conexión Arduino-GPS. ........................................................................................................... 60 Figura 35. Conexión de la brújula electrónica. ........................................................................................... 61 Figura 36. Diagrama de flujo del programa. ............................................................................................... 63 Figura 37. Algoritmo A*. ........................................................................................................................... 65 Figura 38. Conexión Arduino-servo motor. ................................................................................................ 67 Figura 39. Conexión del puente H. ............................................................................................................. 68 Figura 40. Alimentación y conexión del DRV8816. ................................................................................... 69 Figura 41. Control de motores. ................................................................................................................... 70 Figura 42. Conexión entre etapas del sistema. ............................................................................................ 71 Figura 43. Monitor serial para el GPS. ....................................................................................................... 73 Figura 44. Obtención de minutos en enteros. .............................................................................................. 74 Figura 45. Conexión entre el GPS y el Arduino. ......................................................................................... 75 Figura 46. Comunicación entre Arduinos. .................................................................................................. 76 Figura 47. Diseño de la placa del AGV. ..................................................................................................... 77 Figura 48. Placa ensamblada al chasís. ....................................................................................................... 78 Figura 49. Vista lateral del chasís. .............................................................................................................. 79 Figura 50. Ubicación del GPS. ................................................................................................................... 80 Figura 51. Simulación del algoritmo. ......................................................................................................... 81 Figura 52. Simulación de matriz. ............................................................................................................... 82 Figura 53. Obtención de coordenadas......................................................................................................... 83 Figura 54. Conexión entre etapas. .............................................................................................................. 84 Figura 55. Chasís empleado para el AGV................................................................................................... 85 Figura 56. Vista alterna del AGV. .............................................................................................................. 86 Introducción. Un vehículo auto guiado o AGV (Automatic Guided Vehicle, siglas en inglés) es un robot con la capacidad para moverse de forma autónoma en un entorno acordado, realizando desde tareas como el transporte de objetos pesados hasta la manipulación y recolección de muestras. El sistema cuenta con varias tarjetas que van desde adquisición de datos (GPS, acelerómetro y brújula) hasta manipulación de elementos eléctricos y electrónicos (relevadores, puentes H, transistores de potencia y motores). El ordenador procesa los datos recibidos. Objetivos. Objetivo General. Diseñar los elementos faltantes, a fin de generar una interfaz (software y hardware) que permita a un vehículo eléctrico guiado automáticamente (AGV), ser capaz de utilizar tecnología GPS para realizar tareas pre programadas. Objetivos Específicos. Diseño y construcción de la plataforma de software para un AGV que cumpla con las siguientes restricciones: • Elaboración de la interfaz para controlar los movimientos del AGV. • Elaboración de la interfaz de adquisición de datos del módulo GPS. • Probar dicha interfaz para corroborar que realice lo contemplado. Hipótesis. El AGV es un vehículo de exploración y búsqueda para los rescates tipo urbano, está pensado para que el proceso de estos sea más sencillo y con menos riesgo para el rescatista, evitando el contacto y posibles lesiones durante el proceso de exploración, destinando solo el uso humano durante el trabajo de rescate. El proyecto será útil solamente en la exploración y búsqueda que sucede en los desastres naturales tales como los sismos, huracanes, tornados, desbordamiento de ríos, etc. Justificación. La Búsqueda y Rescate Urbano (US&R, por sus siglas en inglés) consiste en localizar, rescatar y estabilizar inicialmente a la víctimas atrapadas en espacios confinados. En los colapsos de estructuras frecuentemente ocasiona que las victimas estén atrapadas. También las victimas pueden quedar atrapadas en accidentes de transportación, minas y colapsos de trincheras. La búsqueda y rescate urbano está considerado como una disciplina de “muchos riesgos”, ya que puede ser necesitado en diferentes emergencias o desastres incluyendo, terremotos, huracanes, ciclones, tormentas, tornados, inundaciones, fallo de represas, accidentes tecnológicos, actividades terroristas y encaso de emisión de materiales peligrosos. Los eventos puede que sean lentos en su desarrollo como los huracanes o rápidos como los terremotos. El rescate urbano es considerado un actividad de alto riesgo por la exposición a todos los materiales y elementos a los que se expone el rescatista sobre todo al momento de realizar misiones de exploración y búsqueda. Delimitaciones y limitaciones. El proyecto de AGV se enfoca en la implementación de un carro autónomo capaz de dirigirse por sí mismo de una ubicación actual determinada a un destino o punto de reunión con el hecho de decirle la ubicación del destino mediante un GPS conectado a él sin la necesidad de tener un conductor que lo guíe. Las limitantes que presenta el proyecto del AVG son los trayectos de su recorrido, ya que no pueden ser demasiado complejos porque el AVG no es lo suficientemente robusto como para auto dirigirse por cualquier camino. Otra limitante son los mapas que se tengan cargado a su GPS, ya que se deben tener lo actualizados lo más que se puedan porque las ubicaciones y direcciones de lugares pueden cambiar conforme el tiempo y un mapa desactualizado impediría que el AGV llegue a su destino. Impacto social, tecnológico y ambiental. El proyecto del AGV tiene beneficios significativos en la sociedad en la que vivimos ya que implementa la total automatización de un vehículo, el cual puede ser utilizado desde en el área de mensajería para paquetes pequeños, en labores de búsqueda y rescate o para analizar terrenos peligrosos en los que se pone en riesgo la vida humana. En el área tecnológica entra en una nueva etapa de automatización al hacer independiente el manejo y control del móvil de un conductor, lo cual es algo que aún está en fase de investigación y tiene mucho potencial. En cuestión ambiental, al ser un vehículo eléctrico, se reduce la contaminación por emisión de gas combustible que beneficia a la conservación del ambiente, tener aire limpio, contribuye a parar el efecto invernadero y el calentamiento global. Cronograma de actividades. CRONOGRAMA ACTIVIDAD MES 1 MES 2 MES 3 MES 4 MES 5 MES 6 Planeación del proyecto x x Diseño de prototipo x x X Construcción del AVG x x x x Prueba de hardware Programación x x x x x x Prueba de software x x x Prueba conjunta x x x Puesta en marcha x Capítulo I. 1. Principios teóricos. El proyecto AGV al ser un diseño totalmente electrónico requiere de la implementación de componentes tanto digitales como analógicos, que trabajando en conjunto constituyen al prototipo. Los vehículos auto guiados ayudan a reducir los costos de manufactura así como también incrementa la eficiencia de ésta. Los vehículos AGV pueden ser programados para realizar diversas actividades, como son: descargar pequeños camiones que contengan cajas a las que se pueden enganchar automáticamente, pueden ser también usados para mover objetos pesados o productos terminados. Los dispositivos y software necesarios para la construcción de un AGV se mencionan a continuación. 1.1 Brújula Electrónica. La brújula electrónica es un sensor de doble eje del campo magnético. El dispositivo de detección en el módulo de la brújula es un chip. Un regulador integrado y un resistor de protección, hacen que el chip de 3 voltios sea compatible con 5 voltios, compatible con cualquier micro controlador, que están diseñados para una comunicación serie síncrona (SPI) [11]. A) Características: • Sensible a variaciones de microteslas (uT) en la intensidad del campo magnético. • Simplifica la dirección mediante la resolución de las mediciones del campo magnético en dos ejes. • Resolución de mediciones de 6 bits después de una calibración por software. • Sólo requiere de 30 a 40 ms entre la medición inicial y el arrojamiento de datos. B) Aplicaciones: • Robot móvil con sensor de dirección. • Brújula electrónica para Automóvil. Figura 1. Brújula electrónica. 1.2 GPS (Global Positioning System). El Global Positioning System (GPS) o Sistema de Posicionamiento Global es un Sistema Global de Navegación por Satélite que permite determinar en todo el mundo la posición de un objeto, una persona, un vehículo o una nave, con una precisión hasta de centímetros, usando GPS diferencial, aunque lo habitual son unos pocos metros. Este sistema funciona mediante una red de 27 satélites, de los cuales 24 son operativos y otros 3 son de respaldo en órbita sobre el globo terráqueo, a una distancia de 20,000 km, con trayectorias sincronizadas para cubrir toda la superficie de la Tierra. Para determinar una posición establecida, el receptor localiza de manera automática por lo menos 3 satélites de la red, los cuales envían señales para indicar la posición y el reloj de cada uno de ellos. Con base en estas señales, el módulo sincroniza el reloj del GPS y calcula el tiempo de retraso de las señales, y con esto, la distancia del GPS al satélite. El dispositivo se encarga de los procesos de triangulación para determinar la posición de éste. Esta triangulación consiste en averiguar el ángulo respecto de puntos conocidos, se basa en determinar la distancia de cada satélite respecto al punto de medición. El principio matemático de la triangulación permite establecer el punto sobre la Tierra sobre el cual estamos situados. Para ello será necesario conocer la distancia que nos separa de tres puntos de ubicación conocida y trazar tres círculos, cuyos radios (r) se corresponden con esas distancias. Supongamos que nos encontramos situados en un punto desconocido, cerca de otro al que llamaremos “A”, cuyo radio es (r); al doble de esa distancia (2r) está situado el punto “B” y al triple de la distancia (3r) el punto “C”. Si trazamos sobre un mapa de la zona tres circunferencias, tomando como centro los puntos A, B y C, como valor de sus radios las distancias a escala reducida que nos separa del centro de cada círculo, el punto donde se cortan las circunferencias será el lugar donde nos encontramos situados[9]. El Sistema Global de Navegación por Satélite lo componen: A) Sistema de satélites. Está formado por 24 unidades con trayectorias sincronizadas para cubrir toda la superficie del globo terráqueo. Más concretamente, repartidos en 6 planos orbitales de 4 satélites cada uno. La energía eléctrica que requieren para su funcionamiento la adquieren a partir de dos paneles compuestos de celdas solares adosados a sus costados. B) Estaciones terrestres. Envían información de control a los satélites para controlar las órbitas y realizar el mantenimiento de toda la constelación. C) Terminales receptores: Indican la posición en la que están; conocidas también como Unidades GPS, son las que podemos adquirir en las tiendas especializadas. D) El Segmento espacial: • Satélites en la constelación: 24 (4 X 6 órbitas) E) Altitud: 20.200 km F) Período: 11 h 56 min G) Inclinación: 55 grados (respecto al ecuador terrestre). H) Vida útil: 7,5 años I) Señal RF [23] Frecuencia portadora: • Civil - 1575.42 MHz (L1). Utiliza el Código de Adquisición Aproximativa (C/A) • Militar – 1227.60 MHz (L2). Utiliza el Código de Precisión (P). J) Nivel de potencia de la señal: -160 dBW (en superficie tierra) K) Exactitud • Posición: aproximadamente 15 m (el 95%) L) Hora: 1 ns M) Cobertura: mundial N) Capacidad de usuarios: ilimitada O) Sistema de coordenadas: • Sistema Geodésico Mundial 1984 (WGS84) P) Centrado en la Tierra, fijo. Figura 2. Módulo GPS. 1.3 Puente H (Driver). Puente H: Circuito para controlar motores de corriente continua. El nombre se refiere a la posición en que quedan los transistores o RELAY’s en el diagrama del circuito. El término "puente H" proviene de la típica representación gráfica del circuito. Esto se construye con 4 interruptores (mecánicos figura 09, o transistores figura 10). Cuando los interruptores S1 y S4 están cerrados y S2 y S3 abiertos, se aplica una tensión positiva en el motor, haciéndolo girar en un sentido y viceversa. Figura 3. Puente H creado con Relay’s. El problema de aplicar una corriente directa, radica en que se aplica una tensión continua, esto genera que la potencia aplicada en el motor sea la máxima, para poder controlar la velocidad del motor, existe una solución electrónica que se llama control por Regulación de Ancho de Pulso (PWM, Pulse-Width-Modulated, en inglés). En lugar de aplicar una corriente directa continua, se produce un corte de la señal en pulsos, a los que se les regula el ancho, permitiendo así, que el flujo de la corriente sea solo por intervalos de tiempo, obteniendo de esta manera, la regulación la velocidad de un motor DC por medio de una modulación por ancho de pulso[18]. 1.4 Microcontrolador. Un microcontrolador es un circuito integrado programable, capaz de ejecutar las órdenes grabadas en su memoria. Está compuesto de varios bloques funcionales, los cuales cumplen una tarea específica. Un microcontrolador incluye en su interior las tres principales unidades funcionales de una computadora: unidad central de procesamiento, memoria y periféricos de entrada/salida. Algunos microcontroladores pueden utilizar palabras de cuatro bits y funcionan a velocidad de reloj con frecuencias tan bajas como 4 kHz, con un consumo de baja potencia. Por lo general, tendrá la capacidad para mantener la funcionalidad a la espera de un evento como pulsar un botón o de otra interrupción, el consumo de energía durante el sueño puede ser sólo nanovatios, lo que hace que muchos de ellos muy adecuados para aplicaciones con batería de larga duración. Otros microcontroladores pueden servir para roles de rendimiento crítico, donde sea necesario actuar más como un procesador digital de señal (DSP), con velocidades de reloj y consumo de energía más altos. Cuando es fabricado, el microcontrolador no contiene datos en la memoria ROM. Para que pueda controlar algún proceso es necesario generar o crear y luego grabar en la EEPROM o equivalente del microcontrolador algún programa, el cual puede ser escrito en lenguaje ensamblador u otro lenguaje para microcontroladores; sin embargo, para que el programa pueda ser grabado en la memoria del microcontrolador, debe ser codificado en sistema numérico hexadecimal que es finalmente el sistema que hace trabajar al microcontrolador cuando éste es alimentado con el voltaje adecuado y asociado a dispositivos analógicos y discretos para su funcionamiento[19]. Figura 4. Ejemplo de micro controlador con tarjeta. 1.4 Software de Programación Visual. La programación visual brinda los conocimientos necesarios para diseñar y desarrollar aplicaciones con un entorno visual amigable y fácil de utilizar para el usuario. Tienden a facilitar la tarea de los programadores, dado que con los primeros lenguajes de programación crear una ventana era tarea de meses de desarrollo y de un equipo de trabajo. Define los programas en términos de clases de objetos, objetos que son entidades que combinan estado, comportamiento e identidad. La programación orientada a objetos expresa un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. La técnica de programación orientada a objetos, se basa en fundamentos de diseño, técnicas y metodologías unificadas (UML). Es un lenguaje de programación y entorno de desarrollo integrado de fácil utilización, y que sirve como medio para la enseñanza y producción de proyectos multimedia e interactivos de diseño digital. Ha promovido la alfabetización de software dentro de las artes visuales y la alfabetización visual dentro de la tecnología. Inicialmente creado para servir como un cuaderno de bocetos de software y para enseñar los fundamentos de programación de computadoras dentro de un contexto visual, se ha convertido en una herramienta de desarrollo para los profesionales. Hoy en día, hay decenas de miles de estudiantes, artistas, diseñadores, investigadores y aficionados que utilizan este tipo de software para el aprendizaje, creación de prototipos y producción[6]. Figura 5. Logotipo de programa visual. Capítulo II. 2. Antecedentes y causas del problema. Un vehículo guiado automáticamente o AGV (Authomatic Guided Vehicle, siglas en inglés) es un robot capacitado para moverse de forma autónoma en un entorno determinado, realizando tareas como el transporte de objetos pesados o la manipulación y recolección de muestras, evitando la colisión con los demás elementos que le rodean. Un AGV consiste principalmente en una plataforma con ruedas con un microprocesador incorporado y una fuente de alimentación propia, que es capaz de moverse por sí misma, y recibe órdenes de una unidad de control. Los vehículos auto guiados ayudan a reducir los costos de manufactura así como también incrementa la eficiencia de ésta. Los vehículos AGV pueden ser programados para realizar diversas actividades, como son: descargar pequeños camiones que contengan cajas a las que se pueden enganchar automáticamente, pueden ser también usados para mover objetos pesados o productos terminados. Los AGV pueden realizar diversos tipos de actividades como colocar objetos en una superficie plana (cama), colocar y quitar objetos de una banda movible, es posible adaptarle diferentes tipos de pinzas según la conveniencia del usuario, etc. En los hospitales resultan bastante útiles, pues son ideales para el transporte de documentación o medicinas. Un AGV también es llamado LGV (laser guided vehicle), o SGV (self-guided vehicle), según la manera en que las instrucciones le sean dadas de las rutas que queremos que tome. El primer AGV en el Mercado fue en los 1950’s por Barret Electronics of Northbrook, Illinois, y era una simple camioneta-remolque que seguía un cable en el piso en vez de una riel. Con el transcurso del tiempo la tecnología se ha ido sofisticando y hoy los AGV pueden ser guiados por medio de láser, GPS, cintas magnéticas, entre otros. Una de las grandes ventajas que tienen dichos sistemas es la intercomunicación entre estos equipos, el poder intercomunicar los AVG’s permite asegurar que los procesos se están llevando a cabo a la perfección, y se mejore la calidad de producción en una empresa ahorrando problemas con todo lo que implica tener más personas empleadas realizando el mismo trabajo. La implementación de los sistemas AGV’s en la industria es de vital importancia, como lo es en la empresa ARTISTERIL en colaboración con DS AUTOMOTION, realizó el transporte interior de contenedores para el proceso productivo del nuevo Audi Q3, implementando un sistema de transporte robotizado mediante una flota de vehículos guiados automáticamente tipo AGV[20]. Existen proyectos similares al AGV, que tienen o cumplen con la idea principal de funcionamiento, un dispositivo capaz de auto guiarse de un punto de origen a otro de destino; teniendo ciertas variaciones y diferencias en el diseño y construcción del prototipo. Algunos de estos proyectos se mencionan a continuación. 2.1 Robot Peatón Obelix. Obelix es un robot que hace las compras, guía a los turistas o ayuda a empujar el cochecito de niños. Sus diseñadores europeos lo califican de novedad mundial y plantean la siguiente cuestión: ¿no le alcanza el tiempo para hacer las compras o un pedido? Sus diseñadores comentan que esto se ha vuelto una escena cotidiana en la vida de muchas personas en las grandes urbes. Estudiantes de informática de diferentes universidades de Alemania, Gran Bretaña, Bélgica y Suiza idearon una solución a ese problema. El día 21 de agosto de 2012, después de tres años de investigación, el equipo presentó su resultado: Obelix, un robot del tamaño de una persona adulta, con un peso de 100 kilogramos, sobre cuatro ruedas. Las calles del centro de la ciudad alemana de Friburgo sirvieron para las primeras pruebas de Obelix en público. Sin problemas, el robot pasó su prueba práctica recorriendo un trayecto de cuatro kilómetros en un tiempo de una hora y media. No necesita de ayuda adicional, Obelix se abre camino por sí solo, busca las rutas y explora el centro de las ciudades sin retroceder ante las masas de pasantes. Además, esta máquina inteligente reconoce obstáculos para evitarlos. Sobre sus cuatro ruedas parece moverse como un peatón, pero, a diferencia de los humanos, su batería necesita ser recargada cada ocho horas. Esta novedad robótica tuvo un costo de más de seis millones de euros. Tres estudiantes de informática, Bastian Steder, Rainer Kümmerle y Michael Rühmke, supervisaron la primera aparición en público de Obelix. Bajo la dirección de la Universidad Albert Ludwig de Friburgo, los tres jóvenes ayudaron a desarrollar el robot. En Alemania, también cooperó la Escuela Superior Técnica de Aquisgrán. Obelix encuentra por sí solo el camino indicado, desde el principio hasta la meta, por medio de sensores láser hace varios escaneos tridimensionales de su entorno por segundo. Así, va acumulando y guardando las informaciones de sus alrededores para planear otras rutas. Figura 6. Robot peatón Obelix. En el futuro, robots como Obelix podrían ser, sobre todo, de gran ayuda para las personas mayores o para personas en silla de ruedas. Sin embargo, pocos tendrían los recursos para mantener una máquina servidora tan especializada. Obelix aún no está listo para el mercado, el mayor problema son los altos costos de producción. Para construir un robot como Obelix, actualmente se tendrían que invertir alrededor de 125.000 euros. Un costo demasiado alto para las ventas de consumo masivo. También quedan por resolverse algunos problemas legales como prevenir su robo o hacerse cargo de los daños que llegase a causar. Obelix aún no reconoce los semáforos rojos y no puede subir peldaños de una altura mayor de tres centímetros[21]. 2.2 Curiosity Rover. Mars Science Laboratory (MSL), conocido popularmente como Curiosity, es el más sofisticado vehículo explorador desarrollado por la NASA. MSL dio sus primeros pasos tras su aprobación en 2004, luego del rotundo éxito de los vehículos exploradores Spirit y Opportunity. De inmediato, se definió que debía ser el laboratorio móvil más capacitado jamás construido, superando por mucho la capacidad de adaptación, análisis, movimiento y acceso de los anteriores vehículos exploradores de Marte. Figura 7. Robot curiosity NASA. Características del Rover. Curiosity presenta una longitud de 3 metros y un ancho de 2,8 metros. La altura máxima del vehículo es de 2,2 metros, equipado además, con un brazo robótico de 2,1 metros de largo. El rover, se moviliza sobre seis ruedas de 50 centímetros de diámetro y cada una de ellas posee un motor eléctrico independiente, facultadas para superar con total seguridad obstáculos de hasta 65 centímetros de altura. Un elemento de vital importancia en la estructura de MSL Curiosity, es su soporte de energía, basado en un generador termoeléctrico de radioisótopos de tipo MMRTG capaz de generar calor para superar las bajísimas temperaturas de la superficie marciana y entregar además, 123 W de potencia eléctrica con 28 V de corriente continua. El MMRTG tiene una vida útil estimada en 14 años y si bien no alimenta directamente a los sistemas de la nave, si debe recargar permanentemente dos baterías de ion-litio. Figura 8. Familia de robots Rover. Instrumentos científicos del MSL. El vehículo explorador, cuenta con 10 instrumentos científicos (los más avanzados jamás enviados al planeta rojo), incluyendo, espectrómetros y analizadores, detectores de radiación y sensores ambientales. Estos equipos, están especialmente orientados a determinar si el planeta Marte fue, o si aún posee características que permitan soportar la vida microbiana. Particularmente el instrumental de Curiosity, deberá determinar la naturaleza y el tipo de compuestos orgánicos en Marte e identificar estructuras que podrían ser resultado de procesos biológicos. También se desarrollaran estudios geológicos y geoquímicos, se estudiaran procesos de evolución planetaria, especialmente determinar el estado actual, la distribución y el ciclo del agua y el dióxido de carbono en Marte y por último, analizar la radiación en superficie. Curiosity está equipado con 4 cámaras científicas denominadas: MastCam y ChemCam ambas ubicadas en el mástil, la cámara MAHLI incorporada al brazo robótico y la cámara de descenso MARDI. A estas se suman otras 6 cámaras, 4 de ellas denominadas cámaras de ingeniería Hazcams montadas en el cuerpo del rover al frente y atrás, permitiendo obtener imágenes en 3D y dos cámaras de ingeniería Navcams, montadas en el mástil para conseguir panorámicas e imágenes en 3D que permitan observar con rapidez el entorno[22]. Figura 9. Estructura del Curiosity. La desventaja que presenta el Rover es que al ser un robot muy ambicioso y demasiado sofisticado en su estructura y componentes, su precio de construcción es demasiado elevado, permitiendo que solo sea posible usarlo en aplicaciones de investigación y no poder comercializarlo. 2.3 Taxis inteligentes. El gobierno de Singapur colecta la cantidad masiva de datos tanto de los sensores móviles, como estacionarios a la escala de toda la ciudad. Colaborando con la Singapore-MIT Alliance for Research and Technology (SMART), se ha desarrollado una plataforma abierta para terceras personas para acceder, segmentar y categorizar datos, así como combinarlos con los datos GPS relacionados con taxis. SMART ha publicado una serie de visualizaciones de datos, a menudo descritos como “un bucle de feedback (o realimentación) entre las personas, sus acciones y la ciudad” que ayudan a Singapur a organizarse. Uno de los resultados prácticos fue la habilidad de diseñar calles con más sensibilidad, así como crear aplicaciones de software prácticas que ayudan a la gente a coger taxis. Proporcionando una plataforma de software abierta dio, a su vez, a los desarrolladores de las aplicaciones, la gran posibilidad de utilizar la Geometría taxicab para crear el diseño inteligente de los servicios de taxi. Este virtuoso bucle de información puede ser recordado como una piedra angular en los próximos años, cuando lleguemos al punto de navegación sin conductor. Matemáticas de taxi. Geometría taxicab es una forma de geometría en la que la distancia entre los dos puntos A y B es la suma de las diferencias absolutas de sus coordinados, y NO la longitud del segmento de línea AB, tal y como se expresa en la geometría Euclideana. La Geometría taxicab se expresa en la siguiente formula: AP + PB = |x2 – x1| + |y2 – y1| Figura 10. Matemáticas del taxi inteligente. Cabe notar, que en la geometría Euclideana hay un segmento de línea con una longitud. En la Geometría taxicab hay varios segmentos de líneas con una longitud. La cuadricula representa la red de calles por las que el conductor de taxi tiene que navegar. Notablemente, el conductor de taxi, empezando desde el punto A, puede coger distintas pistas exactamente de la misma longitud, si está continuamente acercándose al punto de destino B. Múltiples líneas al mismo destino pueden tener la misma longitud y se conoce como la línea Taxicab, o línea T. La figura de la derecha muestra un ejemplo de líneas T equidistantes utilizados en los cálculos de aplicaciones de taxi. Figura 11. Ruta de planeación. Singapur alienta enfoques analíticos a las empresas que creen soluciones para ayudar en la gestión de aproximadamente 23 000 taxis que hacen alrededor de 588 632 viajes diarios. Estas empresas privadas colectan, separan y presentan los datos sobre taxis en tiempo real para que así la gente y las empresas puedan utilizarlos para moverlos en la ciudad de manera eficiente como se contrae y expande el tráfico. Un grupo incluso ha desarrollado un mapa isocrónica en el que las figuras tridimensionales informan cada hora y a base diaria del tiempo de viaje más corto de todos los puntos de Singapur a otro. Este y otros mapas, pronto pueden ser integrados en empresas de taxi para enviar más taxis a las zonas en las que sea probable que se aumente la demanda basado en otros datos, como horarios de conferencias o factores climáticos. Singapur y Google, un futuro sin conductor. La misión de Google es organizar la información mundial, y la información de navegación es sin duda parte de la mezcla, y va a destinar una inversión sin precedentes en el desarrollo de la inteligencia artificial necesaria para un futuro sin conductor. Sebastian Thrun de Google, en colaboración con el Laboratorio de Inteligencia Artificial de la Universidad de Stanford está liderando un proyecto en el cual los coches están equipados con sensores, cámaras y escáneres láser que habilitan un sentido de lo que está ocurriendo en esos eclipses que el humano podría lograr. La visión de Google incluye la colección de datos de las rutas específicas por el humano conduciendo el coche. Esto es solamente la mitad del puzzle que debe ser resuelto para tener verdaderamente coches sin conductores que harían mucho más eficiente nuestro transporte automotor. La hipótesis es que si un coche inteligente se comunica con una red inteligente de semáforos, cabinas de peaje y la señalización digital, la velocidad del conocimiento acumulado sería mucho más rápida. Al transmitir los datos desde los coches inteligentes a la red, la inteligencia de la misma va a crecer exponencialmente, y como la red se hace más consciente de lo que están haciendo los conductores, pueden transitar las instrucciones más inteligentes al coche sin conductor para así ampliar el impacto de la Geometria Taxicab. Una vez que tanto la red, como los coches se vuelvan más inteligentes al ritmo geométrico, la comunicación con los humanos sobre lo que está ocurriendo será mucho más matizada, permitiendo de esta manera, hablar con la ciudad y coches[23]. Esta es una realidad en varios países además de Singapur, pero al estar aun comenzando su implementación hace que la inversión actual y futura sea muy costosa y poco conocida por la población. De modo que la tecnología aplicada a este proyecto es muy extensa y compleja, lo cual hace que se requiera demasiado tiempo e inversión para ponerlo en marcha en su totalidad. Capítulo III 3. Presentación del proyecto. Mediante todo el proceso de transformación de una idea, de su materialización en realidades y la peculiaridad que se ha tenido; se mostrará de manera general el funcionamiento del AGV (vehículo automáticamente guiado). Cabe mencionar que la unidad elemental de cualquier proyecto es la máquina, como conjunto de elementos, cuyo diseño presenta características particulares, objeto de disciplinas específicas y con un marcado contenido tecnológico. Cualquier combinación de dichas unidades elementales va conformando sistemas de orden superior, de complejidad creciente y así se pase de los procesos de construcción a los proyectos de inversión. Recordando la definición de proyecto en lo que se refiere a la transformación de ideas en realidades industriales, el eje principal es establecer criterios, técnicas y procedimientos para convertir la idea de producir cualquier bien industrial en la realidad de una organización, habitualmente empresarial, que lo fabrique y venda [24]. 3.1 Variables de entrada y salida. El presente proyecto consiste en la construcción de un vehículo auto guiado, como variables de entrada contará con un módulo GPS para recibir coordenadas de posición actual y de destino. A su vez igual tendrá una brújula electrónica para la orientación de sí mismo antes y durante su trayecto. Las variables de salida encargadas del movimiento constan en parte por un puente H que se encarga de controlar el motor de las ruedas traseras. La otra parte consta de un servo motor cuya función es manejar el sentido en el que se mueve el eje de las ruedas delanteras. Los encargados de realizar todo el procesamiento de datos de entrada y salida son, respectivamente, un micro controlador y una tarjeta maestra. Todo esto se colocara en el chasís de un carro de juguete. 3.2 Diagrama a bloques. Datos de Entrada GPS Brújula Electrónica Adquisición de Datos Micro controlador Procesamiento de datos Tarjeta Maestra Control Puente H de Motor Servo Motor Motor Datos de Salida Figura 12. Diagrama a bloques del funcionamiento en general. 3.3 Resumen de cada bloque. 3.3.1 Datos de entrada. Este bloque está conformado por el módulo GPS y la brújula electrónica. El módulo GPS es el encargado de adquirir y enviar las coordenadas al micro controlador para que el AGV pueda saber su punto de inicio y su punto de destino. La brújula electrónica tiene la función de orientar al vehículo con respecto a los puntos cardinales y así darle la pauta de ubicación. 3.3.2 Adquisición de datos. La parte de la adquisición de datos está a cargo del micro controlador. Éste tiene la función de filtrar los datos que le envía el módulo GPS y quedarse solo con una de las tramas de información que está recibiendo para que se pueda enviar al siguiente proceso. Al mismo tiempo recibe información por parte de la brújula electrónica. Esta información la almacena y la envía a la tarjeta maestra. 3.3.3 Procesamiento de datos. Esta etapa es la más importante de todos los bloques. Está función está a cargo de una tarjeta maestra en la cual se encuentra el algoritmo de búsqueda. Este algoritmo una vez que recibe los datos del micro controlador se encarga de procesarlos mediante el programa contenido en ella para que así el AGV se pueda dirigir a su destino. Es el cerebro de todo el proyecto. 3.3.4 Control de motor. Consta de un puente H, el cual es controlado de acuerdo al procesamiento que haga la tarjeta madre. Esta le envía datos al puente H para decirle cuando debe trabajar o detenerse. Este dispositivo controla a un único motor para mover las dos ruedas traseras del chasís del AGV. 3.3.5 Datos de salida. En esta etapa se encuentran los dos motores que incluye el prototipo. Uno de estos es un servo motor controlado por la tarjeta madre y es el encargado de guiar el movimiento del eje de las dos ruedas delanteras para poder dar vuelta a la derecha o izquierda. Por último se encuentra el motor de las dos ruedas traseras que se encarga de hacer que el AGV avance o detenga, este motor lo controla el puente H. 3.4 Diseño. 3.4.1 Justificación del hardware. 3.4.1.1 GPS Receiver A1035-H (Global Positioning System). En general todos los módulos GPS funcionan de la misma manera, que es enviando tramas de información mediante NMEA. Para este proyecto en específico se decidió emplear el módulo A1035H de Vincotech ya que esta versión de GPS viene incluida en su kit de evaluación donde ya viene integrado el módulo y cuenta con las terminales de conexión necesarias al igual de botones de apagado/encendido y de reseteo. Todo esto facilita el manejo tanto para hacer las conexiones como para su prueba de funcionamiento y es por esto que se optó por este modelo. El Global Positioning System (GPS) o Sistema de Posicionamiento Global A1035H es un Sistema Global de Navegación por Satélite que permite determinar en todo el mundo la posición de un objeto, una persona, un vehículo o una nave, con una precisión hasta de centímetros, usando GPS diferencial, aunque lo habitual son unos pocos metros. Este sistema funciona mediante una red de 27 satélites, de los cuales 24 son operativos y otros 3 son de respaldo en órbita sobre el globo terráqueo, a una distancia de 20,000 km, con trayectorias sincronizadas para cubrir toda la superficie de la Tierra. Para determinar una posición establecida, el receptor localiza de manera automática por lo menos 3 satélites de la red, los cuales envían señales para indicar la posición y el reloj de cada uno de ellos. Con base en estas señales, el módulo sincroniza el reloj del GPS y calcula el tiempo de retraso de las señales, y con esto, la distancia del GPS al satélite. El dispositivo se encarga de los procesos de triangulación para determinar la posición de éste. Esta triangulación consiste en averiguar el ángulo respecto de puntos conocidos, se basa en determinar la distancia de cada satélite respecto al punto de medición[9]. El principio matemático de la triangulación permite establecer el punto sobre la Tierra sobre el cual estamos situados. Para ello será necesario conocer la distancia que nos separa de tres puntos de ubicación conocida y trazar tres círculos, cuyos radios (r) se corresponden con esas distancias. Conocidas las distancias, se determina fácilmente la propia posición relativa respecto a los tres satélites. Conociendo además las coordenadas o posición de cada uno de ellos por la señal que emiten, se obtiene la posición absoluta o las coordenadas reales del punto de medición. También se consigue una exactitud extrema en el reloj del GPS, similar a la de los relojes atómicos que llevan a bordo cada uno de los satélites[8]. Maneja el protocolo de comunicación RS232, por lo que realizar una conexión entre el kit de evaluación y cualquier micro controlador resulta muy sencillo, práctico y útil, ya que mientras el GPS transmite el micro controlador solo debe recibir y viceversa. Figura 13. Kit de evaluación GPS Receiver A1035H. Características del kit de evaluación. El EVA1035-H tiene dos botones: • NRST (REINICIAR) • ON_OFF El botón NRST se utiliza para obtener un reinicio completo del módulo GPS. Todos los parámetros se almacenan en la memoria no volátil. Después de pulsar este botón, el módulo comienza de nuevo desde el principio. El botón ON_OFF pone el receptor GPS A1035-H en estado de hibernación si está en y despertar si se encuentra en estado de suspensión. Durante el estado de suspensión el receptor extrae típicamente 20μA y mantiene RTC y SRAM. El A1035-H es compatible con dos entradas de antena: • La antena instalada en los módulos. • El conector de antena "de la antena externa" conduce al pin 8 del receptor GPS A1035-H que soporta antenas GPS activas. Hay 6 LEDs en el EVA1035-H que indican diferentes señales desde el receptor GPS (orden de LEDs en EVA1035-H, de izquierda a derecha): Figura 14. LED´s que contiene el kit de evaluación. La placa de demostración EVA1035-H ofrece la posibilidad de implementar el módulo receptor GPS A1035-H temporalmente en su diseño utilizando el bloque de terminales con 9 conexiones[10]. Figura 15. Terminales del A1035H. Configuración de los interruptores DIP. Figura 16. Interruptores DIP del GPS. Puerto NMEA. • Ajuste por defecto: 4800 baudios, 8 bits de datos, sin paridad, 1 bit de parada, sin control de flujo! • Estándar NMEA-0183 de NMEA, seleccionar la velocidad de transmisión. • Conectores USB estándar Esquema. Figura 17. Esquema eléctrico del A1035H. 3.4.1.2 Brújula (Hitachi® HM55B Compass Module). En este proyecto se maneja la brújula electrónica HM55B por razones prácticas, ya que para esta brújula en específico existe la librería de configuración, calibración y comunicación en el IDE Arduino. Esta librería viene incluida en el software, lo cual resulta práctico debido a que se empleara el micro controlador de Arduino para la adquisición de los datos que envía. El módulo de brújula Hitachi HM55B es un sensor de doble eje del campo magnético. El dispositivo de detección en el módulo de la brújula es el chip Hitachi HM55B. Un regulador integrado y un resistor de protección, hacen que el chip de 3 voltios HM55B sea compatible con 5 voltios, compatible con cualquier micro controlador, operando en sus niveles lógicos de señal. La adquisición de las mediciones del módulo se realizan en el compilador PICBASIC Stamp 2 con los comandos SHIFTIN y SHIFTOUT, que están diseñados para una comunicación serie síncrona (SPI). Este dispositivo utiliza el puerto serie para comunicación con micro controladores u otros dispositivos, es decir, se controla y envía información mediante el protocolo RS232, mediante esto se le puede decir cuando funcionar o detenerse enviándole una secuencia de bits determinada[11]. Características: • Sensible a variaciones de micro teslas (uT) en la intensidad del campo magnético. • Simplifica la dirección mediante la resolución de las mediciones del campo magnético en dos ejes. • Resolución de mediciones de 6 bits después de una calibración por software. • Sólo requiere de 30 a 40 ms entre la medición inicial y el arrojamiento de datos. Aplicaciones: • Robot móvil con sensor de dirección. • Brújula electrónica para Automóvil. Figura 18. Brújula electrónica HM55B. Características. Especificaciones. Figura 19. Especificaciones del HM55B. Definiciones y puntuaciones Pin. Figura 20. Pines de conexión y definiciones. Diagrama de conexiones. Se recomienda el interfaz de 3 hilos para la mayoría de aplicaciones. Si bien todas las conexiones que se muestran aquí son de pins E / S individuales, el / EN pin es el único que necesita un dedicado pin de E / S. Los pasadores Din / Dout pueden compartir una línea con otros dispositivos serie síncronos, y del mismo modo con CLK[11]. Figura 21. Modo de conexión básico. Los pasadores Din y Dout no tienen que estar atados juntos, sino que también pueden ser controlados individualmente. Esto hace que sea posible compartir las líneas de comunicación con otros dispositivos seriales síncronas que han dedicado líneas de entrada y de salida. Figura 22. Modo de conexión alternativo. Conjunto de comandos. Estos comandos se desplazan de salida al módulo de brújula. Figura 23. Comandos para el HM55B. 3.4.1.3 Arduino Duemilanove. Se optó por este micro controlador en específico debido a la familiaridad con el lenguaje de programación. Su código de programación es claro y fácil de entender, lo que permite trabajar de una manera más eficiente y rápida. El Arduino Duemilanove ("2009") es una placa con microcontrolador basada en el ATmega168 o elATmega328. Tiene 14 pines con entradas/salidas digitales (6 de las cuales pueden ser usadas como salidas PWM), 6 entradas analógicas, un cristal oscilador a 16Mhz, conexión USB, entrada de alimentación, una cabecera ISCP, y un botón de reset. Contiene todo lo necesario para utilizar el micro controlador; simplemente es conectarlo al ordenador a través del cable USB o aliméntalo con un transformador o una batería para empezar a trabajar con él. "Duemilanove" significa 2009 en italiano que fue el año cuando salió al mercado. El Duemilanove es el más popular en dentro de las series de placas con USB[5]. Figura 24. Placa Arduino Duemilanove. Resumen de características de la placa Arduino. Micro controlador Voltaje ATmega368 (ATmega168 en versiones anteriores) de 5V funcionamiento Voltaje de entrada 7-12V (recomendado) Voltaje de entrada 6-20V (limite) Pines E/S digitales Pines de 14 (6 proporcionan salida PWM) entrada 6 analógica Intensidad por pin 40 mA Intensidad en pin 3.3V 50 mA Memoria Flash 16 KB (ATmega168) o 32 KB (ATmega328) de las cuales 2 KB las usa el gestor de arranque(bootloader) SRAM 1 KB (ATmega168) o 2 KB (ATmega328) EEPROM 512 bytes (ATmega168) o 1 KB (ATmega328) Velocidad de reloj 16 MHz 3.4.1.4 Servo Motor. Para el control del eje de las ruedas delanteras del AGV se utiliza un servo motor para manejar el sentido en el que se va a mover. El eje de las ruedas se mueve de cero a ciento ochenta grados de la misma manera que lo hace un servo motor, por lo que hace que éste sea el indicado para la función que se desea realizar. Un servomotor (también llamado servo) es un dispositivo similar a un motor de corriente continua que tiene la capacidad de ubicarse en cualquier posición dentro de su rango de operación, y mantenerse estable en dicha posición. Un servomotor es un motor eléctrico que puede ser controlado tanto en velocidad como en posición. Los servos se utilizan frecuentemente en sistemas de radio control y en robótica, pero su uso no está limitado a éstos. Es posible modificar un servomotor para obtener un motor de corriente continua que, si bien ya no tiene la capacidad de control del servo, conserva la fuerza, velocidad y baja inercia que caracteriza a estos dispositivos[25]. Características. Está conformado por un motor, una caja reductora y un circuito de control. También potencia proporcional para cargas mecánicas. Un servo, por consiguiente, tiene un consumo de energía reducido. La corriente que requiere depende del tamaño del servo. Normalmente el fabricante indica cuál es la corriente que consume. La corriente depende principalmente del par, y puede exceder un amperio si el servo está enclavado, pero no es muy alta si el servo está libre moviéndose. En otras palabras, un servomotor es un motor especial al que se ha añadido un sistema de control (tarjeta electrónica), un potenciómetro y un conjunto de engranajes. Con anterioridad los servomotores no permitían que el motor girara 360 grados, solo aproximadamente 180; sin embargo, hoy en día existen servomotores en los que puede ser controlada su posición y velocidad en los 360 grados. Los servomotores son comúnmente usados en modelismo como aviones, barcos, helicópteros y trenes para controlar de manera eficaz los sistemas motores y los de dirección [25]. El servo motor para su control cuenta con tres cables de conexión: alimentación, tierra y señal de control. Comúnmente estos cables traen un color específico para identificarlos con facilidad. Usualmente el cable de conexión es de color rojo, el de tierra de color negro y el de señal de control de color amarillo. Figura 25. Características del servo motor. Control. Los servomotores hacen uso de la modulación por ancho de pulsos (PWM) para controlar la dirección o posición de los motores de corriente continua. La mayoría trabaja en la frecuencia de los cincuenta hercios, así las señales PWM tendrán un periodo de veinte milisegundos. La electrónica dentro del servomotor responderá al ancho de la señal modulada. Si los circuitos dentro del servomotor reciben una señal de entre 0,5 a 1,4 milisegundos, éste se moverá en sentido horario; entre 1,6 a 2 milisegundos moverá el servomotor en sentido antihorario; 1,5 milisegundos representa un estado neutro para los servomotores estándares[25]. Figura 26. Modelo de servomotor. 3.4.1.5 Motor DC 12V. Este tipo de motor es el más común en robótica debido a su practicidad y precio. Es fácil de controlar y arroja buenos resultados al momento de la práctica. Este motor con reducción de 12V está especialmente indicado para su utilización en robots, ya que proporciona 120 revoluciones por minutos en vacío con un consumo de 60 mA. El eje del motor es de 6 mm y se acopla perfectamente con los diferentes casquillos y adaptadores de ruedas de robots. Existe un soporte de aluminio S360214 que facilita el montaje en cualquier superficie. Los engranajes metálicos proporcionan una robustez y gran fiabilidad de este motor en cualquier aplicación[26]. Un motor de corriente continua es una conmutación mecánica motor eléctrico alimentado por corriente directa (DC). El estator está fijo en el espacio, por definición, y por lo tanto la corriente en el rotor es conmutado por el conmutador para también ser estacionario en el espacio. Esto es cómo se mantiene el ángulo relativo entre el estator y el rotor de flujo magnético cerca de 90 grados, lo que genera el par máximo. Motores de corriente continua tienen una armadura giratoria de arrollamiento (devanado en el que se induce una tensión), pero no la rotación del campo magnético inducido y un campo estático de arrollamiento (devanado que producen el flujo magnético principal) o un imán permanente. Diferentes conexiones de campo y devanado de armadura proporcionar diferentes características de regulación de velocidad inherente / par. La velocidad de un motor de CC puede ser controlado cambiando el voltaje aplicado a la armadura o por el cambio de la corriente de campo. La introducción de la resistencia variable en el circuito de circuito de la armadura o del campo permitió el control de velocidad. Motores de corriente continua modernos son a menudo controlados por la electrónica de potencia sistemas llamados accionamientos de CC. Motores de corriente continua pueden operar directamente de las baterías recargables, que proporciona la fuerza motriz para los primeros vehículos eléctricos. Hoy en día los motores de CC aún se encuentran en aplicaciones tan pequeñas como juguetes y las unidades de disco, o en grandes tamaños para operar trenes de laminación de acero y las máquinas de papel[26]. Especificaciones. Figura 27. Especificaciones motor DC 12V. Dimensiones. Figura 28. Dimensiones motor DC 12V. 3.4.1.6 Puente H DRV8816. Como driver para el control del motor DC 12V se utiliza el puente H DRV8816. Debido a sus características y fácil acceso que se tuvo en su adquisición, se utiliza este dispositivo en este trabajo. El DRV8816 ofrece una solución versátil de conductor eléctrico con dos controladores de puente ½ -H independientes. El dispositivo puede conducir un motor con escobillas de CC o un devanado de un motor paso a paso, así como otros dispositivos como solenoides. Una simple interfaz INx / ENX permite una fácil comunicación al controlador circuitos. Las etapas de salida utilizan MOSFET de potencia del N- canal configurado como ½ - Hpuentes. El DRV8816 es capaz de corrientes de salida de pico de hasta ± 2.8 A y tensiones de servicio de hasta 38 V. Una bomba de carga interna genera tensiones de accionamiento de puerta necesarios. Se proporciona el modo de bajo consumo de energía, el cual desactiva los circuitos internos para lograr muy bajo consumo de corriente de reposo. Este modo de reposo se puede ajustar con un PIN exclusivo nSLEEP. Funciones de protección internas se determinan de conformidad con el bloqueo de tensión, fallo de la bomba de carga, protección contra la sobretensión, la protección a corto y suministro, la protección de corto a tierra, la advertencia de sobrecalentamiento, y la desconexión por sobre temperatura. Condiciones de fallo se indican por medio de un pasador nFault. El DRV8816 se empaqueta en un paquete de SOIC de 16 pines con PowerPAD ™ (Ecoamigable: RoHS y no Sb / Br) [7]. Características. • Baja resistencia (0,83 Ω) Salidas • Control del puente de ½-H Individuo • Modo de bajo consumo • 100% PWM Apoyado • 8,0-38 V operativo de suministro Rango de Voltaje • Monte térmicamente mejorado en superficie Paquete • Límite de sobrecorriente Configurable • Características de protección • VBB mínima tensión de bloqueo (UVLO) • Bomba de carga de mínima tensión (CPUV) • Protección contra sobrecorriente (OCP) • Short-to-Supply Protección (STS) • Corto a Tierra de Protección (STG) • Sobretemperatura de advertencia (OTW) • Desconexión por sobretemperatura (OTS) • Condición de fallo Indicación Pin (nFault) Figura 29. Puente H DRV8816. Funciones de las terminales del dispositivo. Figura 30. Terminales del DRV8816. Componentes externos. Figura 31. Componentes externos. Valores absolutos nominales máximos. Figura 32. Valores mínimos y máximos. Condiciones de funcionamiento recomendadas. Figura 33. Condiciones de funcionamiento. 3.4.2 Justificación de software. 3.4.2.1 IDE Arduino. El software utilizado para la etapa de adquisición de datos fue el IDE Arduino, el cual es un programa muy fácil de entender y utilizar. Sumado a esto se tiene la familiaridad con la que se cuenta para el manejo del programa, por lo que resultó en la mejor opción para el desarrollo del proyecto. El IDE Arduino facilita en varios aspectos la comunicación con el ordenador, otro Arduino u otros microcontroladores. Proporciona comunicación vía serie UART TTL (5V), disponible a través de los pines digitales 0(RX) y 1(TX). Un chip FTDI FT232RL integrado en la placa canaliza esta comunicación serie a través del USB y los drivers FTDI (incluidos en el software de Arduino) proporcionan un puerto serie virtual en el ordenador. El software incluye un monitor de puerto serie que permite enviar y recibir información textual de la placa Arduino. Los LEDS RX y TX de la placa parpadearan cuando se detecte comunicación transmitida través del chip FTDI y la conexión USB (no parpadearan si se usa la comunicación serie a través de los pines 0 y 1). La librería SoftwareSerial permite comunicación serie por cualquier par de pines digitales del Duemilanove[5]. También soporta la comunicación I2C (TWI) y SPI. El software de Arduino incluye una librería Wire para simplificar el uso el bus I2C. El Arduino Duemilanove se puede programar a través del software Arduino. Para esto se selecciona "Arduino Duemilanove w/ ATmega328" o "Arduino Diecimila or Duemilanove w/ ATmega168" del menu Tools > Board(dependiendo del microcontrolador de tu placa). El ATmega328 y el ATmega168 en las placas Arduino Duemilanove viene precargado con un gestor de arranque (bootloader) que permite cargar nuevo código sin necesidad de un programador por hardware externo. Se comunica utilizando el protocolo STK500 original. También te puedes saltar el gestor de arranque y programar directamente el micro controlador a través del puerto ISCP (In Circuit Serial Programming). 3.4.2.2 Software Processing. Para la programación del algoritmo de búsqueda se optó por emplear el software de Processing por su similitud con el software de Arduino, ya que se emplea código similar en la programación de ambos, esto facilita la comunicación entre ambos programas al mismo tiempo que se facilita el lenguaje porque Arduino está basado en Processing. Processing es un lenguaje de programación y entorno de desarrollo, ha promovido la alfabetización de software dentro de las artes visuales y la alfabetización visual dentro de la tecnología. Inicialmente creado para servir como un cuaderno de bocetos de software y para enseñar los fundamentos de programación de computadoras dentro de un contexto visual, evolucionó hasta convertirse en una herramienta de desarrollo para los profesionales. Hay decenas de miles de estudiantes, artistas, diseñadores, investigadores y aficionados que utilizan Processing para el aprendizaje, la creación de prototipos y producción. Es un lenguaje de programación y entorno de desarrollo integrado de código abierto basado en Java, de fácil utilización, y que sirve como medio para la enseñanza y producción de proyectos multimedia e interactivos de diseño digital. Al estar basado en Java, puede heredar todas sus funcionalidades, convirtiéndose en una herramienta poderosa a la hora de encarar proyectos complejos [6]. 3.5 Adquisición de datos. En esta etapa del sistema se emplea en primera instancia el GPS Receiver A1035H. Este módulo se encarga de realizar la triangulación vía satélite para obtener las coordenadas tanto de posición inicial como las de destino final del AGV. Para determinar una posición establecida, el receptor localiza de manera automática por lo menos 3 satélites de la red, los cuales envían señales para indicar la posición y el reloj de cada uno de ellos. Con base en estas señales, el módulo sincroniza el reloj del GPS y calcula el tiempo de retraso de las señales, y con esto, la distancia del GPS al satélite. El dispositivo se encarga de los procesos de triangulación para determinar la posición de éste. Esta triangulación consiste en averiguar el ángulo respecto de puntos conocidos, se basa en determinar la distancia de cada satélite respecto al punto de medición. Una vez que el GPS A1035H localiza las coordenadas de posición inicial del AGV, la brújula electrónica HM55B se encarga de posicionar el vehículo en los puntos cardinales correspondientes a los obtenidos por el GPS. La forma en que trabaja el HM55B es similar a una brújula convencional, utiliza como medio de funcionamiento el magnetismo terrestre. La manera en que se puede ubicar la brújula puede ser de dos formas, automáticamente o manualmente por medio de un micro controlador. En esta ocasión se usó la orientación automática, que a pesar de ser más tardada es la manera más práctica de trabajar con la brújula. La forma de realizar la conexión entre el Arduino Duemilanove y el kit de evaluación del GPS es muy sencilla. Para no realizar tanta conexión se alimenta el módulo GPS con las terminales de POWER que contiene la placa del Arduino, esto es conectar la terminal de 3.3V del Arduino con la terminal Vcc del kit de evaluación y las terminales GND de ambos dispositivos, con esto se tiene la correcta alimentación del GPS. Para realizar la comunicación entre ambos componentes, para este caso como solo se necesita recibir información del GPS, se conecta la terminal TX0 del kit de evaluación a la terminal digital siete, que en este caso fue la asignada para funcionar dentro del programa del Arduino para funcionar como RX. En la siguiente figura se muestra la conexión realizada. La comunicación entre el Arduino Duemilanove y el módulo GPS A1035H se realiza mediante el protocolo de comunicación RS232, esto resulta de mucha ayuda, ya que es la manera más sencilla de comunicar dos dispositivos entre sí. El protocolo RS232 es el más útil, sencillo y práctico ya que mientras uno de los dispositivos transmite información, Tx, el otro solo debe de encargarse de recibir lo que se le está enviando, Rx, y viceversa. Figura 34. Conexión Arduino-GPS. Ahora se establece la conexión entre el Arduino Duemilanove y la brújula electrónica HM55B, para esto se procede de la siguiente manera: los pines uno y dos de la brújula electrónica, que son los encargados de la comunicación serial, se puentean entre sí y se conectan al pin diez de la placa Arduino; el pin tres de la brújula, GND, se conecta a alguno de los dos pines GND que contiene el Arduino; el pin cuatro, CLK, del HM55B se conecta, en este caso, al pin ocho del Arduino; el pin cinco de la brújula, EN, va con el pin nueve del Arduino y para concluir la conexión el pin seis del HM55B va con el pin de 5V que incluye la placa Arduino. La comunicación entre ambos dispositivos se realiza mediante el puerto serie de la brújula electrónica, es decir, el Arduino lo controla enviándole una secuencia de bits para indicarle cuando funcionar o detenerse, viéndolo de otra manera, cuando debe enviar o recibir información. Figura 35. Conexión de la brújula electrónica. 3.6 Filtrado de información. Esta parte del proyecto corre a cargo del micro controlador Arduino Duemilanove. Esta placa es la encargada de realizar todo el proceso de filtrado de información que envían el GPS y la brújula electrónica. Este proceso se enfoca en extraer y analizar las tramas de datos que se reciben del GPS para filtrar dicha información; capturando la latitud y longitud para poder realizar el procesamiento de datos. El módulo GPS al utilizar el protocolo NMEA maneja diferentes tramas de información, cada una con información similar variando en ciertos datos específicos. Para este proyecto se filtrara la trama de GPGGA, que es la que contiene información más general y específica. Para poder realizar la comunicación entre el Arduino y el GPS se utiliza el modo normal de conexión que es cruzando las terminales Tx y Rx de ambos dispositivos, porque mientras uno envía información el otro debe de recibir esa información. Para poder comunicar a los dispositivos se requiere realizar un programa que nos permita llevar a cabo esto. El programa debe de consistir en la comunicación entre el Arduino y el GPS, el filtrado de las tramas para solo quedarse con la GPGGA, adquirir la latitud y longitud de la trama y por ultimo enviar estos datos a la tarjeta maestra. En conjunto con lo antes mencionado se debe integrar en el mismo código de programación la librería del HM55B para poder realizar la configuración automática del mismo y así poder comunicarse con él. Dicha librería viene incluida en el IDE Arduino, así que solo se agrega desde el sketch, por lo que el programa ahora realizara la comunicación con el GPS y la brújula electrónica. El funcionamiento del programa en el IDE Arduino se basa en el siguiente diagrama de flujo. Para facilitar la comprensión del diagrama de flujo hay que tener presente que el comando PCH hace referencia a un puntero en el cual se guardan caracteres y el CHAR se usa para declarar una serie de caracteres o letras. El GPGGA es uno de los protocolos NMEA que maneja el GPS para transmitir información. Figura 36. Diagrama de flujo del programa. 3.7 Procesamiento de datos. El bloque del procesamiento de datos, al igual de la etapa de adquisición de información, está constituido por un micro controlador Arduino Duemilanove, solo que en este caso contiene el algoritmo de path finding A*. Este algoritmo encuentra, siempre y cuando se cumplan unas determinadas condiciones, el camino de menor coste entre un nodo origen y uno objetivo. Esta etapa, una vez que el bloque de adquisición de información le ha enviado los datos filtrados del GPS y la brújula electrónica; se encargada de introducirlos dentro del cuerpo del programa para poder realizar la búsqueda del destino. Como todo algoritmo de búsqueda en amplitud, A* es un algoritmo completo; en caso de existir una solución, siempre dará con ella. El espacio requerido por A* para ser ejecutado es su mayor problema. Dado que tiene que almacenar todos los posibles siguientes nodos de cada estado, la cantidad de memoria que requiere es exponencial con respecto al tamaño del problema. Por este motivo no se puede conjuntar la parte de adquisición de datos con la del procesamiento de información en un solo micro controlador, ya que la memoria del Arduino no es suficiente para contener los códigos de programación juntos. Es por lo que se usan etapas y micro controladores separados. El path finding A* funciona de la siguiente manera. Figura 37. Algoritmo A*. 3.8 Control de motor. El sistema, en este bloque, puede ser subdividido desde el control principal hasta el control secundario. Si se estructura de manera rigurosa, el control principal lo constituye la tarjeta maestra que es el Arduino Duemilanove de la etapa de procesamiento de datos. En este micro controlador, además de contener el algoritmo de búsqueda, en paralelo contiene el código de programación encargado de controlar el puente H y el movimiento del servo motor. La parte del control del puente H depende del funcionamiento del algoritmo de búsqueda, conforme el algoritmo localice los diferentes nodos y analice el de menor costo, es cuando le manda la señal al puente H para que se active o desactive. Del mismo modo, el control del servo motor, depende del funcionamiento del path finding, una vez que el algoritmo ha analizado las diversas opciones de nodos y elegido el de menor costo para el sistema, debe de ubicar la orientación de dicho nodo, hecho esto envía la señal al servo motor para que este posicione su eje en relación al nodo. Se puede decir que se subdivide esta etapa porque el motor de arranque y paro no está controlado directamente por el Arduino Duemilanove, sino que éste controla al puente H y secundariamente al motor DC. La conexión entre la placa de Arduino y el servo motor es muy simple. Como es conocido el servo motor posee tres cables de conexión: alimentación, tierra y control. El cable de Vcc, usualmente de color rojo, se conecta a la terminal de 5V ubicada en la parte de POWER de la placa Arduino; el cable de tierra, normalmente de color negro, se conecta a la terminal de GND ubicado en el mismo apartado de la placa; y por último el cable de control, por lo general de color amarillo, se conecta con alguna de las terminales generadoras de PWM del Arduino, en este caso es la terminal nueve. En la figura siguiente se ejemplifican las conexiones. La parte de control del servo motor no requiere de una etapa de potencia ya que la corriente que ofrece la placa Arduino es suficiente para poder alimentarlo. Figura 38. Conexión Arduino-servo motor. Para que funcione el micro controlador Arduino junto con el puente H DRV8816 la conexión es sencilla. El pin uno del puente H, nFAULT, se conecta a una resistencia de 220 o 330 ohms hacia Vcc, en esta parte se puede emplear el pin de 5V de la placa Arduino o emplear una fuente externa, como un pack de pilas; el pin tres del DRV8816, IN1, que es el pin de control mediante PWM se conecta al pin once del Arduino, ya que es una de las terminales que genera PWM, igual se pueden utilizar cualquiera de las otras dos terminales que generan PWM de la placa; el pin cuatro del puente H, GND, va conectado con alguna de las terminales GND del Arduino o se puede realizar la conexión por separado si se utiliza una fuente externa; el pin cinco del puente H, nSLEEP, se conecta de la misma manera que el pin uno antes mencionado; el pin siete del DRV8816, OUT1, se conecta al motor DC que va a ser controlado; el pin ocho del puente H, SENSE, se conecta con una resistencia de 220 o 330 ohms hacia GND y por último el pin nueve del DRV8816 se conecta a la fuente de alimentación de 5V que puede ser la terminal de la placa Arduino o una fuente externa. Figura 39. Conexión del puente H. 3.9 Datos de salida. Los datos de salida que constituye el sistema del AGV son simplemente dos variables, la señal de salida del puente H que controla el motor de DC y la señal de la tarjeta maestra que controla el eje del servo motor. Como se había explicado en la etapa anterior del sistema, la señal de salida que controla al motor DC está constituida por la señal que envía la tarjeta maestra al puente H para indicarle cuando debe de mandar la señal de arranque o paro hacia el motor. Al mismo tiempo, la misma tarjeta maestra envía la señal para indicar al servo motor hacia qué lado debe de moverse para que el AGV pueda dar vuelta y avanzar al siguiente nodo. Todo esto depende claramente de la resolución que dé el algoritmo de búsqueda a los datos de entrada. La principal función de las señales de salida es controlar el movimiento del vehículo, su arranque, paro y el movimiento para dar vuelta. Figura 40. Alimentación y conexión del DRV8816. Figura 41. Control de motores. Como se mencionó anteriormente, la etapa de control del servo motor no requiere de una etapa de potencia, ya que con la corriente proporcionada por la placa Arduino es suficiente para hacerlo funcionar. Es recomendable alimentar independientemente a cada etapa por cuestiones de protección del micro controlador, por eso en la figura de arriba se ve que se utiliza una pack de baterías para alimentar al puente H y solo se utiliza el pin once para enviarle la señal de PWM para la función de control, mientras que el servo motor es alimentado directamente desde la placa del Arduino. En la figura siguiente se ejemplifica las conexiones entre todas las etapas del sistema para mostrar cómo se realiza todo el control de los motores desde el inicio, que es la adquisición de datos hasta llegar a la etapa final que es el control para el movimiento de AGV. Figura 42. Conexión entre etapas del sistema. Capítulo IV. 4.1 Pruebas. Se realizaron pruebas para verificar tanto el filtrado de las tramas enviadas por el GPS como del algoritmo de búsqueda A* usando los software IDE Arduino y Processing respectivamente. Se implementaron códigos de programación específicos para ambos casos para simular el funcionamiento del AGV tanto en datos de entrada como para el procesamiento de los mismos. Estos programas se diseñaron con la finalidad de reproducir con exactitud el comportamiento que tendría el hardware del vehículo. En la siguiente imagen se muestra la comunicación vía serial para el módulo GPS en respuesta a los satélites detectados. En esta comunicación ya se encuentra implementado el filtrado para las tramas que envía el módulo. El filtro de datos está diseñado para adquirir la información de la trama GPGGA de acuerdo al protocolo NMEA que maneja el GPS, importando para este caso obtener únicamente la latitud y longitud que en ella se encuentra. Realizando pruebas con la información filtrada, se observó que para el caso que le compete a este proyecto trabajar con las coordenadas tal y como lo enviaba el GPS era muy complicado, ya que se tomaba en cuenta los grados y los minutos. Analizando la forma de trabajar y las distancias que se iban a manejar, se optó por utilizar únicamente los minutos de las coordenadas debido a que el cambio en estas es más significativo. Para implementar lo anterior se tuvo que incluir en el código de programación un apartado que obtenía los minutos y los convertía a enteros para facilitar su manejo dentro del programa. Figura 43. Monitor serial para el GPS. Figura 44. Obtención de minutos en enteros. A continuación se muestra la conexión entre el módulo GPS Receiver A1035H y la placa Arduino Duemilanove. Figura 45. Conexión entre el GPS y el Arduino. Para relacionar los datos obtenidos del GPS con el algoritmo de búsqueda A* se emplearon dos placas Arduino Duemilanove. En el IDE de Arduino ya viene incluido el código para realizar la comunicación entre los micro controladores, por lo que solo es cuestión de cargar dicho programa, uno como esclavo y otro como maestro, en las placas. En la siguiente imagen se ilustra lo fácil que es realizar dicha conexión. Figura 46. Comunicación entre Arduinos. Se implementó una placa para realizar todas las conexiones entre los diversos dispositivos y así facilitar lo que es todo el cableado. En esta placa se utilizó un shield de Arduino para contemplar todos los pines que se utilizaron del micro controlador. En la siguiente imagen se muestra el PCB de la placa. Esta placa simplifica las conexiones que se realizan en las pruebas, se incluye las conexiones del GPS, la brújula electrónica, el puente H, el servo motor, el motor DC y por supuesto el Arduino. Figura 47. Diseño de la placa del AGV. La placa una vez echa fue montada en el chasís del carro para poder realizar las pruebas debidas de cada parte del sistema. La brújula electrónica, el puente H, los pines de conexión y las terminales fueron soldados en la placa para poder simplificar todas las conexiones que se realizan entre las diversas etapas del AGV. Una vez que cada componente fue soldado correctamente y verificado su continuidad, se procedió a realizar el ajuste de la placa al chasís del carro, sujetándola mediante una lámina de aluminio y con ayuda de tornillos del tamaño y medidas adecuados para cada placa (la placa PCB y la placa Arduino). En la siguiente imagen se muestra el resultado del procedimiento antes mencionado, teniendo resultados satisfactorios en relación a distribución, dimensiones y tamaños requeridos para un ajuste correcto entre las placas y el chasís. Figura 48. Placa ensamblada al chasís. Como se puede observar en la figura anterior, tanto la placa como la lámina de aluminio fueron ensambladas y ajustadas a la parte delantera del chasís del carro, en la parte superior del eje de las llantas delanteras, esto debido a que es esa parte se ubica el servo motor encargado del control de dicho eje, ya que los cables de conexión de éste no son largos y la placa debía ubicarse lo más cerca posible para no tener problemas al momento de realizar la conexión. Del mismo modo, se optó por ubicar las placas en la parte delantera del chasís debido a la interferencia que causa el motor DC de las llantas traseras a la brújula electrónica, ya que debido al magnetismo que tiene el motor, la brújula reconocía ese campo magnético y no podía ubicarse correctamente con respecto a los puntos cardinales. Figura 49. Vista lateral del chasís. Realizando pruebas se dio con la ubicación correcta de la placa para que la interferencia del motor DC ya no se problema y se obtuvo que el lugar idóneo era en el extremo contrario de donde se ubica el motor en el chasís que es la parte delantera exactamente sobre el eje de la llantas delanteras. En este punto la brújula electrónica logra reconocer los campos magnéticos de la tierra como debe de ser. De modo contrario, el servo motor no ocasiona interferencia alguna aun teniendo en cuenta que las placas se encuentran ubicadas sobre él. La ubicación del módulo GPS como se puede notar en las imágenes anteriores, se encuentra ubicado al extremo contrario de las placas del sistemas, esto es, más que nada, por cuestiones de estética y ajuste. Estéticamente se observó que ubicando el GPS en esa posición adquiría una mejor vista. Figura 50. Ubicación del GPS. En cuestiones de ajuste, la parte trasera del chasís ofrecía la oportunidad de ensamblar y ajustar correcta y firmemente el kit de evaluación del módulo GPS. A diferencia de la brújula electrónica, el motor DC no produce interferencia al GPS, por lo que es el lugar ideal para ubicarlo en el chasís, además de que las dimensiones de la placa y el soporte trasero del carro encajan perfectamente. La conexión del motor con la placa del sistema, a pesar de la separación entre ellas, no resulto en inconveniente alguno ya que contaba con terminales específicas para él. 4.2 Software. Como se mencionó anteriormente el software empleado para realizar pruebas, con respecto a la parte del path finding que es el algoritmo de búsqueda A*, es el Processing. El diagrama de flujo de dicho algoritmo se ejemplificó en la Figura 23 contenida dentro del Capítulo III de este documento. A continuación se ejemplifican los resultados obtenidos al llevar a cabo la simulación en el software Processing. Figura 51. Simulación del algoritmo. Los cuadros generados por el programa representan la matriz en la cual se desarrolla el algoritmo de búsqueda y el cuadro de color la ubicación del vehículo. El cuadro sombreado se va situando de acuerdo a las coordenadas que recibe del módulo GPS en relación con la ubicación del destino fijado. Figura 52. Simulación de matriz. 4.3 Resultados. Los resultados obtenidos fueron satisfactorios en todas las etapas del sistema del AGV. Desde el filtrado de tramas, pasando por la adquisición de los minutos de las coordenadas y su conversión a enteros, como se puede observar el la Figura 31, los resultados fueron los esperados desde un principio al momento de plantear la idea de esta etapa. Figura 53. Obtención de coordenadas. Como se enseñó con anterioridad en las Figuras 29 y 30, el algoritmo de búsqueda trabajo de acuerdo a lo planteado, llevando a cabo de una manera eficaz la búsqueda del punto destino del vehículo respetando todas las características que conlleva el path finding del A*. Las conexiones realizadas entre las etapas del sistema se muestran en la figura siguiente. Figura 54. Conexión entre etapas. Todas las placas, módulos y dispositivos se integraron en el chasís de un carro de radio control previamente desensamblado, quedándose únicamente con la estructura de plástico. Esta estructura del carro fue elegida debido a que cuenta con unos pequeños amortiguadores, lo que facilita el movimiento del AGV una vez ya en terreno. La estructura cuenta con un eje delantero y un único motor trasero lo suficientemente potente para poder mover al vehículo. Los amortiguadores se encuentran en ambos extremos del carro. A continuación se muestra una figura del chasís que fue escogido para este prototipo de AGV, para así tener una idea más clara del sistema montado. Figura 55. Chasís empleado para el AGV. En la figura siguiente se muestra una vista alterna del chasís del AGV ya ensamblado para tener una mejor apreciación del sistema en función. El sistema del AGV se alimenta con una pila de 9.5V, que es la pila que incluye el chasís del carro, esto facilita la alimentación de las placas ya que la pila tiene su propio compartimiento en la estructura del carro lo cual ahorra espacio al no tener que buscarle una ubicación adecuada para poder colocarla. Al sistema de alimentación, que es la pila de 9.5V, se le incluyó adicionalmente un regulador de voltaje para proteger todas las placas y al mismo tiempo poder regular la velocidad del motor DC. Este regulador se encuentra ubicado en el compartimiento de la batería. Para esto simplemente se empleó una placa perforada para soldar los pines del regulador a los cables de la batería y así poder ponerlas juntas ahorrando espacio en la superficie del chasís del carro, dándole una mejor presentación visual al no tener tantas placas fijadas sobre él. Figura 56. Vista alterna del AGV. 4.4 Conclusiones. De acuerdo al objetivo planteado desde el inicio del proyecto y en base a los resultados obtenidos en las pruebas y simulaciones, se puede concluir que si se cumplió con la meta original, la cual era generar una interfaz (software y hardware) que permita a un vehículo eléctrico guiado automáticamente (AGV), ser capaz de utilizar tecnología GPS para realizar tareas pre programadas. Teniendo presente las restricciones dadas por el tiempo de implementación, se logró abarcar las limitantes y restricciones que por este motivo se presentaban. El proyecto cumplió con: • Elaboración de la interfaz para controlar los movimientos del AGV. • Elaboración de la interfaz de adquisición de datos del módulo GPS. • Interfaz para corroborar que realice lo contemplado en conjunto. Al existir diversos tipos y aplicaciones de los vehículos automáticamente guiados, en este caso en específico queda abierta la posibilidad de que en un futuro se le pueda adaptar dispositivos para el reconocimiento de obstáculos u otras interfaces, las cuales ayuden a la robustez del prototipo. El diseño presentado en este documento es el más sencillo que existe, por lo que puede ser retomado en cualquier momento por cualquier persona ya sea para tener las bases necesarias para la realización de otro o, retomar el prototipo aquí diseñado e implementarle nuevas funciones, ya que es la versatilidad que ofrece el proyecto presentado. Bibliografía. [1] Michael Margolis, Arduino Cookbook [en línea], Estados Unidos de América, O´Reilly Media, Inc, <http://nfiinnovation.org/FREE_Download/Arduino%20Tutorials%20&%20Softwares/Oreilly .Arduino.Cookbook.2nd.Edition.Dec.2011.pdf> [consulta: 3 de septiembre de 2013] [2] José Manuel Ruiz Gutiérrez, Arduino+Processing [en línea], <https://n1.cc/file/download/1322631> [consulta: 5 de septiembre de 2013] [3] Processing Workshop [en línea] <http://www.localguru.net/projects/processing_tutorial/tutorial.pdf> [consulta: 5 de septiembre de 2013] [4] Apuntes de Arduino [en línea] <http://www.juntadeandalucia.es/averroes/ies_bellavista/DPTOS/TEC/DOCUTEC/4%20ESO/ ARDUINO/ARDUINO_APUNTES_2013.pdf> [consulta: 6 de septiembre de 2013] [5] Arduino [en línea] <http://www.arduino.cc/es/> [consulta: 25 de noviembre de 2013] [6] Processing2 [en línea] <http://processing.org/> [consulta: 31 de octubre de 2013] [7]Texas Instruments [en línea] <http://www.ti.com/product/drv8816> [consulta: 10 de noviembre de 2013] [8] NMEA Reference Manual [en línea] <www.SiRF.com > [consulta: 18 de septiembre de 2013] [9] GPS Firmware GSC3-based Products [en línea] <http://www.cookinghacks.com/skin/frontend/default/cooking/pdf/GPS_Firmware_GSC3_3.5.0_V4.2.pdf> [consulta: 18 de septiembre de 2013] [10] GPS Evaluation Kit EVA1035-H [en línea] <http://www.richardsonrfpd.com/resources/RellDocuments/SYS_27/GPS+Evaluation+Kit+E VA1035-H+V1+1.pdf> [consulta: 19 de septiembre de 2013] [11] Hitachi HM55B Compass Module [en línea] <http://users.ece.utexas.edu/~valvano/Datasheets/HM55BModDocs.pdf> [consulta: 2 de noviembre de 2013] [12] Arduteka, Tutorial Arduino #0009-Módulo GPS & Display i2C [en línea] <http://www.arduteka.com/2012/03/tutorial-arduino-0009-modulo-gps-display-i2c/> [consulta: 21 de septiembre de 2013] [13] Peter Senge, Ozgur Aytekin, Using HM55B Compass Module from Parallax with Arduino and Processing [en línea] <http://ozguraytekin.blogspot.mx/2010/12/using-hm55bcompass-module-from.html> [consulta: 2 de noviembre de 2013] [14] El Algoritmo A* [en línea] <http://ce.azc.uam.mx/profesores/clc/03_docencia/posgrado/i_artificial/material-1.pdf> [consulta: 30 de octubre de 2013] [15] Escarbando Código, Algoritmo de Búsqueda A* (PathFinding A*) – xna [en línea] <http://escarbandocodigo.wordpress.com/2011/07/11/1051/> [consulta: 29 de octubre de 2013] [16] Box, Diagrama A Estrella [en línea] <https://app.box.com/s/95ocfx79bucf3amaxp1p> [consulta: 28 de octubre de 2013] [17] O´Reilly Answers, Multiply Matrices in Processing [en línea] <http://answers.oreilly.com/topic/1522-multiply-matrices-in-processing/> [consulta: 7 de septiembre de 2013] [18] Wikipedia, Puente H [en línea] <http://es.wikipedia.org/wiki/Puente_H_(electr%C3%B3nica)> [consulta: 20 de septiembre de 2013] [19] Galeon, Micro controlador [en líena] <http://microcontroladores-e.galeon.com/> [consulta: 19 de septiembre de 2013] [20] EK Automation, ¿Qué es un AGV? [en línea] <http://www.ekautomation.com/es/tecnologia/> [consulta: 19 de septiembre de 2013] [21] DW, Robot Obelix [en línea] <http://www.dw.de/el-robot-obelix-de-paseo-por-laciudad/a-16187578> [consulta: 19 de septiembre de 2013] [22] NASA, Curiosity [en línea] <http://www.nasa.gov/mission_pages/msl/> [consulta: 20 de septiembre de 2013] [23] This Big City, Los taxis inteligentes de Singapur [en línea] <http://thisbigcity.net/es/lostaxis-inteligentes-de-singapur/> [consulta: 20 de septiembre de 2013] [24] Como nace un proyecto, Ideas de un proyecto [en línea] <http://comonaceproyecto.blogspot.mx/2012/09/como-nace-la-idea-de-un-proyecto-ysus.html> [consulta: 21 de septiembre de 2013] [25] Wikipedia, Servo motor [en línea[ <http://es.wikipedia.org/wiki/Servomotor> [consulta: 21 de septiembre de 2013] [26] Todo robot, Motor DC [en línea] <http://www.todorobot.com.ar/documentos/dcmotor.pdf> [consulta: 21 de septiembre de 20013]