Memoria Vehículo GPS

48
Memoria Técnica VEHÍCULO AUTÓNOMO GPS

description

.

Transcript of Memoria Vehículo GPS

Page 1: Memoria Vehículo GPS

 

 

MemoriaTécnica

VEHÍCULOAUTÓNOMOGPS

Page 2: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 1 ‐ 

INDICE ------------------------------------------------------------------- Págs.

Declaración del Alumno--------------------------------------- 1

Índice----------------------------------------------------------- 2-3

ANTEPROYECTO:

Introducción---------------------------------------------------- 5

Antecedentes--------------------------------------------------- 6

Boceto----------------------------------------------------------- 7

MEMORIA:

Estudio de Soluciones--------------------------------- 9-10-11-12-13-14

Justificación de Soluciones--------------------------------- 15-16-17

Planificación--------------------------------------------------- 18-19

Cálculos-------------------------------------------------------- 20-21

Descripción del Sistema--------------------------------------- 22

Funcionamiento General-------------------------------------- 23

Programación PIC--------------------------------------------- 24-25

Programación Informática--------- 26-27-28-29-30-31-32-33-34-35

Pruebas-------------------------------------------------------- 36

Dificultades y soluciones------------------------------------- 37-38

Aplicaciones--------------------------------------------------- 39

Conclusiones-------------------------------------------------- 40

PLANOS:

Circuito Eléctrico--------------------------------------------- 42

PCB--------------------------------------------------------- 43-44-45

Prototipo------------------------------------------------------ 46

Listado de Conexiones------------------------------------- 47-48-49

Page 3: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 2 ‐ 

INDICE ------------------------------------------------------------------- Págs.

PLIEGO DE CONDICIONES:

Componentes----------------------------------------------- 50

Normas y Leyes--------------------------------------------- 51

Condiciones Técnicas------------------------------------ 52-53-54

PRESUPUESTO:

Balance Económico--------------------------------------- 56

Plan Empresarial------------------------------------ 57-58-59-60

ANEXOS:

Manual de Usuario---------------------------------------- 62-63

Bibliografía y Documentación-------------------------- 64-65

Datasheets de Componentes------------------------ 66-67-68-69

Fotografias del Prototipo---------------------------- 70-71-72-73

Page 4: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 3 ‐ 

-BOCETO  

ANTEPROYECTO

-ANTECEDENTES  

-INTRODUCCIÓN

Page 5: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 4 ‐ 

ANTEPROYECTO.- Introducción.

Comenzamos el curso 2011/2012 con la idea de realizar a lo largo de él, algún tipo de proyecto o trabajo global, que concentrara todo nuestro esfuerzo y conocimientos sobre electrónica. En él participamos Nicolás Pina y Cristian Bautista, aportando cada cual su experiencia, ideas y esfuerzo. Desde el primer momento, contamos con un listado de posibilidades que nos fueron entregadas por parte del cuerpo docente. Además de estas propuestas, éramos libres de generar otras nuevas, elegir las expuestas, o modificar algún requisito, prestación o característica a estos proyectos dados.

En un primer momento supimos lo que queríamos realizar, y nos pusimos de inmediato a investigar y recopilar información. Nuestra principal idea, fue la de crear un quadrocóptero, lo que viene siendo un helicóptero de cuatro motores. Antes de realizar cualquier planificación, conocer nuestra idea final, o plantearnos la puesta en marcha del proyecto, investigamos en la red acerca de estos dispositivos. Contactamos con usuarios interesados en este mismo tema, y compartimos ideas, intercambiamos opiniones, y recogimos experiencias.

En principio, estuvimos de acuerdo con la idea, y que realmente era viable, con esfuerzo, trabajo y motivación, creíamos ser capaces de poder llevar a cabo el proyecto. Pero tras mucho indagar, analizar nuestras posibilidades, concretar el alcance del proyecto y planificar el curso, que debíamos llevar a la par que el proyecto, decidimos desechar dicho proyecto por su complejidad, tanto material como de desarrollo.

No obstante, comprobamos que algunos de estos dispositivos poseía un elemento de control para su funcionamiento casi autónomo. Un dispositivo GPS. Pronto nos dimos cuenta que uno de los proyectos ofrecidos por el cuerpo docente, era un vehículo que consiguiera seguir una ruta preestablecida, contando para ello con un dispositivo GPS. Decidimos elegir pues dicho proyecto, por su carácter innovador, y vanguardista, ya que las primeras indagaciones acerca de dicha propuesta, fueron muy prometedoras.

Era muy difícil encontrar un proyecto similar al mismo nivel de estudios y recursos, los únicos proyectos similares al concepto e idea de dicho trabajo, eran llevados a cabo por grandes empresas o universidades, tales como "BAE Systems" ó "Freie Universität Berlín" respectivamente.

Estaba claro que el proyecto no iba a ser fácil, pero el trabajo, la investigación, y el esfuerzo requerido resultaría muy gratificante. Necesitaríamos un vehículo para la constitución del prototipo, un receptor GPS, con el cual nos pudiésemos comunicar, y un receptor Bluetooth para la recepción de datos por parte del microprocesador. Para la creación de la comunicación entre el GPS y el microprocesador, y el tratamiento de los datos GPS, necesitaríamos además la participación de un grupo de alumnos del modulo de informática. Damos las gracias a Sergio Martínez y José Ángel Salvador,

Page 6: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 5 ‐ 

ambos participes en este proyecto, desde el apartado de programación informática, bloque fundamental e importantísimo de este proyecto.

ANTEPROYECTO.- Antecedentes

A la hora de preparar el proyecto, navegamos por la inmensidad de la red en busca de proyectos similares, o por lo menos encontrar dispositivos, ideas, o conceptos enmarcados dentro de nuestra idea de trabajo.

Pronto nos percatamos de que había muy poca información acerca del sistema GPS que queríamos utilizar con nuestro proyecto.

Encontramos vehículos autónomos, pero a niveles más altos, desarrollados por universidades de investigación tecnológica, o las propias marcas de vehículos en desarrollo e innovación. A nuestro nivel habían muy pocas referencias a vehículos autónomos, siendo los más comunes, vehículos con distintos sensores con los que realizar la ruta.

El que a nuestro nivel no encontráramos casi proyectos, realizados exclusivamente con el sistema GPS, nos alentó a continuar con él.

En cursos anteriores, la creación de vehículos autónomos, era común. Común, pero con distintas características. Desde los vehículos capaces de seguir una línea que marcara su ruta, hasta vehículos que sortearan los obstáculos gracias a sus capacidades sensoriales. Pero ninguno de ellos partía de la idea de guiarlo mediante coordenadas GPS.

Muy recientemente, han ido apareciendo noticias en televisión, periódicos y la red, referentes a los vehículos autónomos que están desarrollando las diferentes marcas de automoción. Así como numerosas referencias a entidades privadas y universidades. Es un campo todavía en versión “Alpha” , pero que llama a quien quiera conocerlo, investigarlo, y trabajar bajo su estructura.

Los vehículos señalados, en desarrollo por diferentes empresas y universidades, cuentan con un completo equipo de elementos sensores que les ayudan en su navegación. Pero es su corazón, un dispositivo GPS, el que le manda las ordenes y coordenadas por la que debe pasar, atravesar, para alcanzar sus objetivos.

Nuestra idea general no concibe el equipo sensor para el sorteo de posibles obstáculos en la vía, o el mapeado 3D de la misma, si no que se centra en el conocimiento de la trazabilidad de rutas GPS, discernir posiciones y recalcular los posibles errores de posicionamiento.

En esencia, queríamos imbuirnos con una pizca de cultura de los grandes proyectos llevados a cabo por estas entidades, conocer sus ideas, conceptos, y poner a prueba nuestras aptitudes.

Page 7: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 6 ‐ 

ANTEPROYECTO.- Boceto

En el siguiente apartado, quedará definida de forma general, la idea y los elementos que la componen.

Tras el periodo de búsqueda de información, estudio, y discriminación de datos, reflexionamos sobre cómo llevar a cabo el proyecto y los elementos necesarios. Realizamos un primer boceto donde contemplamos de forma general los bloques o apartados necesarios para la realización del proyecto.

El vehículo, un modelo a escala, debía poseer dos motores, mínimamente, para el control de giro. Estos no debían consumir mucha corriente, ya que la alimentación se llevaría a cabo por batería para poder realizar un vehículo totalmente autónomo.

Necesitaríamos toda una placa donde integrar los sistemas de control de los motores, así como el micro controlador que regiría todo el sistema.

El módulo GPS quedaría todavía por definir, pero como el control se llevaría a cabo desde un dispositivo móvil, sería de vital importancia que contara con capacidad de comunicación Bluetooth.

Así mismo el prototipo, integraría en la placa de control un módulo de conexión Bluetooth para poder enlazarse con el dispositivo móvil de control y recibir las ordenes una vez realizada la comprobación de coordenadas y tomada las decisiones correctoras.

El cuadro general de nuestro sistema sería el siguiente.

MÓDULO GPS

PROTOTIPO VEHICULO

DISPOSITIVO DE CONTROL

SISTEMA GPS

Page 8: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 7 ‐ 

MÓDULO BLUETOOTH

-PANIFICACIÓN  

MEMORIA

-JUSTIFICACIÓN DE SOLUCIONES

-ESTUDIO DE SOLUCIONES

-CÁLCULOS

-DESCRIPCIÓN DEL SISTEMA

-FUNCIONAMIENTO GENERAL

-PROGRAMACIÓN PIC  

-PROGRAMACIÓN INFORMATICA

-PRUEBAS  

-DIFICULTADES Y SOLUCIONES

-APLICACIONES  

Page 9: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 8 ‐ 

MEMORIA.- Estudio de Soluciones

A la hora de desarrollar el proyecto, dividimos la tarea por bloques, de esta forma es mucho más sencillo centrarse en un problema en concreto y buscar posibles soluciones para resolverlo.

En nuestro caso, los siguientes bloques muestran las posibles soluciones del proyecto divididas en las partes fundamentales del mismo.

Vehículo Prototipo: para nuestro caso, el vehículo debía ser no excesivamente grande, ni muy pequeño, ya que iba a guiarse por un sistema GPS, y este posee un determinado margen de error. Por ello cuanto más grande sea el vehículo, mayor será su avance, y reducirá así el margen de error.

Los siguientes ejemplos, son posibilidades que barajamos para su realización.

"7 canales de envío de R / C Car Music (0687-GT-310)"

"RC del 1:32, coche de juguete con motor eléctrico "

-CONCLUSIONES

Precio: 55'60 €

Precio: 15'60 €

 

Page 10: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 9 ‐ 

MEMORIA.- Estudio de Soluciones

Vehículo Prototipo:

Los siguientes ejemplos, son posibilidades que barajamos para su realización.

"Completo chasis para hacer tu robot 4x4, compatible con Arduino."

Motores: para la elección del vehículo necesitábamos saber si contaba con motores de corriente continua o habría que comprarlos por separado. Fuera como fuese, las características que necesitarían cubrir serían las siguientes:

- Bajo consumo (70mA)

- 1,5VDC a 4,5VDC

- Mínimamente dos, uno por eje.

Potencia: para la gestión de la potencia, y el control posterior de los motores estudiamos varias posibilidades.

"Control mediante puente en H”

Con lo que sería necesario contar con todos los componentes para su realización, siendo los transistores lo más importante.

Precio: 49'90 €

 

Transistores: BC 547 y BC 548

Precio unitario: 0'10 €

Page 11: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 10 ‐

MEMORIA.- Estudio de Soluciones

Potencia:

"Fabricación de driver mediante L293-B"

Con esta idea, era realizar por nuestra cuenta un driver de control que encontramos por la red, mediante el controlador L293B y diodos.

"Driver mediante L293-B"

En diversas páginas de distribuidores de componentes electrónicos, encontramos el driver mediante L293-B ya montado y listo para su uso.

Se trata de un driver de propósito general basado en el dispositivo L293B de la firma SGS-THOMSON. Consiste en 4 canales amplificadores totalmente independientes entre sí. Cada canal es capaz de soportar corrientes de salida de 1 A con picos de hasta 2 A.

*(Más características, consultar "Pliego de Condiciones")

Precio L293-B: 5'80 €

Precio unitario diodos: 0'05 €

Precio: 16'60 €

Page 12: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 11 ‐

MEMORIA.- Estudio de Soluciones

Comunicación:

Para poder emitir y transmitir entre nuestro vehículo y el control, intercambiar datos y órdenes, debíamos seleccionar un dispositivo de comunicación. En nuestro caso, quedo clara la idea de utilizar el protocolo Bluetooth, ya que no necesitábamos mucha distancia entre dispositivos.

"Bluetooth RN-41"

Módulo Bluetooth de bajo consumo clase 1, proporciona una tasa de transferencia de hasta 3Mbps para una distancia de hasta 100m.

*(Más características, consultar "Pliego de Condiciones")

"Bluetooth HC-06"

Módulo Bluetooth de bajo consumo clase 2,  Configuración de Baudios a 1200,2400,4800,9600,19200,38400,57600,115200. Alcanza una distancia de hasta 100m.

*(Más características, consultar "Pliego de Condiciones")

Precio: 20'00 €

Precio: 15'50 €

Page 13: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 12 ‐

MEMORIA.- Estudio de Soluciones

Micro controlador:

En la sección del micro controlador, poseemos dos grandes candidatos a tomar el control del proyecto.

"PIC 16F84A"

Memoria Flash de programa (1K x 14). Memoria EEPROM de datos (64 x 8). Memoria RAM (68 registros x 8). Un temporizador/contador (timer de 8 bits). Un divisor de frecuencia. Varios puertos de entrada-salida (13 pines en dos puertos, 5 pines el puerto A y 8 pines el puerto B). Manejo de interrupciones (de 4 fuentes).

*(Más características, consultar "Pliego de Condiciones")

"PIC 16F876A"

Memoria Flash de programa (8K). Memoria EEPROM de datos (256). Memoria RAM (368 x 8). Dos temporizador/contador (timer de 8 bits). Un temporizador/contador (timer de 16 bits). Varios puertos de entrada-salida, 3 puertos a, b, y c. Manejo de interrupciones (de 13 fuentes).

*(Más características, consultar "Pliego de Condiciones")

Precio: 3'00 €

Precio: 6'00 €

Page 14: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 13 ‐

MEMORIA.- Estudio de Soluciones

Alimentación:

En el apartado de alimentación, quedamos subyugados a tener el vehículo prototipo, y ver que baterías o alimentación necesitaba, ya que el control podría funcionar con esa misma fuente de energía.

Simplemente necesitaríamos los reguladores correspondientes para la alimentación de 5v. del micro controlador, y otro para los posibles 3.3v. del Bluetooth.

*(Más características, consultar "Pliego de Condiciones")

Control:

A la hora de controlar el conjunto, debemos contar con una programación avanzada, para el registro de las coordenadas y su procesamiento. El dispositivo de control debía contar con conexión Bluetooth para su intercomunicación.

Las dos preferencias, son: - PC, ordenador personal.

- Dispositivo Móvil de telefonía con software libre para su programación.

En este apartado, necesitábamos ayuda de los compañeros del grado de informática, entre sus conocimientos y nuestras habilidades, deberíamos estar capacitados para la creación del software de control.

LD-33, regulador a 3.3v.

Precio: 0'60 €

7805, regulador a 5v.

Precio: 0'50 €

Page 15: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 14 ‐

MEMORIA.- Justificación de Soluciones

Vehículo Prototipo:

El vehículo seleccionado, es el que encontramos en la página de Arduino. Durante el curso anterior, otros compañeros lo habían utilizado, y estuvieron satisfechos con los resultados. El tamaño era el adecuado, y contaba con 4 motores, uno por rueda, y amplia superficie para el montaje del control del vehículo.

Características idóneas para nuestro prototipo.

Motores: los motores los incluye el vehículo, incluidos con el kit. Su alimentación va desde 3 a 12V DC. Su consumo es medio, suficiente para nuestro propósito. No necesitamos 

motores de precisión, ni de control paso a paso. 

Potencia: "Driver mediante L293-B"

Para la potencia, lo teníamos claro desde el principio. Para que el micro controlador pudiera manejar la carga de los motores, necesitaba un driver de comunicación en potencia, o bien un conjunto de transistores con opción a cambio de sentido de giro del motor. Tras varios intentos, de realizar por nuestra cuenta un driver mediante diodos y el integrado L293, optamos por realizar la compra del mismo ya prefabricado, ya que de otra manera nos surgieron varios problemas.

Precio: 16'60 €

Page 16: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 15 ‐

MEMORIA.- Justificación de Soluciones

Comunicación: "Bluetooth HC-06"

Para la comunicación entre vehículo y controlador, optamos por el Bluetooth HC-06, aunque también pudimos probar el RN-41. Pero la facilidad de conexionado, puesta en marcha y emparejamiento sencillo, nos decantaron por el Bluetooth HC-06.

Micro controlador: "PIC 16F84A"

En un principio, probamos con el PIC 16F876-A, pero tras varios intentos fallidos y numerosos problemas de conexionado entre Bluetooth y micro controlador, optamos por probar con el PIC 16F84A, ya que nuestra programación, no requería de un micro controlador con muchas

características. Tras probar su funcionamiento, nos convencimos y decidimos utilizar dicho micro controlador.

Precio: 15'50 €

Precio: 3'00 €

Page 17: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 16 ‐

MEMORIA.- Justificación de Soluciones

Alimentación:

Claramente, necesitábamos algún tipo de regulador, ya que de la batería obteníamos 6 v., y por un lado el micro controlador funcionaba a 5 v., y el Bluetooth a 3,3 v. En varias prácticas y proyectos diferentes, habíamos trabajado con este tipo de reguladores, y fueron por tanto nuestra primera y única elección, dando los resultados esperados y requeridos. Otro acierto para nuestro proyecto.

Control: El control que debíamos efectuar sobre nuestro vehículo, era harto complejo, requería una constante conexión Bluetooth con el dispositivo GPS y a su vez con el micro controlador, efectuar los cálculos y trazado de ruta, y comandar mediante envío de órdenes, la dirección del vehículo prototipo.

Dicho control fue encargado al equipo informático, quienes diseñaron, primeramente en PC, un programa capaz de posicionar el vehículo en un determinado punto, conocer el siguiente punto de destino, y calcular su posible corrección en el trazado actual para alcanzar dicho punto.

Posteriormente, mediante la reciente tecnología, de software libre, Android, pudieron diseñar e implementar dicho programa para llevarlo de manera Portable, en un dispositivo móvil, con lo que flexibilizaba mucho más nuestro proyecto.

Ya teníamos, un dispositivo portátil, que cabe en la palma de la mano y en cualquier bolsillo, capaz de gestionar el guiado de nuestro vehículo prototipo.

LD-33, regulador a 3.3v.

Precio: 0'60 €

7805, regulador a 5v.

Precio: 0'50 €

Page 18: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 17 ‐

MEMORIA.- Planificación

En el siguiente cuadro, mostramos la planificación previa que realizamos en la fase previa a la ejecución de nuestro proyecto.

En función de estos datos, observamos como el montaje del vehículo ocupa la mayor parte del proyecto, mientras que posteriormente dejamos veinte días para realizar la conexión inalámbrica del vehículo y el control y su programación. A la par del desarrollo del prototipo, llevamos a cabo la realización de la memoria.

Un aspecto importante dentro del apartado de “Programación”, es la parte de testeo y pruebas, que como hemos podido comprobar, ha sido prolongado por un tiempo mayor del planificado.

Los tiempos son siempre orientativos, ya que para la realización del montaje hemos requerido de menos tiempo en la realidad, pero ha sido necesario trasladar dicha ventaja al apartado de testeo y pruebas.

En la siguiente hoja podemos observar la misma planificación de forma gráfica.

Page 19: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 18 ‐

MEMORIA.- Planificación

Page 20: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 19 ‐

MEMORIA.- Cálculos

A la hora de desarrollar el prototipo, tuvimos en cuenta los siguientes cálculos o mediciones, necesarios para el desarrollo del mismo.

Batería: necesitábamos tener un nivel de tensión de 5 v. para la alimentación del micro controlador, y de 3’3 v. para el dispositivo Bluetooth. Los motores funcionan con un tensión mínima de 2 v. por lo que el nivel de batería debe de ser mínimamente de 5 v.

Al colocar el conjunto de baterías, de forma serie, y siendo su valor de 1’5 v., conseguimos un total de 7’5v. , al medir con el polímetro vemos que ese voltaje se corresponde con su nivel de carga máximo, con lo que ira decreciendo a medida que estas vayan consumiendo su energía.

Como el valor mínimo necesario de alimentación que necesitamos es de 5 v., que corresponden con la alimentación del micro controlador, con una tensión de 7’5v. y los reguladores adecuados podremos llevar a cabo la gestión de la alimentación de los componentes.

Al colocar los reguladores y medir el voltaje que nos otorgan, los resultados han sido los siguientes:

-7805: 4’9 v.

-LD-33: 3’2 v.

Por otra parte, los motores, pueden soportar la tensión de 7’5 v. alcanzando una velocidad suficiente para nuestros propósitos.

Comunicación: a la hora de comunicar el vehículo y el control, es de suma importancia la distancia máxima de comunicación que tenemos entre el emisor y receptor Bluetooth.

Los siguientes resultados son fruto de la medición práctica de dichas distancias:

-Interior: 15 metros.

-Exterior: 30-35 metros.

Estas mediciones, dependen en parte, del nivel de alimentación del dispositivo Bluetooth, y de las características de ambos dispositivos, el del prototipo y el del control.

Page 21: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 20 ‐

MEMORIA.- Cálculos

Potencia: para controlar la potencia total del circuito, una vez montado, realizamos las mediciones propias con un amperímetro para averiguar su consumo total.

Los resultados obtenidos fueron los siguientes:

-Consumo sin motores: 650 mA/h.

-Consumo con motores: 1200 mA/h.

-Pico de consumo al arranque de motores: 1900 mA/h.

Como las baterías seleccionadas, nos ofrecen 2000 mA/h., es más que suficiente para soportar dichos valores.

Coordenadas GPS: para el cálculo de las coordenadas GPS, era necesario la labor del equipo informático, José Ángel Salvador y Sergio Martínez, quienes desarrollaron la labor de gestionar los datos que nos entregaba el GPS y realizar la complicada tarea de calcular la rectificación que debía realizar el vehículo según su posición.

El sistema realiza lo siguiente:

-Coloca al vehículo en un cuadrante abstracto de coordenadas X,Y.

-Recibe las coordenadas del vehículo y las del primer punto de ruta.

-Resta las coordenadas tanto de latitud (Y), y longitud (X), de ambas variables, el vehículo y el punto de ruta.

-Según su valor negativo o positivo con respecto a X e Y, sabrá en que cuadrante se encuentra y podrá realizar las distintas operaciones de corrección.

-Si se encuentra en X, Y, girará a la derecha.

-Si se encuentra en –X, Y, girará a la izquierda.

-Si se encuentra en –X, -Y, girará hacia la izquierda, lo que fuese necesario.

-Si se encuentra en X, -Y, girará hacia la derecha, lo que fuese necesario.

+X +Y

 

-X +Y

 

X

Y

Page 22: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 21 ‐

MEMORIA.- Descripción General

Para poder entender cuál es la verdadera finalidad de nuestro proyecto, resumiremos aquí sus principales características, bloques y finalidad.

Nuestro proyecto, consiste en el guiado de un vehículo, mediante el apoyo de un sistema GPS. Este guiado debe ser de manera totalmente autónoma, marcando previamente sobre un mapa virtual las posiciones a recorrer, y cumplirlas posteriormente según las indicaciones del sistema de control.

En primer plano, poseemos el dispositivo GPS, el cual nos entregará la posición del vehículo, según sus características de refresco de datos. Debemos contar con su capacidad para posicionarse, y con qué precisión lo realiza, ya que deberemos tenerlo en cuenta a la hora de realizar los cálculos de ruta. El GPS seleccionado, cuenta con comunicación Bluetooth, por lo que nos permite una rápida integración del mismo dentro del proyecto.

Para conocer el funcionamiento del GPS y como trabaja, debimos investigar acerca de dicha tecnología, descubriendo poco a poco sus fundamentos y características.

No pretendemos ser desarrolladores de gran tecnología, pero si conseguimos, por poco que sea, el reconocimiento de posición, y que el control sea consciente de la existencia de otros puntos de ruta, y sea capaz de rectificar la posición del vehículo conforme a la posición de esos puntos de ruta, será un logro loable.

En sí mismo, el micro controlador del vehículo, es un traductor de órdenes que le llegan desde el dispositivo de control, con lo que su programación es sencilla, y no posee demasiadas líneas de código. Cuando el dispositivo de control realice los cálculos apropiados para el control de la ruta del vehículo, enviará órdenes al micro controlador, mediante la conexión Bluetooth, siendo muy pocas las posibilidades que necesitamos para el control de dirección y velocidad del vehículo. Únicamente deberemos tener en cuenta la integración de un driver para el control de la potencia que comanda los motores, ya que el micro controlador por sí mismo no es capaz de gestionarla.

Por lo tanto los bloques en los que queda definido el proyecto son los siguientes:

Emisor/Receptor Bluetooth  Emisor/Receptor Bluetooth

Micro Controlador Vehículo  Dispositivo de Control

Driver de Control Motores 

Vehículo 

Dispositivo GPS

Emisor/Receptor Bluetooth

+X -Y

 

-X -Y

 

Page 23: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 22 ‐

MEMORIA.- Funcionamiento General

El vehículo prototipo de nuestra creación, tiene acoplado un modulo Bluetooth y un receptor GPS. Elementos vitales con los que trabaja. Mediante el receptor GPS obtenemos las coordenadas de su situación, es el primer paso antes de comenzar el cálculo de la ruta del vehículo. A su vez, el receptor GPS su contiene otro modulo Bluetooth, mediante el cual se comunica con el dispositivo móvil y le indica a este las coordenadas. Debido a que se da el caso de que hay dos módulos Bluetooth, el dispositivo móvil ha de conectarse a los dos a la vez, creando dos conexiones simultaneas. El dispositivo móvil ahora conoce las coordenadas del vehículo y las coordenadas del punto al que este ha de dirigirse, de esta manera, se realizan los cálculos oportunos para averiguar la dirección que el vehículo ha de tomar. Para calcular la dirección que este debe llevar, es necesario conocer previamente la dirección inicial. Todos estos cálculos se detallan en el apartado de programación, sólo diremos que el coche no conoce el punto exacto a donde ha de llegar, si no que en un cuadrante abstracto que establece él como centro de éste, sabrá en que cuadrante se encuentra el punto, y hacia donde debe rectificar. Una vez establecida la dirección a tomar, el dispositivo móvil da las órdenes pertinentes al vehículo, que en este caso serán de girar durante determinado tiempo hacia un lado y después seguir recto. Este recibe las ordenes del dispositivo móvil a través de su modulo Bluetooth y las ejecuta. El prototipo se desplaza siguiendo las órdenes recibidas mientras el receptor GPS está recogiendo en todo momento las coordenadas y enviándolas al dispositivo móvil. Así el dispositivo sabrá en qué momento el vehículo ha llegado a su destino, ordenándole que se detenga. Si se quiere ir a otro punto todo el proceso se repite. Podemos ver cómo actúa, dependiendo de en que cuadrante se encentre el punto al que desea llegar.

El vehículo sabe que el punto se 

encuentra en algún lugar del 

cuadrante izquierdo superior, por 

lo que deberá girar hacia éste, un 

determinado número de grados. 

Punto de ruta 

Vehículo 

Page 24: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 23 ‐

MEMORIA.- Programación PIC

  - El coche se comunica con el dispositivo móvil mediante Bluetooth, gracias al cual se crea un puerto serie virtual. El programa gira en torno a esta conexión serie, ejecutando diferentes acciones en función de la información que es recibida a través de ese canal. La información que se recibe son caracteres, cada uno de los cuales está asignado a una acción a realizar. Si se recibe un carácter que no está asociado a ninguna acción no ocurre nada.

- El programa es simple y sencillo como vemos a continuación:

-En este bloque, como siempre, establecemos el tipo de micro controlador a usar (PIC 16f84A), así como configurar la frecuencia del reloj externo. En este bloque también configuramos la comunicación serie: la velocidad de transmisión, los pines de recepción y transmisión, la paridad, etc. Por último introducimos una variable, que como veremos más adelante, será la que tome el valor de lo que llega por la comunicación serie.

- En este segundo bloque se configuran los pines I/O del micro controlador como consideremos adecuado. Y en el cuerpo principal del programa, empezamos estableciendo que la variable antes creada, adquiera continuamente el valor de lo que

main() 

  a=getc(); 

  set_tris_a(0b00011111);  // Puerto A se configura como entrada 

  set_tris_b(0b00000000);  // Puerto B se configura como salida 

  port_b = 0; 

 

while(1) 

 

a=getc(); 

#include <16f84A.h> 

#byte port_a = 5 

#byte port_b = 6 

#use delay(clock=4000000) 

#use rs232(BAUD=9600, BITS=8, 

PARITY=N, XMIT=PIN_a0, 

RCV=PIN_a1, RESTART_WDT) 

 

char a; 

Page 25: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 24 ‐

está siendo recibido mediante la comunicación serie. De forma que si se recibe un carácter "w", la variable valga “w”.

MEMORIA.- Programación PIC

-En este último bloque, se establecen las acciones concretas a realizar en función de lo que valga la variable “a”, o lo que es lo mismo, en función de lo que se reste recibiendo vía serie. Las acciones de girar en ambos sentidos tienen unos delays para hacer que solo gire durante un tiempo establecido y después pare. Esto se hace así para controlar los grados que giramos.

-Como se puede observar, con este programa se puede desplazar al vehículo en cualquier dirección, por lo tanto, este grupo de acciones es suficiente para hacer ir al vehículo a cualquier punto que deseemos.

switch(a) 

   case 'w':  //adelante 

      output_b(0b00001010); 

      break; 

 

  case 'a':  //izquierda 

      { 

      port_b=0; 

      delay_ms(100); 

      output_b(0b00000110); 

      delay_ms(100); 

      port_b=0; 

      } 

      break; 

   case 'd':  //derecha 

      { 

      port_b=0; 

      delay_ms(100); 

      output_b(0b000001001); 

      delay_ms(100); 

      port_b=0; 

      } 

      break; 

   case 'p':  //stop 

      port_b=0; 

      break; 

 

Page 26: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 25 ‐

MEMORIA.- Programación Informática

En el primer bloque del programa informático, encontramos la programación correspondiente a la conectividad Bluetooth. En ella, simplemente se pregunta a los dispositivos, si se encuentran conectados, además de devolvernos una realimentación a la conversación o log del programa.   privatevoidiniciarBluetooth() {     BluetoothDevicedeviceGPS = mBluetoothAdapter         .getRemoteDevice(addressGPS);     BluetoothDevicedeviceCoche = mBluetoothAdapter         .getRemoteDevice(addressDireccion);      if (deviceGPS != null) {       Toast.makeText(getBaseContext(), deviceGPS.getName().toString(),           Toast.LENGTH_SHORT).show();     }      if (deviceCoche != null) {       Toast.makeText(getBaseContext(), deviceCoche.getName().toString(),           Toast.LENGTH_SHORT).show();     }      try {       btSocketGPS = deviceGPS.createRfcommSocketToServiceRecord(MY_UUID);       btSocketCoche = deviceCoche           .createRfcommSocketToServiceRecord(MY_UUID);       Log.d(TAG, "sockets creados");     } catch (IOException e) {       Log.e(TAG, "ON RESUME: Socket creation failed.", e);     }      mBluetoothAdapter.cancelDiscovery();      try {       btSocketGPS.connect();       Log.i(TAG, "SOCKET GPS CONECTADO.");     } catch (IOException e) {       Log.e(TAG, "FALLO CONEXION SOCKET GPS", e);       try {         btSocketGPS.close();       } catch (IOException e2) {         Log.e(TAG, "NO SE PUEDE CERRAR EL SOCKET GPS", e2);       }       return;     }      try { 

Nos 

devuelve 

información 

sobre la 

conexión. 

Conexión con los 

Bluetooth de los 

diferentes dispositivos 

Page 27: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 26 ‐

      btSocketCoche.connect();       Log.i(TAG, "SOCKET DIRECCION CONECTADO");     } catch (IOException e) {       Log.e(TAG, "FALLO CONEXION SOCKET DIRECCION", e); 

MEMORIA.- Programación Informática

             try {         btSocketCoche.close();       } catch (IOException e2) {        Log.e(TAG, "NO SE PUEDE CERRAR EL SOCKET DIRECCION", e2);     }     return;     }      try {       inStream = btSocketGPS.getInputStream();     } catch (IOException e) {       Log.e(TAG, "ON RESUME: Output stream creation failed.",e);     }      try {       outStream = btSocketCoche.getOutputStream();     } catch (IOException e) {       Log.e(TAG, "ON RESUME: Output stream creation failed.",e);     }     hiloBluetooth();   } 

 

 

 

 

 

 

 

 

 

 

 

Nos devuelve información 

sobre la conexión. En este caso, 

error en la conectividad 

Page 28: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 27 ‐

 

 

 

MEMORIA.- Programación Informática

 En el siguiente bloque de programación, es de vital importancia el descifrar lo que nos proporciona el GPS, el cual, nos entrega cadenas de caracteres con toda la información necesaria para nuestro propósito.

 

 

protectedvoidhiloBluetooth() {   t = newThread() {      publicvoid run() {       message = "";       msgBuffer = newbyte[1024];        while (seguirHilo) {         try {           Thread.sleep(1000);         } catch (InterruptedException e) {           e.printStackTrace();         }         mHandler.post(new Runnable() {            publicvoid run() {             if (cogerCoordenadas) {               try {                    int bytes = inStream.read(msgBuffer);                    message = new String(msgBuffer, 0, bytes);                    String texto = "";                    String latitud = "";                    String longitud = "";                    String[] linea = message.split("\n");                    intlineaCogida = 0;                    for (inti = 0; i<linea.length; i++) {                      String[] token = linea[i].split(",");                      if (token[0].equals("$GPGGA")) {                      lineaCogida = i;                        

Recogemos las cadenas 

que nos da el GPS, y las 

guardamos 

Guardamos cada 

cadena en una variable, 

y confirmamos su 

recogida. 

Page 29: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 28 ‐

break;                      }                   }                      

MEMORIA.- Programación Informática

     String[] token = linea[lineaCogida]                      .split(",");                     if (token[0].equals("$GPGGA")) {                      String[] coords = descodificarCadena(linea[lineaCogida]);                       String[] tokenLa = coords[0].split(" ");                      String[] tokenLo = coords[1].split(" ");                       Double lat = cToGradosDec(Double                        .parseDouble(tokenLa[0]                            .toString()), Double                        .parseDouble(tokenLa[1]                            .toString()), Double                        .parseDouble(tokenLa[2]                            .toString()));                      Double lon = cToGradosDec(Double                        .parseDouble(tokenLo[0]                            .toString()), Double                        .parseDouble(tokenLo[1]                            .toString()), Double                        .parseDouble(tokenLo[2]                            .toString()));    

Tras localizar y disgregar los 

datos de latitud y longitud, 

el GPS nos da números sin 

sentido que debemos 

interpretarlos en grados, 

minutos y segundos  

Page 30: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 29 ‐

                          

MEMORIA.- Programación Informática

 if (token[3].equals("N")                        &&token[5].equals("W")) {                      latitud = "" + lat;                      longitud = "‐" + lon;                      } elseif (token[3].equals("S")                        &&token[5].equals("W")) {                      latitud = "‐" + lat;                      longitud = "‐" + lon;                      } elseif (token[3].equals("S")                        &&token[5].equals("E")) {                      longitud = "" + lon;                      latitud = "‐" + lat;                      } else {                      longitud = "" + lon;                      latitud = "" + lat;                      }                          latD = Double.parseDouble(latitud);                      lonD = Double.parseDouble(longitud);                       Double lati = latD * 1E6;                      Double longi = lonD * 1E6;                       setCar(latD, lonD);    

Algo tan obvio, como es la 

división de la tierra en 

latitud y longitud, para 

nosotros tendrá un valor 

positivo o negativo, según 

el lugar en el que nos 

encontremos en este 

planeta  

Por fin, tenemos unas 

variables, que guardaran 

exclusivamente los grados, 

minutos y segundos de 

latitud y longitud, según 

nuestra posición y ya 

convertidos.  

Enviamos estas variables, a 

las órdenes del vehículo.  

Page 31: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 30 ‐

     

MEMORIA.- Programación Informática

                 GeoPointgp = newGeoPoint(lati                        .intValue(), longi.intValue());                     mc.animateTo(gp);                       texto = "Satelites: " + token[7] + ".";                      texto += "\nPrecisión: " + token[8]                        + ".";                      texto += "\nCoordenadas: " + token[2]                        + "|" + token[4] + ".";                      texto += "\nHora: " + token[1] + ".";                    } else {                      texto = "Coordenada recibida incorrecta.";                    }                    Log.i(TAG, texto);                  txtTexto.setText(texto);                  } catch (Exception e) {                    Log.e(TAG,                        "ON RESUME: Exception during write.",                        e);                  }}}});        }}};  t.start(); } 

 

En este apartado, 

devolvemos valores tales 

como la precisión, el 

número de satélites y las 

coordenadas en las que nos 

encontramos, para poder 

ser visualizadas en pantalla. 

Page 32: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 31 ‐

 

 

 

MEMORIA.- Programación Informática

 

Ahora comienza el verdadero programa, y bloque central de la aplicación de control, una vez establecida la conexión Bluetooth con los dispositivos, realizado la recogida, conversión y cálculo de coordenadas, es hora de mandar las órdenes al vehículo.

protectedvoidhiloDistancias() {     t = newThread() {       publicvoid run() {       for (inti = 0; i<longitudes.size(); i++) {       while (calcularDistancia(latD,lonD,latitudes.get(i),                                     longitudes.get(i))>precision&&seguirHilo)  {         // Cogercoordenadas         DoublelatI = latD;         Double lonI = lonD;         enviar("w");          try {                       Thread.sleep(15000);         } catch (InterruptedException e) {         e.printStackTrace();                 }               enviar("p");          try {         Thread.sleep(1000);             } catch (InterruptedException e) {         e.printStackTrace();         }          // Cogercoordenadascoordenadas         Double latF = latD;         Double lonF = lonD;          // Calcular el anguloquetienequegirar      

Lo primero es 

localizar el 

vehículo y 

asignarle sus 

coordenadas 

Que avance al frente 

durante 10 segundos y 

luego pare.

Recoger de nuevo su 

posición, y guardas las 

nuevas coordenadas.

Page 33: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 32 ‐

      

MEMORIA.- Programación Informática

Continuando con el bloque principal de programa, nos encontramos con la parte más importante, los cálculos. finalintgradosCoche = calcularGrados(latI, lonI, latF, lonF);  longitudes.get(i), latitudes.get(i));    grados = gradosPunto ‐ gradosCoche;   mHandler.post(new Runnable() {   publicvoid run() {   if (grados> 0 &&grados< 180) {   for (inti = 0; i<grados; i += 10) {   enviar("a");   try {                      Thread.sleep(1000);   } catch (Exception e) {   }   enviar("p");   try {                      Thread.sleep(1000);   } catch (Exception e) {   }}   } elseif (grados>= 180) {   for (inti = grados; i> 0; i ‐= 10)    {   enviar("d");   try {                      Thread.sleep(1000);   } catch (Exception e) {   }   enviar("p");   try {                      Thread.sleep(1000);   } catch (Exception e) {   }}}       

Suponiendo, al vehículo, en 

una horizontal inicial a 0 

grados, los grados del 

punto, menos los grados 

actuales del coche, nos 

darán su diferencia, 

pudiendo ser esta positiva o 

negativa tanto para el eje X 

como el Y, y rectificando en 

la dirección determinada 

por este cálculo, el tiempo 

necesario. 

Page 34: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 33 ‐

      

MEMORIA.- Programación Informática

   Toast.makeText(                    getBaseContext(),   "Grados: " + grados                        + "\nGrados coche: "                        + gradosCoche                        + "\nGradospunto: "                        + gradosPunto,                    Toast.LENGTH_SHORT).show();}});    try {   Thread.sleep(2000);   } catch (InterruptedException e) {   e.printStackTrace();   }}}   mHandler.post(new Runnable() {   publicvoid run() {   if (calcularDistancia(latD, lonD,                latitudes.get(latitudes.size() ‐ 1),                longitudes.get(latitudes.size() ‐ 1)) <= precision)   {Toast.makeText(getBaseContext(),   "Ha llegado a su destino",   Toast.LENGTH_SHORT).show();   enviar("p");             }           }         });       }     };     t.start();   } 

 

 

 

Nos devuelve información 

de los grados del coche y los 

del punto. 

Finalmente, si el resultado 

de ese cálculo, dentro de un 

margen de 1 metro, es igual 

al punto final de recorrido, 

finaliza el programa y nos 

muestra un mensaje final. 

Page 35: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 34 ‐

 

 

 

MEMORIA.- Programación Informática

Dentro del mismo programa informático, nos encontramos con varias funciones resumidas, como la de recoger información del GPS, convertir datos a valores decimales, redondear los resultados de las operaciones, o por supuesto la parte que permite la visualización de la aplicación en el dispositivo móvil correctamente, mostrando imágenes para el vehículo, los puntos de ruta, logos, etc. . . Pero para nosotros lo realmente importante era visualizar de manera conceptual el funcionamiento de esta aplicación, dejando en un segundo plano toda la labor de conversiones, y capturas de datos, así como su gestión y posterior visualización. Como explicábamos anteriormente, cogíamos las cadenas que nos daba el GPS y las convertíamos en coordenadas, pero aquí tienen un ejemplo, de la función que permite registrar estas cadenas, discriminar los datos no válidos y quedarnos con los realmente importantes. Así ocurre con las demás funciones, que no consideramos relevante mostrarlas aquí. publicString[]descodificarCadena(StringcadenaRecibida) {     String cadena = cadenaRecibida;     String[] datos = cadena.split(",");      String latitud = calcularCoordenada(datos[2].toString());     String longitud = calcularCoordenada(datos[4].toString());     String[] coords = { latitud, longitud };     returncoords;   }  privateStringcalcularCoordenada(String coordenada) {     int grados = Integer.parseInt(coordenada.substring(0, 2));     int minutos = Integer.parseInt(coordenada.substring(         coordenada.indexOf(".") ‐ 2, coordenada.indexOf(".")));     Double segundos = Double.parseDouble(coordenada.substring(coordenada         .indexOf(".") ‐ 2)) ‐ minutos;      segundos = redondear(segundos, 5);     segundos *= 60;     segundos = redondear(segundos, 5);     coordenada = grados + " " + minutos + " " + segundos;      return coordenada;   }  publicvoid enviar(String texto) {     cogerCoordenadas = false;     byte[] msgBuffer = texto.getBytes(); 

Page 36: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 35 ‐

    try {       outStream.write(msgBuffer);     } catch (IOException e) {       Log.e(TAG, "Exception during write.", e);     }     cogerCoordenadas = true;   } 

MEMORIA.- Pruebas

A lo largo del desarrollo, la parte más importante de este proyecto, eran las pruebas, las cuales las realizamos siempre bajo un exhaustivo control por nuestra parte, registrando siempre cualquier comportamiento tanto anómalo, como esperado.

La operación que más trabajo nos dio a la hora de realizar las pruebas, fue cuando, una vez finalizado el prototipo y su programación, nos decidimos a comprobar su funcionamiento.

Desde las primeras pruebas, nos dimos cuenta de una serie de modificaciones que llevamos a cabo enseguida, para volver a probar inmediatamente después de aplicarlas.

El método que seguimos en un principio, y que fue la tónica de nuestras pruebas, consistía en desplazarnos al exterior del aula, si no el GPS no recibe señal, y situarnos en los campos deportivos. Esto nos permitía, visualizar vía satélite, las líneas que delimitan las diferentes zonas del patio, y situar mejor los puntos de referencia con respecto al vehículo.

Posteriormente, y al no tener existo en las primeras pruebas, dividimos el trabajo en varios bloques.

Decidimos comprobar que se conexionaba correctamente, reconocía su posición, y entendía las órdenes que le transmitíamos. Además, añadimos la capacidad de visualizar los datos gestionados, y comprobar que los cálculos se realizaban correctamente.

Verdaderamente ya sabíamos que el programa funcionaba, ahora queríamos comprobar que cuando llegara a un determinado punto girara para rectificar su trayectoria, y efectivamente realizaba dicha operación.

El último bloque que nos quedaba por comprobar, era la finalización de la ruta, y tras trasladarnos a este punto, pudimos comprobar cómo el programa, al llegar al final de la ruta, detenía su proceso, obligaba a parar al vehículo, y nos respondía con un mensaje de finalización de ruta, “Ha llegado a su destino”.

Page 37: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 36 ‐

MEMORIA.- Dificultades y Soluciones

Como en toda actividad, un proyecto siempre se ve envuelto en eventualidades y dificultades, pero no por ello hay que desistir, si no encontrar la vía más cercana para escapar de dicho contratiempo y solventarlo.

A lo largo de nuestro proyecto surgieron no uno, si no varios problemas, eventualidades o dificultades.

-Precisión GPS: este factor, lo tuvimos en cuenta desde los inicios del proyecto, sabíamos que en ello residía la fundamental base para que el proyecto funcionara de manera correcta. Por ello estuvimos centrados en este problema desde el principio, pasando por la parte de desarrollo, y hasta llegar a las pruebas y test, sin dejar de pensar en ello.

Sin embargo, dejamos su posible corrección, para la parte final de test, ya que no sabíamos cómo iba a reaccionar el vehículo, ni como deberíamos actuar.

Tras observar su comportamiento, pudimos introducir una rectificación de error, dentro de las fórmulas de cálculo de ruta.

-Comunicación Bluetooth: en este aspecto, tuvimos dos salvedades que supimos resolver inmediatamente. Por un lado el pitch o anchura de las conexiones del módulo Bluetooth, eran extremadamente pequeñas, pero pudimos soldar con la ayuda de una lupa y un soldador con la punta mas fina.

Por otro lado, tras innumerables pruebas, no conseguíamos resolver la aparentemente incompatibilidad entre el módulo Bluetooth, y el PIC 16F876A, pero como nuestra programación para el PIC, no era excesivamente compleja, pudimos utilizar el PIC 16F84A, el cual si nos funcionó en las primeras pruebas.

-Comunicación RS232: a decir verdad, más que un error, fue una impertinencia no programada, ya que aunque comunicábamos el dispositivo Bluetooth, difícilmente veíamos resultados en cuanto a lo que nosotros emitíamos y el coche recibía.

Tras investigar a través de foros en la red, y consultar hojas de características y apuntes, averiguamos que en el sistema operativo

Page 38: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 37 ‐

Windows 7 , hay que lanzar el puerto serie, a través de un programa emulador para tal fin.

Y los problemas de comunicación se debían básicamente, a que, el fabricante del dispositivo Bluetooth, había marcado incorrectamente las dos patillas encargadas de la transmisión, recepción de datos (Rx/Tx). Simplemente teníamos que intercambiarlas entre sí.

MEMORIA.- Dificultades y Soluciones

-Grabación del PIC: al principio y durante las primeras pruebas, empleábamos el micro controlador PIC 16F876A, el cual nos daba error a la hora de grabar con cierta regularidad.

Esto lo pudimos solventar, utilizando otro tipo de micro controlador, el PIC 16F84A. Aún así, en contadas ocasiones encontrábamos fallos de grabación, y es que se debe seguir un estricto ritual a la hora de grabar, encender la trainer, abrir el programa, borrar la última línea del fichero .hex, etc...

Cualquier error en estos pasos, desencadenaba en el fallo automático de nuestros propósitos.

-L293 Driver de Potencia: fueron muchas, las horas invertidas en la realización de un driver de control para motores, mediante el integrado L293, y varios diodos. Pero sin saber cómo, todavía, no lográbamos resultado alguno.

Se nos dejo probar un driver, de las mismas características, pero que ya venía prefabricado, y que al conectarlo no nos dio ningún tipo de problema.

Lo intentamos varias veces más, buscando información acerca del asunto, pero sin resultado alguno. Por ello utilizamos el driver prefabricado, y es que si ya está montado, muchas veces es mejor utilizar lo que ya existe, y saber cómo usarlo, que no intentar montarlo desde cero.

-Motores y Voltaje: en ocasiones, cuando nuestro vehículo se encuentra en funcionamiento, pierde la conexión sin motivo aparente, y no conseguimos averiguar el por qué de estas interrupciones.

Nos percatamos que el diodo led de control del dispositivo Bluetooth, perdía intensidad con cada orden comunicada al prototipo. Aunque no sabíamos la razón de dicho efecto, ni si era normal o no, decidimos medir el voltaje en funcionamiento. Nos percatamos de que cada vez que enviábamos una orden o instrucción, el pico de puesta en marcha

Page 39: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 38 ‐

de los motores, hacia descender la tensión general a todo el conjunto. Pero teniendo a mano un juego de pilas recargables, simplemente mantuvimos esos niveles de tensión en estado óptimo para el funcionamiento correcto del prototipo.

MEMORIA.- Aplicaciones

A la hora de plantearnos el comienzo de dicho proyecto, la primera pregunta que nos formulamos fue la siguiente:

¿Y esto, para que puede servir?

Y tuvimos una gran labor de investigación e imaginación.

Piensen por un momento en la automatización, ese método de trabajo que consiste en que la máquina gestione todo un proceso sin que el ser humano intervenga, únicamente sólo para reprogramarla según nuestros designios.

Pues ese es el espíritu del moderno ser humano, crear dispositivos cada vez más capacitados para tomar decisiones, actuar y obedecer todas nuestras peticiones.

Una de las fronteras para conseguir aun mayor comodidad y autonomía a la hora de efectuar cada trabajo, es el guiado automático. El GPS, se utiliza ya para el control de flotas, con lo que ayuda a tener bajo control en cualquier momento todos y cada uno de nuestros vehículos, averiguar que ruta realizan, su velocidad y horas de entrega o servicio. Con todos estos datos, es posible mejorar el sistema o simplemente controlarlo.

Sin embargo las ultimas noticias, de reciente conocimiento, son los llamados coches autónomos, capaces de conducir a través de las calles de cualquier ciudad, sin conductor, por sus propios medios.

Estos vehículos cuentan con numerosos elementos controladores y sensores de la posición del vehículo, pero el elemento base para dicha gestión, será siempre el GPS, mientras no surja otro tipo de posicionamiento global.

Pero imaginando en el mundo del mañana, podemos ver como toda una flota de vehículos con dispositivo GPS, puede venir a la puerta de nuestra casa a recogernos, y acercarnos a nuestro destino seleccionado, sin necesidad de conducir por nosotros mismo.

Pero el GPS no sólo tiene su uso destinado a posicionar vehículos, la investigación de movimientos de animales, icebergs, u otros elementos, es otro apartado fundamentado en esta tecnología.

Page 40: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 39 ‐

O simplemente el control de personas, pudiendo delimitar áreas imaginarias que no se puedan rebasar o penetrar en ellas.

En definitiva, cualquier control sobre elementos, vehículos o personas, sobre este planeta, debe contar con algún tipo de tecnología global de posicionamiento.

MEMORIA.- Conclusiones

Si tuviéramos que enfocar este apartado desde el punto de vista meramente práctico o técnico, las conclusiones serían una repetición de datos, unos tras otros, o la declaración de frases ya postuladas a lo largo del documento.

Aun así cabe destacar en el apartado meramente técnico, lo siguiente:

Para la gestión de un vehículo autónomo, es necesario contar con un dispositivo GPS que posea una buena precisión o características, y además algún otro dispositivo que complemente el posicionamiento del vehículo.

Pero preferimos centrarnos en la parte emocional, por decirlo de alguna manera, que compromete un proyecto de estas características.

Quien nos ha visto y quién nos ve, afrontando los momentos finales de un ciclo, un arduo recorrido por el mundo de la electrónica, en el cual no sólo hemos ganado aspectos puramente teóricos o técnicos de dicha materia, si no que hemos logrado obtener una serie de aptitudes y actitudes que nos ayudarán a enfrentarnos a lo largo de nuestra vida a todo tipo de situaciones, ya sea en el trabajo, o en nuestro crecimiento personal.

De algún modo y otro, todos hemos crecido, aprendido algo nuevo, sobre las cosas que nos rodean, la electrónica, y espero que algunos lo hayan hecho sobre sí mismos.

Porque sí, este recorrido nos ha mostrado que valemos lo que nosotros queramos, hemos aprendido a valernos por nosotros mismos, a caminar junto a compañeros, a cooperar con el de al lado, a respetarnos entre todos, y siempre a centrarnos en nuestra tarea.

Después de todo hemos ganado muchas habilidades, que aun mejorables, nos han sido descubiertas y mostradas.

Hemos aprendido a buscar, seleccionar y clasificar, información acerca de un tema en concreto, aprendido a enfrentarnos a un problema determinado y cómo subdividirlo para poder enfocarlo desde otros puntos de vista, aprendido a utilizar los medios a nuestro alcance, a compartir la información entre compañeros y a obtener beneficio de ello, etc. .

Page 41: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 40 ‐

Pero por más que nos esforcemos, debemos ser razonables, seguir creciendo, seguir luchando, seguir aprendiendo, adaptándonos a un nuevo mundo de posibilidades, y n o conformarnos con completar el proyecto, si no exprimirlo, y aprender a sacar el jugo al esfuerzo realizado en invertido en ello, ya que el que funcione o no, es una cosa, pero el trabajo que hayamos desarrollado es lo verdaderamente importante y de donde de verdad extraeremos todo nuestro potencial.

-Vehículo Prototipo

PLANOS

-Circuito Eléctrico  

-Placa de Componentes  

Page 42: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 41 ‐

PLANOS.-Circuito Eléctrico

Page 43: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 42 ‐

 

 

 

Page 44: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 43 ‐

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Page 45: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 44 ‐

 

 

 

 

 

 

 

PLANO DE PISTAS Y COMPONENTES2:1

Page 46: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 45 ‐

PLANOS.-Listado de Conexione.

La siguiente relación de conexiones, corresponden con los diferentes bloques del prototipo y su interconexión.

Conexiones L293 Micro controlador Alimentación L293 COLORESE1 CN5 (2)E2 CN5 (1)E3 CN6 (2)E4 CN6 (1)S1 Motores A (+)S2 Motores A (-)S3 Motores B (+)S4 Motores B (-)

J1 +5v CN3 (2) J2 +5vJ1 GND GND (Baterías) J2 GNDJ1 +VM VCC (Baterías J2 +VM

CN1 (1) VCC (Baterías)CN1 (2) GND (Baterías)

Page 47: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 46 ‐

CN1

CN

6C

N7

CN

5

CN3CN2CN4

S1

S2

S3

S4

E1

E2

E3

E4

1 2

VccGNDVm

VccGNDVm

ALIMENTACION

+ _

PLANOS.-Listado de Conexione.

Alimentación y conexionado de motores  

Page 48: Memoria Vehículo GPS

Vehículo Autónomo GPS   

 

 ‐ 47 ‐

CN1

CN

6C

N7

CN

5

CN3CN2CN4

S1

S2

S3

S4

E1

E2

E3

E4

1 2

VccGNDVm

VccGNDVm

ALIMENTACION

+ _

PLANOS.-Listado de Conexione.

 

 

 

 

 

 

 

 

 

Conexionado de control de motores