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]