92
REPÚBLICA BOLIVARIANA DE VENEZUELA MINISTERIO DEL PODER POPULAR PARA LA DEFENSA UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA DE LA FUERZA ARMADA NACIONAL NÚCLEO CARACAS UNIDAD DE ASUNTOS SOCIALES Y PC E.A.D. DE EXTENSIÓN SERVICIO COMUNITARIO ING. TELECOMUNICACION SISTEMA DE COMUNICACIÓN ODO-INCLINOMETRO CON GPS, PARA ATLETAS DE ALTO RENDIMIENTO EN LA DISCIPLINA DE NATACION Servidores Comunitários: Moreno Lameda Baudilio de la Cruz V- 16.668.403 Tutor Académico: Lic. Cristóbal Fuentes C.I. V- 9.483.026 Tutor Comunitario: Prof. Fortunato Moreno C.I. V- 6.320.110

Baudilio

Embed Size (px)

DESCRIPTION

Ing. Sistema Ardiuno

Citation preview

Page 1: Baudilio

REPÚBLICA BOLIVARIANA DE VENEZUELAMINISTERIO DEL PODER POPULAR PARA LA DEFENSA

UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA DE LAFUERZA ARMADA NACIONAL

NÚCLEO CARACASUNIDAD DE ASUNTOS SOCIALES Y PC

E.A.D. DE EXTENSIÓNSERVICIO COMUNITARIO

ING. TELECOMUNICACION

SISTEMA DE COMUNICACIÓN ODO-INCLINOMETRO CON GPS, PARA ATLETAS DE ALTO RENDIMIENTO EN LA DISCIPLINA DE NATACION

Servidores Comunitários:Moreno Lameda Baudilio de la CruzV- 16.668.403

Caracas, Junio 2015

Tutor Académico:Lic. Cristóbal FuentesC.I. V- 9.483.026

Tutor Comunitario:Prof. Fortunato MorenoC.I. V- 6.320.110

Page 2: Baudilio

REPÚBLICA BOLIVARIANA DE VENEZUELAMINISTERIO DEL PODER POPULAR PARA LA DEFENSA

MINISTERIO DEL PODER POPULAR PARA LA EDUCACIÓN UNIVERSITARIAUNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA DE LA FUERZA ARMADA

NACIONALVICERRECTORADO DE ASUNTOS SOCIALES Y PARTICIPACIÓN CIUDADANA

DIRECCIÓN NACIONAL DE EXTENSIÓNDIVISIÓN DE SERVICIO COMUNITARIO

NÚCLEO:_______Caracas_______________ EXTENSIÓN:______Chuao___________

CARTA DE ACEPTACIÓN DEL TUTOR ACADÉMICO DE SERVICIO COMUNITARIO DEL ESTUDIANTE UNEFISTA

Yo, Cristóbal Fuentes_; C.I.N° 9.483.026 Teléfonos de contacto: 1.- 04126102532 2.- _________________________. Me dirijo en la oportunidad de notificarle que en mi carácter de ( X ) Docente, ( ) Personal Administrativo, ( ) Otro:______________________ de esta Casa de Estudios he aceptado la solicitud hecha por los estudiantes:

NOMBRE Y APELLIDO C.I. CARRERABaudilio de la Cruz Moreno Lameda 16.668.403 Ing. Telecomunicación

Para ejercer las funciones de Tutor de Servicio Comunitario del proyecto titulado:

Sistema de comunicación Odo-inclinometro con GPS, para atletas de alto rendimiento en la disciplina de natación

a partir de la fecha _13_/_03_/_2015_; para lo cual me responsabilizo en nombre de la UNEFA a cumplir y hacer cumplir lo establecido en la Ley de Servicio Comunitario del Estudiante de Educación Superior y el Reglamento de Servicio Comunitario del Estudiante de la UNEFA, a la vez de evaluar el avance y la culminación de dicho proyecto con criterios cualitativos y cuantitativos en función de que se apliquen los conocimientos técnicos adquiridos por los estudiantes durante su formación académica y velando por que el servicio comunitario de los mismos abarque un período no menor de ciento veinte (120) horas de ejecución en un tiempo no menor a tres (03) meses ni mayor a doce (12) meses.

Sin más a que hacer referencia, se despide.

Atentamente,

__________________________________________Firma

Formato Anexo: SC.1-A DNE-DSC

Page 3: Baudilio

Atención.- Sres. Coordinación de Extensión

NÚCLEO: Caracas EXTENSIÓN:___________Chuao____________

CARTA DE ACEPTACIÓN DEL RESPONSABLE DE LA COMUNIDAD COMO TUTOR COMUNITARIO PARA LA PRESTACIÓN DE SERVICIO COMUNITARIO DEL ESTUDIANTE

UNEFISTA

Yo,___Fortunato Moreno____________________________;C.I.N° ___6.320.110________Me dirijo en la oportunidad de notificarle que a nombre de la ( ) Comunidad; ( X ) Institución; ( ) Unidad Educativa; ( ) EPS; ( ) Centro Penitenciario, ( ) Otro: ___________________________ denominado (a): ___UNEFA_________________________________________________________ bajo el cargo de: _____Proyectos para el Deporte y la Educación Física____________________, he aceptado la solicitud hecha por los estudiantes:

NOMBRE Y APELLIDO C.I. CARRERABaudilio de la Cruz Moreno Lameda 16.668.403 Ing. Telecomunicación

Para ejercer las funciones de tutor comunitario del proyecto de servicio comunitario titulado:

Sistema de comunicación Odo-inclinometro con GPS, para atletas de alto rendimiento en la disciplina de natación

A partir de la fecha_13_/_03_/_2015_; para lo cual me responsabilizo en nombre de la institución que represento a evaluar periódicamente el avance de dicho proyecto en función de que se apliquen los conocimientos técnicos adquiridos por los estudiantes durante su formación académica y velando por que el servicio comunitario de los mismos abarque un período no menor de ciento veinte (120) horas de ejecución en un tiempo no menor a tres (03) meses ni mayor a doce (12) meses.

Sin más a que hacer referencia, se despide.

Atentamente,

__________________________________________FIRMA Y SELLO

Números de contacto: 04122349441_______________________________________________

Formato Anexo: SC.1-B DNE-DSC

Page 4: Baudilio

ÍNDICE

CARTA DE ACEPTACIÓN DEL TUTOR ACADÉMICO ..……….……… I

CARTA DE ACEPTACIÓN DEL TUTOR COMUNITARIO……………… II

CUADRO RESUMEN DEL PROYECTO…………………………………… 2

INSTITUCIÓN ALIADA……………………………………………………… 3

PLANTEAMIENTO DEL PROBLEMA……………………………………… 4

JUSTIFICACIÓN……………………………………………………………… 8

OBJETIVO GENERAL Y OBJETIVOS ESPECÍFICOS…………………… 11

METAS………………………………………………………………………….. 13

COBERTURA GEOGRÁFICA Y POBLACIONAL………………………… 14

ACTIVIDADES, TAREAS, TIEMPO Y RECURSOS.……………………… 15

CRONOGRAMA DE ACTIVIDADES………………………………………… 17

DESCRIPCIÓN DE ACTIVIDADES Y TAREAS EJECUTADAS………… 18

POBLACIÓN BENEFICIADA……………………………………………….. 21

IMPACTO GENERADO EN LA COMUNIDAD…………………………… 22

APORTES DEL PROYECTO………………………………………………… 23

CONCLUSIONES……………………………...……………………………… 24

RECOMENDACIONES……………….………………………………………. 25

FUENTES CONSULTADAS….………………………………………………. 26

ANEXOS……………………………………………………………………… 27

Page 5: Baudilio

CUADRO RESUMEN DEL PROYECTO DE SERVICIO COMUNITARIO

1. INFORMACIÓN DEL TUTOR ACADÉMICO

NOMBRES APELLIDOS C.I.TELEFONO CARÁCTER (DOCENTE /

PERSONAL ADMINISTRATIVO /

OTRO)Cristóbal Fuentes 9.483.026 04126102532 Docente

2. INFORMACIÓN DE LOS ESTUDIANTESN° NOMBRES APELLIDOS C.I. CARRERA SEM. SECCIÓN TURNO

(D/N)1 Baudilio de la Cruz Moreno Lameda 16.668.403 Ing. Telecomunicación N23456

3. INFORMACIÓN DEL PROYECTONOMBRE DEL PROYECTO NOMBRE DE LA COMUNIDAD Y/O INSTITUCIÓN DIRECCIÓN

Sistema de comunicación Odo-inclinometro con GPS, para atletas de alto rendimiento en la disciplina de natación

Departamento de deporte UNEFA Chuao Av. La estancia con Av. Caracas

NOMBRE DEL TUTOR COMUNITARIO CARGO EN LA ORGANIZACIÓN ALIADA C.I. TELÉFONO

Fortunato Moreno Proyectos para el Deporte y la Educación Física 6.320.110 0412-2349441

MARCO PROGRAMÁTICO DEL PROYECTO (SELECCIONAR CON UNA X)UNEFA VA A LA ESCUELA UNEFA VA A LA COMUNIDAD XUNEFA VA A LOS CENTROS PENITENCIARIOS TODAS LAS MANOS A LA SIEMBRA

BENEFICIARIOS DEL PROYECTOTIPO DE BENEFICIARIO DIRECTOS INDIRECTOS TOTAL

ESTUDIANTESPERSONASTOTALES

1. VINCULACIÓN CON EL PLAN DE LA PATRIA 2013 – 2019OBJETIVO HISTÓRICO II. Continuar construyendo el Socialismo Bolivariano del siglo XXI, en Venezuela, Como alternativa al sistema

destructivo y salvaje del capitalismo y con ello asegurar “la mayor suma de felicidad posible, la mayor suma de seguridad social y la mayor suma de estabilidad política” para nuestro pueblo.

2

Page 6: Baudilio

INSTITUCIÓN U ORGANIZACIÓN PROPONENTE, ALIADA, COLABORADORA O DE APOYO

Identificación:

UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA DE LA

FUERZA ARMADA (UNEFA)

Dirección:

UNEFA Av. La estancia con av. Caracas y calle Holanda, frente al

edificio BANAVEN (Cubo Negro), Chuao, Municipio Chacao Edo.

Miranda- Venezuela 1060

Nombre del Representante:

Prof. Fortunato Moreno

Teléfono del Representante:

0412-2349441

Cargo o función del representante dentro de la organización:

Proyectos para el Deporte y la Educación Física

3

Page 7: Baudilio

PLANTEAMIENTO DEL PROBLEMA

Ubicación del Contexto:

La UNEFA desde su creación el 5 de octubre de 1998 mediante el

decreto N° 115 del Tcnel. (Ej.) Hugo Chávez Frías Presidente de la

Republica, logra personalidad jurídica y patrimonio propio e independiente

del Fisco Nacional. Adquirió el carácter de universidad experimental, estatus

que le confirió estructura dinámica y autonomía organizativa, académica,

administrativa, económica y financiera. Pasó además a formar parte del

Consejo Nacional de Universidades, ampliando y profundizando de este

modo sus objetivos, alcances académicos y competencias curriculares.

En la actualidad, la UNEFA, a tono con las exigencias del país, ha

emprendido un proceso de expansión y renovación curricular sin

precedentes, cuyos resultados son ya palpables. En cuanto al crecimiento en

infraestructura y matrícula, a los núcleos tradicionales de Caracas, Maracay y

Puerto Cabello 

Desde el punto de vista curricular, se ha ampliado significativamente la

oferta académica con nuevas carreras en Pregrado y Postgrado y el inicio del

Programa de Doctorado.

Dentro de ampliaciones se puede mencionar el apoyo de la

Coordinación de Deporte y Educación Física, que se ha encargado de ser

una organización líder en las políticas del ámbito deportivo a nivel nacional e

internacional, formadora de ciudadanos y deportistas integrales, con hábitos

de vida saludables, principios socialistas y alto sentido de pertenencia hacia

la Universidad y el país, mediante la generación, promoción y elaboración de

actividades físicas, deportivas y recreativas en estrecha relación con la

Fuerza Armada Nacional Bolivariana.

4

Page 8: Baudilio

Tomando en consideración los valores institucionales de esta casa

de estudio como son: excelencia, disciplina, honestidad, igualdad,

justicia, solidaridad, dignidad, patriotismo, humanismo y laboriosidad se

ha comprometido en explorar nuevas fórmulas para la producción del

conocimiento en el ámbito deportivo, así como aportar ideas novedosas

que coadyuven a satisfacer necesidades reales de los atletas de alto

rendimiento.

La Coordinación de Deporte adscrita al Vicerrectorado de Asuntos

Sociales y Participación Ciudadana, ha venido impulsando a partir del

2010 los proyectos científicos tecnológicos aplicados al área deportiva y

a la actividad física que coadyuven a optimizar el rendimiento de los

atletas de las disciplinas que se desarrollan en esta casa de estudio.

La natación es uno de los deportes que involucra la ejercitación de

todo el cuerpo y la mente, para su práctica el individuo debe tener

seguridad, relajación, resistencia muscular y respiratoria, lo que permitirá

la realización del ejercicio.

En la actualidad se ha estado trabajando en mejorar

tecnológicamente las diferentes herramientas usadas en la disciplina de

natación, con lo que surge la idea de crear diferentes sistemas de

obtención de datos, es decir transformar los movimientos de todo el

cuerpo durante el entrenamiento y convertirlos en datos que podrán ser

evaluados cuali-cuantitativamente, esto se hace posible mediante el uso

de arduino que es una placa controlada por microcontrolador que permite

adicionar sensores de movimientos y programarlos para obtener los

datos de los movimientos realizados por el atleta de natación con el fin

de poder observar el conteo de los movimientos desde un computador.

En los entrenamientos de natación se puede medir las brazadas

realizadas, la inclinación o postura del nadador al momento de salir, toda

mediante la observación del entrenador, lo que dificulta la rapidez al

analizar los fallos realizados por el atleta durante el entrenamiento.

5

Page 9: Baudilio

Analizando el proceso de entrenamiento de un atleta de natación y

tomando en cuenta los movimientos necesarios para la evaluación surge

la idea a de desarrollar sistema tecnológico capaz de obtener datos a

través de estos movimientos.

Los datos generados podrán permitir que los entrenadores a través

de una computadora analicen detalladamente los movimientos

realizados por el nadador, lo cual facilitara la toma de decisión en cuanto

a la frecuencia del entrenamiento, mejoras de técnicas y así lograr formar

un atleta competitivo y de alto desempeño.

Formulación del problema:

La Natación posee aspectos fundamentales para su realización, pero

en los entrenamientos se busca mejorar la velocidad de brazadas, así

como tener una excelente posición de salida y durante el recorrido en la

piscina. Con los métodos tradicionales se presentan lentitud en las

correcciones y se necesita de entrenamientos repetitivos para poder

diagnosticar las soluciones y recomendaciones.

Los métodos tradicionales integrados con la tecnología existente,

podrá mejorar la rapidez con que un entrenador pueda evaluar y corregir

a un atleta de natación. Surgiendo las interrogantes:

¿Podrá medirse las brazadas realizadas por el atleta de natación?

¿Se podrá evaluar el posicionamiento y los grados de inclinación del

atleta de natación durante el recorrido de entrenamiento en la piscina?

Debido a la necesidad de mejorar la velocidad la rapidez de

evaluación en los entrenamientos surge el desarrollo del sistema de

Comunicación Odo-inclinometro con GPS (Odómetro e Inclinómetro), el

cual Es una integración de 3 Tecnología en uno, esto se lograra

mediante la implementación de un Arduino y un acelerómetro. El Arduino

es un hardware es una plataforma de hardware libre, basada en una

6

Page 10: Baudilio

placa con un microcontrolador y un entorno de desarrollo, diseñada para

facilitar el uso de la electrónica en proyectos multidisciplinares, se le

integrara un acelerómetro con el cual se podrán obtener los datos de las

brazadas y la inclinación, esto debido a las propiedades de medir los

ciclos de un cuerpo en movimiento simulando un odómetro y

conjuntamente obteniendo los grados de inclinación del mismo cuerpo en

movimiento, en nuestro caso seria los movimiento y la inclinación del

nadador en entrenamiento. Con el Odómetro puede lograr medir la

cantidad de brazadas, y con el inclinómetro se puede lograr corregir la

inclinación del nadador en tiempo real. Adicionando la tecnología GPS

(Sistema de Posicionamiento Global) para brindar datos de ubicación en

todo el recorrido, pudiendo así identificarse el momento y lugar donde se

pierde el ritmo y se varía la técnica entrenada.

Con este sistema los entrenadores podrán ahorrar tiempo en la

evaluación y diagnóstico del entrenamiento ya que con los movimientos

que el aleta realice al nadar tanto sus brazadas como la inclinacion se

podrá obtener datos con el arduino programado y configurado como un

Odo-inclinometro lo que permitirá ver en un computador la cantidad de

brazadas y los grados de inclinacion durante el recorrido logrando

obtener correcciones rápidas y veraces para así poder desarrollar un

atleta de natación de alto desempeño.

7

Page 11: Baudilio

8

EFECTOS

PROBLEMA

CAUSAS

ÁRBOL DEL PROBLEMA

Bajo rendimiento en los atletas de Natación

Alto costo de equipos

tecnológicos existentes

Carencia de equipos tecnológicos para la evaluación de desempeño de los atletas de natación en sus entrenamientos

Desarrollo tecnológico poco

avanzado

Falta de integración del deporte con la

tecnología

Page 12: Baudilio

JUSTIFICACIÓN

Situación prevista al finalizar la ejecución del Proyecto:

Con la realización de este sistema Odo-inclinometro con GPS, se

puede obtener datos a través del movimiento, lo cual produciría que se

puedan contar las brazadas de un nadador corregir su postura de salida

y durante el desplazamiento, agregando exactitud el GPS quien dará los

datos de ubicación durante el recorrido.

Esto permitirá aumentar en los entrenadores la rapidez de corrección

técnica, programar la frecuencia del entrenamiento y atacar de manera

más específica los errores realizados.

Marco Jurídico.Constitución de la República Bolivariana de Venezuela (CRBV):

El proyecto de Sistema de Comunicación GPS, Inclinó metro y

Odómetro se sustenta en el Art.108 el cual expresa que los centros

educativos deben incorporar nuevas tecnologías en los centros

educativos. Se apoya en el art. 110 donde reza que el estado reconocerá

el interés público y tecnológico que pueda ayudar al desarrollo social. Y

finalmente en el art. 111 se menciona el deporte como un derecho y su

enseñanza es obligatoria en cualquier institución pública o privada.

Leyes vinculadas al proyecto

El sistema que desarrolla en este proyecto, se apoya del art. 14 literal

3 de la ley Orgánica del Deporte, que menciona que el deporte es un

derecho y debe ser asegurado en todas las instituciones de educación.

Aspectos (Sociales, Culturales, Económicos, políticos, etc.) que favorecen el Proyecto.

El sistema de comunicación GPS, Inclinó metro y Odómetro, permite

9

Page 13: Baudilio

a los atletas de natación y al equipo de entrenadores mejorar la

velocidad de nado, la inclinación que debe poseer, generando un aporte

social, cultural y tecnológico, ya que mejoraría el desarrollo de los atletas

involucrando nuevas formas de evaluación de desempeño y mezclado el

deporte con la tecnología.

Importancia del Proyecto.

El proyecto se presenta como una gran oportunidad capaz de

complementar los entrenamientos, así como la evolución del atleta de

natación al tener un entrenamiento físico contando con una herramienta

tecnológica capaz de medir las brazadas, inclinación y ubicación en su

recorrido.

10

Page 14: Baudilio

Proyecto de Servicio Comunitario enmarcado en los objetivos del Plan de la Patria 2013 – 2019.

Objetivo Histórico

II. Continuar construyendo el socialismo bolivariano del siglo XXI, en

Venezuela, como alternativa al sistema destructivo y salvaje del

capitalismo y con ello asegurar “la mayor suma de felicidad posible, la

mayor suma de seguridad social y la mayor suma de estabilidad política”

para nuestro pueblo.

Objetivo Nacional

2.2 Construir una sociedad igualitaria y justa

Objetivo Estratégico

2.2.6 Proporcionar las condiciones para el desarrollo de una cultura de

recreación y práctica deportiva liberadora, ambientalista e integradora en

tomo a los valores de la Patria, como vía para la liberación de la

conciencia, la paz y la convivencia armónica.

Objetivo General

2.2.6.5 Fortalecer el deporte de alto rendimiento, con apoyo integral al

atleta y héroes del deporte, desarrollo de la medicina y las ciencias

aplicadas al deporte de alto rendimiento, desarrollo de centro de alto

rendimiento y de la escuela nacional de talentos deportivos.

11

Page 15: Baudilio

OBJETIVO GENERAL Y OBJETIVOS ESPECÍFICOS

OBJETIVO GENERAL:

Desarrollar un Sistema de comunicación Odo-inclinometro con GPS,

para atletas de alto rendimiento en la disciplina de natación

OBJETIVO ESPECÍFICO N° 1:

Obtener datos de las brazadas realizadas en el entrenamiento que

realiza un atleta de natación realiza durante el recorrido en la piscina.

OBJETIVO ESPECÍFICO N° 2:

Obtener información de Inclinación de salida y durante el recorrido del

atleta de natación en la piscina durante el entrenamiento

OBJETIVO ESPECÍFICO N° 3:

Obtener información de ubicación del atleta de natación en su recorrido

durante su entrenamiento.

12

Page 16: Baudilio

13

ÁRBOL DE OBJETIVOS

SOLUCIÓN

OBJETIVO GENERAL

OBJETIVOSESPECÍFICOS

Obtener información en los entrenamientos de los atletas de natación para poder aumentar su rendimiento

Sistema de comunicación Odo-inclinometro con GPS, para atletas de alto rendimiento en

la disciplina de natación

Medir las brazadas

que realiza un atleta a

lo largo de su

recorrido en la piscina

Obtener información de

Inclinación en el

lanzamiento, giro y

llegada del atleta de

natación

Obtener

información de

ubicación del

atleta de natación

en su recorrido

Page 17: Baudilio

METAS

OBJETIVOS PROPÓSITO (alcance que se desea lograr a través de los objetivos)

TIEMPO(en horas)

OBJETIVO GENERAL

Lograr desarrollar un sistema Odo-

Inclinometro con GPS, capaz de

medir las brazadas, inclinación y

ubicación de un atleta de natación

durante su entrenamiento

120

OBJETIVO ESPECÍFICO

N° 1

Lograr Medir las brazadas que

realiza un atleta a lo largo de su

recorrido en la piscina

40

OBJETIVO ESPECÍFICO

N° 2

Lograr obtener información de

Inclinación de salida y durante el

recorrido del atleta de natación en su

entrenamiento

40

OBJETIVO ESPECÍFICO

N° 3

Obtener información de ubicación del

atleta de natación en su recorrido40

14

Page 18: Baudilio

COBERTURA GEOGRÁFICA Y POBLACIONAL

COBERTURA POBLACIONAL

Área GeográficaN° de

Habitantes

Porcentaje sobre total del

Estado

Estado

Miranda3.181.890 100%

Municipio

Chacao 71.411 2,24 %

Parroquia

San José de

Chacao71.411 2,24 %

Comunidad o

Institución

UNEFA

1260 0,04 %

15

Page 19: Baudilio

ACTIVIDADES, TAREAS, TIEMPO Y RECURSOS

N° ACTIVIDADES TAREAS HORAS

1Reunión de apertura, recomendaciones e

instrucciones

Presentación de grupo de trabajo, información de necesidades, debate de

posibles soluciones, planificación de actividades

8

2 Diagnóstico de la situación Evaluación de problemática, definición de una solución 8

3 Investigación sobre GPS, Inclinómetro y Odómetro

Investigar, GPS; Inclinómetro, Odómetro, Natación, Arduino y leyes 16

4Estudio de la población

BeneficiadaEstudio y estadística de la población

directa e indirecta 8

5 Estudio y practica de software Arduino

Investigación, Prácticas, métodos, estructura de código 20

6 Adquisición de materiales e implementos

Búsqueda, cotización y compra de materiales. 12

7

Sistematización de la

información y corrección

del contenido

Organización, Clasificación de información y planillas 16

8Diseño del Proyecto y

Pruebas de funcionamiento

Diseñar, Elaborar, Programar y compilar código en Arduino 26

9 Reunión de cierre de proyecto

Cierre de proyecto y recomendaciones futuras 6

TOTAL DE HORAS 120

16

Page 20: Baudilio

RESUMEN DE RECURSOS ESTIMADOS A USAR

FECHAS TIEMPO DE EJECUCIÓNINICIO FINAL DÍAS SEMANAS MESES HORAS

13-03-2015 16-06-2015 28 15 4 120

RECURSOS FÍSICOS

TIPOS DE RECURSOS DETALLE

HUMANOS Un (1) servidor comunitario

EQUIPOS Arduino uno R3, ADXL345, computador,

MATERIALESCables, cautín, estaño, multímetro, resistencias

condensadores, batería, Hoja de Datos.

OTROS

17

Page 21: Baudilio

CRONOGRAMA DE ACTIVIDADES

Mes Marzo 2015 Abril 2015 Mayo 2015 Junio 2015

Actividades / Semanas 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

01 Reunión de apertura, recomendaciones e instrucciones 8 8

02 Diagnóstico de la situación 8 8

03 Investigación sobre GPS, Inclinómetro y Odómetro 8 8 16

04 Estudio de la población Beneficiada 8 8

05 Estudio y practica de software Arduino 10 10 20

06 Adquisición de materiales e implementos 12 6 12

07Sistematización de la información y corrección del

contenido10 6 16

08 Diseño del Proyecto y Pruebas de funcionamiento 8 6 6 6 26

09 Reunión de cierre de proyecto 6 6

Total de Horas 8 8 8 8 8 10 10 12 10 6 8 6 6 6 6 120

________________________ ______________________________ Firma del Tutor Académico Firma y Sello del Tutor Comunitario

18

Page 22: Baudilio

DESCRIPCIÓN DE LAS ACTIVIDADES Y TAREAS EJECUTADAS

ACTIVIDADES Y TAREAS

DESCRIPCIÓN

N° 1: Reunión

de apertura,

recomendaciones e

instrucciones

Del 13-03-2015 al 20-03-2015; 8 Horas

Académicas.

Reuniones para conocer el grupo de trabajo,

establecer los parámetros de estudios,

conocimiento de la organización, instrucciones de

evaluación y estudios a aplicar en las actividades

N° 2:

Diagnóstico de la

situación

Del 23-03-2015 al 27-03-2015; 8 Horas

Académicas.

Evaluación de las necesidades de la institución,

Objetivos general y específicos, planteamiento del

problema, posible solución, métodos para lograr la

solución.

N° 3:

Iinvestigación sobre

GPS, Inclinómetro y

Odómetro

Del 30-03-2015 al 10-04-2015 16 Horas

Académicas Búsqueda de la información para

desarrollar y expandir el conocimiento sobre los

sistemas de comunicación implicados, software y

dispositivos, funcionamiento de circuitos de datos.

N° 4: Estudio de

la población

Beneficiada

Del 13-04-2015 al 17-04-2015 8 Horas

Académicas

Se realizó el estudio de los individuos directos e

19

Page 23: Baudilio

indirectos que se verán beneficiados con la

realización del proyecto.

N° 5: Estudio y

practica de software

Arduino

Del 20-04-2015 al 01-05-2015 20 Horas

Académicas

Definición del software Arduino, descripción del

programa, explicación de librerías, métodos de

programación y compilación. Elaboración de

códigos para ejercitar y poder desarrollar el código

final, evaluación del uso de librerías, variables y

compilaciones exitosa. Análisis de error de sintaxis

y caracteres.

N° 6:

Adquisición de

materiales e

implementos

Del 04-05-2015 al 08-05-2015 12 Horas

Académicas

Búsqueda de material necesario para la realización

del proyecto, evaluación de presupuesto, compra

de todo el material en diferentes tiendas a nivel

nacional.

N° 7: Sistematización

de la información y

corrección del

contenido

Del 11-05-2015 al 22-05-2015 16 Horas

Académicas

Desarrollo del contenido, organización del trabajo,

correcciones, modificaciones del trabajo escrito.

N° 8: Diseño del

proyecto y pruebas de

funcionamiento

Del 25-05-2015 al 19-06-2015 26 Horas

Académicas

Elaboración del diseño, montaje, soldaduras

20

Page 24: Baudilio

uniones, medidas de voltaje y señales, pruebas de

funcionamiento sin código, pruebas con código a

usar. Pruebas de laboratorio.

N° 9: Reunión

de cierre de proyecto

Del 22-06-2015 al 26-06-2015 6 Horas Académicas

Cierre de proyecto, beneficios obtenidos, mejoras

futuras, recomendaciones y evaluación final del

trabajo

21

Page 25: Baudilio

POBLACIÓN BENEFICIADA.

TIPO DE BENEFICIARIO

CANTIDAD DE BENEFICIARIOS

DIRECTOS INDIRECTOS TOTALESTUDIANTES 200 20 220

PERSONAS 60 20 80TOTAL 260 40 300

22

DISTRIBUCIÓN DE BENEFICIARIOS POR TIPO

Page 26: Baudilio

IMPACTO GENERADO EN LA COMUNIDAD

OBJETIVOLOGRO ALCANZADO

(Cada logro debe ir asociado a su meta correspondiente)

OBJETIVO GENERAL

Se logró la elaboración del Sistema de comunicación

Odo-inclinometro con GPS, para atletas de alto

rendimiento en la disciplina de natación

OBJETIVO ESPECÍFICO

N° 1

Se logró medir las brazadas en los entrenamientos del

atletas de natación

OBJETIVO ESPECÍFICO

N° 2

Se logró medir la inclinación de salida y durante el

recorrido del atleta de natación

OBJETIVO ESPECÍFICO

N° 3

No se logró obtener los datos de ubicación por falta del

dispositivo que debía usar

23

Page 27: Baudilio

APORTES DEL PROYECTO

Con el desarrollo del proyecto “Sistema de Comunicación Odo-

inclinometro con GPS”, se pudo obtener los datos necesarios para mostrar

por computadora la cantidad de brazadas realizadas por el nadador en su

entrenamiento al igual que la inclinación en la salida y vuelta dada.

Permitiendo de esta manera que los entrenadores reorganicen el programa

de entrenamiento y la frecuencia y exigencia de cada una de las técnicas.

Sustentando el proyecto con el articulo 108,110 y 111 de la

Constitución de la República Bolivariana de Venezuela. Que indican que el

deporte es un derecho y debe ser impartido en todas las instituciones,

permitiendo el desarrollo e integrarlo con las nuevas tecnologías. De igual

forma la Ley Orgánica del Deporte en sus artículo 14 literal 3 donde se

enuncia el derecho del deporte como recreación de individuo y obligatoria.

La elaboración de este proyecto conto un apoyo excepcional del grupo

de profesionales de la Coordinación de Deportes, permitiendo integrar los

objetivos en uno solo y cuyo fin se enmarco en el logro del sistema de

comunicación Odo-inclinometro con GPS, para atletas de alto rendimiento en

la disciplina de natación y su funcionamiento.

El proyecto brindara un apoyo tecnológico a los entrenadores y

asesores, los cuales podrán realizar las evaluaciones de manera rápida, con

los cual abra ahorro en tiempo en la toma de decisión y modificar los niveles,

ritmo y aplicación de los entrenamientos, generando un impulso capaz de

mejorar el rendimiento de los atletas de natación.

24

Page 28: Baudilio

CONCLUSIONES

Finalmente con el sistema de comunicación GPS, inclinómetro y

odómetro, se logra expandir la visión de evaluación en los entrenamientos, lo

cual permite mejorar los procedimientos, tiempos y repetición de cada estilo.

Iniciando un camino de automatización que cada vez crece muy velozmente.

Lograr medir las brazadas realizadas por un nadador visualmente se

podía convertir en una evaluación larga y repetitiva, ocasionando un retardo

considerable al momento de realizar correcciones y exigencias. Con la

elaboración de este proyecto se hace el trabajo de entrenamiento de

natación fácil y automatizada, permitiendo una evaluación rápida mediante

los datos obtenidos realizando el ajuste necesario en la velocidad del

nadador.

Aunque la postura de salida y las vueltas parezca algo sin mucha

importancia, este proyecto logra a través de la tecnología tomar datos de la

postura de salida y el giro de vuelta durante el recorrido en la piscina,

permitiendo así saber los grados de inclinación en todos los momentos y

poder modificar la inclinación de salida y vuelta dentro de la piscina

disminuyendo el tiempo del recorrido y el nadador pueda alcanzar un mejor

nivel y velocidad.

Y ya en una era de comunicación, el GPS logra obtener datos de

ubicación y sirve de gran ayuda para conocer el desempeño en cada tramo

del recorrido permitiendo mejorar los tiempos en cada vuelta del nadador.

25

Page 29: Baudilio

RECOMENDACIONES

Siempre que aparece un proyecto que genera un impulso positivo y se

obtienen beneficios del mismo, provocara que muchos estudiantes docente y

demás se interesen y quieran mejorarlo o desarrollar nuevas alternativas.

Como se menciona este sería un proyecto de inicio, el cual puede ser

mejorado y optimizado, pero requiere de más tiempo de dedicación y un

aporte de capital para fabricar un prototipo que pueda ser reproducido en la

cantidad según sea necesaria. Se pueden integrar otras funcionalidades y

abarcar otras disciplinas, lo que permite que no solo los estudiantes de

Ingeniería de Telecomunicaciones trabajen en esto sino también los

estudiante en general ya que se necesita de estadística, química, electrónica,

diseño, programación, arquitectura y sistemas.

El grupo estudiantil de la UNEFA puede generar nuevas ideas

tecnológicas para desarrollar el Deporte y otras áreas, solo se deben

mantener las exposiciones de prototipos, despertar en el alumnado el

pensamiento creacionista e innovador obteniendo así numerosos proyectos.

En la UNEFA se cuenta con un gran apoyo del personal que en el laboral y

más de los grandiosos docente que siempre está dispuesto a ayudar al

estudiante para que logren las metas trazadas durante su paseo

momentáneo dentro de la universidad.

26

Page 30: Baudilio

FUENTES CONSULTADAS

CNE, Constitución Bolivariana de Venezuela

http://www.cne.gob.ve/web/normativa_electoral/constitucion/titulo3.php#cap6

MinCI, Ley Orgánica de Deporte, Actividad Física y Educación Física

http://minci.gob.ve/wpcontent/uploads/downloads/2012/06/tripaleyorganica_del_deporte_.pdf

Asamblea Nacional, Plan de la Patria

http://www.asambleanacional.gob.ve/uploads/botones/bot_90998c61a54764da3be94c3715079a7e74416eba.pdf

Wikipedia, Arduino

https://en.wikipedia.org/wiki/Arduino

Wikipedia, Sistema de Posiciomiento Global

https://es.wikipedia.org/wiki/Sistema_de_posicionamiento_global

Mi Mecánica Popular; Inclinómetro

http://www.mimecanicapopular.com/verherr.php?n=77

DE MAQUINAS Y HERRAMIENTAS, Odómetro

http://www.demaquinasyherramientas.com/herramientas-de-medicion/odometro-tipos-y-usos

27

Page 31: Baudilio

ANEXOS

28

Page 32: Baudilio

UNEFA Av. La estancia con av. Caracas y calle Holanda, frente al edificio

BANAVEN (Cubo Negro), Chuao, Municipio Chacao Edo. Miranda-

Venezuela 1060

29

MAPA DE LOCALIZACIÓNDEL ÁREA DE INFLUENCIA

DEL PROYECTO

Page 33: Baudilio

Compra Acelerómetro

30

Page 34: Baudilio

Compra Arduino

31

Page 35: Baudilio

Reunión de asesoría con el Prof. Fortunato

32

Page 36: Baudilio

Información Técnica

Como se ha mencionado a lo largo del proyecto de investigación, Los

atletas de alto rendimiento que se desempeñan en el área de natación

requieren de tecnología que les permita recolectar información que haga

referencia a la velocidad de brazadas al momento de su entrenamiento en

esta disciplina, inclinación y posición en la piscina. De tal forma que estos

datos puedan ser analizados posteriormente por un entrenador para lograr

desarrollar técnicas nuevas que les ayuden a aumentar potencialmente el

desarrollo de sus habilidades, con el objeto de representar a VENEZUELA a

nivel internacional en las competencias deportivas con gran desempeño.

Lo que se ha propuesto como solución a estas exigencias, es lograr el

desarrollo de una plataforma que sirva como base para recolectar la

información anteriormente descrita a través de la integración de un

ODOMETRO, INCLINOMETRO y un GPS en un circuito integrado

(ARDUINO). Una vez queden unificados estos recursos tecnológicos y

dispuesto en arduino el cual se instalara a través de un brazalete en el brazo

derecho del nadador, cada vez que el atleta se incorpore en la piscina al

momento de comenzar a brasear, el odómetro podrá contar ciclos de

brazadas cada vez que el nadador sumerja su brazo y lo extraiga del agua

con un movimiento circular, este mismo fenómeno repetidamente arroja

como resultado la velocidad de brazadas contadas por segundos.

Dependiendo de la posición en que el nadador emerja del agua respecto a su

postura horizontal, el inclinometro podrá arrojar datos de inclinación del atleta

durante su trayectoria, de la misma forma en que el GPS arrojara datos que

especifican la posición del nadador a lo largo de la piscina.

Estos datos serán enviados en tiempo real a través de la tecnología

bluetooth (IEEE 802.15), a un software diseñado especialmente para esta

actividad que se ejecutara a través de una interfaz de usuario dispuesta en

33

Page 37: Baudilio

una pantalla digital en manos del entrenador.

A continuación se detallan especificaciones técnicas respecto a la

integración del odómetro, inclinometro y GPS en la plataforma ARDUINO.

Arduino es una plataforma de hardware libre, basada en

una placa con un microcontrolador y un entorno de desarrollo, diseñada para

facilitar el uso de la electrónica en proyectos multidisciplinares.

El software es un entorno de desarrollo integrado que permite escribir

y compilar programas (sketches) y cargarlos al hardware.

El hardware consiste en una placa con un microcontrolador Atmel

AVR y puertos de entrada/salida.

La plataforma Arduino se programa mediante el uso de un lenguaje

propio basado en el lenguaje de programación de alto nivel Processing que

es similar a C++ y es importante destacar que existen varias versiones de

esta plataforma.

Como funciona Arduino: Como pasa con la mayoría de las placas

microcontroladores las funciones de Arduino pueden resumirse en tres. En

primera instancia, tenemos una interfaz de entrada, que puede estar

directamente unida a los periféricos, o conectarse a ellos por puertos. El

objetivo de esa interfaz de entrada es llevar la información al

microcontrolador, la pieza encargada de procesar esos datos. El mentado

microcontrolador varía dependiendo de las necesidades del proyecto en el

que se desea usar la placa, y hay una buena variedad de fabricantes y

versiones disponibles.

Por último, tenemos una interfaz de salida, que lleva la información

procesada a los periféricos encargadas de hacer el uso final de esos datos,

34

Page 38: Baudilio

que en algunos casos puede bien tratarse de otra placa en la que se

centralizará y procesara nuevamente la información, o sencillamente, por

ejemplo, una pantalla o un altavoz encargada de mostrar la versión final de

los datos.

De nuevo, Arduino es un sistema, y no una placa única. Por esto, el funcionamiento

concreto dependerá del proyecto. Así, en un móvil hecho con Arduino tendremos

varios microcontroladores, encargados de las conexiones de red, los datos

necesarios para la entrada de números y mostrar información en pantalla, entre

otras cosas. Así mismo, un reloj hecho con Arduino solamente haría falta un chip

que cuantifique la hora y la muestre en una pantalla.

Como ya hemos dicho, Arduino es casi sinónimo de hardware libre, y con eso,

estamos hablando de una de las plataformas más complejas y variables que podrían

existir.

Microcontrolador ATmega328

Voltaje de funcionamiento 5V

Alimentación (recomendada) 7-12V

Voltaje máximo de entrada(no

recomendado)

20V

Pines digitales I/O 14 (de los cuales 6 dan salida

PWM)

Pines de entrada analógica 6

Corriente DC por I/O Pin 40 mA

Corriente DC para el pin 3.3V 50 mA

Memoria Flash 32 KB (ATmega328) 0.5 KB

usados por el bootloader

SRAM 2 KB (ATmega328)

EEPROM 1 KB (ATmega328)

Velocidad de reloj 16 MHz

35

Page 39: Baudilio

Nuestro caso de estudio se basa en ARDUINO UNO. Esta versión

difiere de anteriores versiones en que no utiliza el chip convertidor serie a

USB FTDI, en lugar de ello incorpora un ATmega16U2 programado como

convertidor serie a USB. Este chip tiene USB nativo y puede ser

reprogramado para que la Arduino sea reconocida al conectarla al ordenador

como cualquier tipo de periférico USB.

Las descripciones físicas de esta plataforma se detallan a continuación.

Odómetro: es un instrumento de medición que calcula la distancia

total o parcial recorrida por un cuerpo en la unidad de longitud en la cual ha

sido configurado (metros).

Inclinómetro o Escoliómetro: es un instrumento usado por

la topografía, por la aviación y por los navíos para medir la inclinación del

plano con respecto de la horizontal (superficie terrestre).

El sistema de posicionamiento global (GPS) es un sistema que

36

Page 40: Baudilio

permite determinar en todo el mundo la posición de un objeto (una persona,

un vehículo) con una precisión de hasta centímetros.

¿Cómo Hacer que estas tecnologías interactúan dentro de la plataforma de arduino?

La forma en que se obtiene un inclinómetro, es a través de un

acelerómetro. La forma en que un acelerómetro puede medir inclinaciones es

a través de la física, Para que exista una aceleración esta tiene que ser

provocada por una fuerza. La representación de una fuerza usualmente se

realiza por medio de un vector. Los vectores usualmente se dibujan como

flechas:

Si el vector nos indica una dirección su "largo" nos podría indicar la

magnitud de la fuerza. De esta manera si identificamos hacia a donde apunta

la fuerza podemos conocer la posición del objeto sobre el cual esta fuerza se

está ejerciendo.

Realmente para el inclinómetro no vamos a estar demasiado

interesados en la magnitud del vector de aceleración sino más bien en su

dirección. La idea es bastante simple, todos estamos bajo la influencia de la

fuerza de gravedad, el acelerómetro nos permitirá conocer la dirección de

37

Page 41: Baudilio

esta fuerza y solo hay que aplicar algunas sencillas fórmulas trigonométricas

para calcular la inclinación del sensor.

El MMA7361 es un pequeño módulo para Arduino que incluye un acelerómetro de 3 ejes y es capaz de medir aceleraciones en los 3 ejes.

Este integrado tiene dos modos de funcionamiento, uno más preciso

que es capaz de detectar hasta +/- 1.5G y otro con un rango un poco mayor

pero menos preciso que detecta +/- 6G. Este último rango supera por mucho

las aceleraciones laterales que uno puede alcanzar en pista, pero el primero

de +/- 1.5G, supero por mucho las aceleraciones que se pueden alcanzar al

realizar movimientos de aceleración horizontal, y es esta la razón de la

implementación de dicho modulo (MMA7361), ya que el nadador estar

acelerando horizontalmente respecto a la piscina.

COMO FUNCIONA: hay tres pines denominados "x", "y" y "z". Estos

pines mantienen un voltaje relativo a la fuerza de gravedad a la que está

sometido el circuito integrado.

Entendiendo como las fuerzas G afectan el Acelerómetro

Imaginemos por un momento que tenemos nuestro circuito integrado

sobre una superficie plana que se encuentra sin ninguna inclinación como se

ilustra en el siguiente diagrama:

38

Page 42: Baudilio

El acelerómetro únicamente detectará una fuerza de aceleración

aplicada sobre el acelerómetro que mire la fuerza sobre Z.

Simplificando un poco las cosas e imaginando que se está viendo el

acelerómetro de lado (considerando solo dos dimensiones). Si se imagina

que se gira el acelerómetro sobre el eje Y. Se nombran los ejes de los

sensores X' y Z', entonces, las fuerzas se aplicarían de la siguiente forma:

El acelerómetro como tal no conoce en ningún momento su posición.

Sin embargo conoce los componentes de la fuerza de gravedad. Se puede

39

Page 43: Baudilio

entonces utilizar los valores de la fuerza que se aplica a los componentes

para conocer el ángulo, utilizando una sencilla función trigonométrica inversa:

Conociendo los componentes de la fuerza G aplicados al acelerómetro

se puede conocer el ángulo. Sin embargo, se puede también invertir el orden

de los componentes dentro de la función arco-tangente para obtener el

ángulo complementario.

Implementando el inclinómetro en Arduino:

Primero se procede a cablear el acelerómetro de la siguiente manera:

X -> Analog0

Y -> Analog1

Z -> Analog2

SL -> Pin 3.3V del acelerómetro

0G -> Desconectado

5V -> 5V Arduino

3.3V -> AREF Arduino

GS -> GND

ST -> GND

40

Page 44: Baudilio

El circuito montado debe lucir como el siguiente diagrama:

Este circuito es capaz de funcionar con 5V, sin embargo internamente

funciona con 3.3V lo cual se debe usar como referencia para el convertidor

Análogo->Digital. Esto permitirá tener mayor precisión a la hora de leer los

cambios de voltaje en las salidas análogas del acelerómetro.

Lo primero por hacer es configurar la plataforma Arduino, se debe

incluir la biblioteca matemática para poder utilizar las funciones

trigonométricas:

#include <math.h>

Void setup () {

AnalogReference (EXTERNAL);

41

Circuito acelerómetro montado sobre ARDUINO

Page 45: Baudilio

Serial.begin (9600);

}

Int xVal = 0;

Int yVal = 0;

Int zVal = 0;

Double angleYZ = 0;

Double angleXZ = 0;

Se definen algunas variables para almacenar los valores de los

componentes de las fuerzas en cada uno de los ejes del acelerómetro. Por

último un par de variables de tipo flotante doble van a almacenar el ángulo en

el que se encuentra el acelerómetro.

Se utilizar el puerto serial para escribir los valores, esto se necesitara

luego al generar un pequeño programa en Python para visualizar

gráficamente las inclinaciones.

Se le indica a nuestro Arduino que se ha de utilizar los 3.3V del

acelerómetro como voltaje de referencia para la conversión Análoga->Digital.

Luego, en el loop principal se tiene que leer los valores análogos y

hacer un pequeño ajuste utilizando la función map (). El problema es que el

convertidor análogo-digital tiene un rango que va desde 0 a 1023, si se utiliza

la función arco tangente utilizando estos valores mentiría, ya que los

componentes de la fuerza solo tendrían valores positivos y por lo tanto

valores erróneos.

Para corregir este problema se debe utilizar la función "map ()" que

permitirá que el rango varíe entre valores positivos y negativos como se

muestra en la siguiente tabla:

42

Page 46: Baudilio

Fuerza G

Voltaje salida

Arduino analogRead()

Luego de map()

1.5

~3.3V ~1023 ~500

... ... ... ...

0 ~1.6V ~511 ~0

... ... ... ...

1.5

~0V ~0 ~-500

¿Por qué elegir entre -500 y 500?  Realmente se ha elegido este

rango para mantener más o menos igual el "rango" original. Si el convertidor

A->D tiene 1024 pasos y quiero mantener +/- la misma precisión lo ideal

sería tener un nuevo rango que tuviera 1024 pasos, el rango ideal entonces

hubiera sido desde -511 hasta 511, pero para obtener números fáciles de

recordar, se ha elegido desde -500 hasta 500.

Una vez dicho esto el código queda de la siguiente manera:

Void loop () {

XVal = analogRead (0);

YVal = analogRead (1);

ZVal = analogRead (2);

XVal = map (xVal, 0, 1023, -500, 500);

YVal = map (yVal, 0, 1023, -500, 500);

ZVal = map (zVal, 0, 1023, -500, 500);

AngleYZ = atan ((double) yVal / (double) zVal);

AngleYZ = angleYZ*(57.2958);

AngleXZ = atman ((double) xVal / (double) zVal);

43

Page 47: Baudilio

AngleXZ = angleXZ*(57.2958);

Serial.write ("yz :");

Serial.print (angleYZ);

Serial.write ("\n");

Serial.write ("xz :");

Serial.print (angleXZ);

Serial.write ("\n");

Delay (100);

}

Como pueden ver en el código lo primero que se hace es leer los

valores que se encuentran en las entradas análogas, luego se utiliza la

función map para generar un rango más adecuado para los valores de

entrada y por último se aplican las sencillas funciones trigonométricas para

calcular el ángulo correspondiente.

Una vez calculados los ángulos simplemente se imprimen en el puerto

serial para poder leerlos desde la computadora.

Hasta este punto simplemente compilamos nuestro programa y lo

guardamos en nuestro Arduino. 

Para que el instructor pueda visualizar el grado de inclinación del

nadador respecto a la piscina, se procederá a crear una pequeña interfaz

para visualizar las inclinaciones. Para ello se deben utilizar varias librerías y

algo del código que ya se ha utilizado antes para el seguro programable con

Arduino para la lectura de datos desde el puerto serial.

Para la interfaz gráfica, se a de utilizar la biblioteca pygame, esta es

44

Page 48: Baudilio

una sencilla biblioteca que permite dibujar gráficos en pantalla. Está

originalmente diseñada para crear juegos sencillos y provee de muchas

funciones muy fáciles de utilizar.

Inicializando pygame

Lo primero que se debe hacer es cargar todas las bibliotecas

necesarias e inicializar la biblioteca:

Import pygame, sys, math, serial, threading

From pygame.locals import *

# Inicializando PyGame

pygame.init ()

SCR_WIDTH = 640

SCR_HEIGHT = 480

COLOR1 = (255, 255, 255)

COLOR2 = (0, 0, 0)

COLOR3 = (255, 0, 0)

DISPLAYSURF = pygame.display.set_mode ((SCR_WIDTH,

SCR_HEIGHT))

DISPLAYSURF.fill (COLOR2)

pygame.display.set_caption ('Inclinometro Digital!')

En este punto se han definido algunas variables globales como el ancho y alto de la

pantalla y algunos colores sencillos. La variable DISPLAYSURF es la que se utiliza

para dibujar, se puede apreciar como la primera orden es fill (rellenar) el fondo de

negro.

45

Page 49: Baudilio

Monitoreando el puerto serial

Para la lectura de datos del puerto serial se utilizan un par de funciones "ayudante"

y el proceso de lectura se correrá en un hilo de ejecución separado, así se obtiene

el hilo principal encargado de dibujar la interfaz del usuario y un hilo secundario

encargado de leer los datos del puerto serie y actualizar las variables que guardan

el ángulo del inclinómetro.

Ser = serial.Serial (

'/dev/ttyUSB0',

Baudrate=9600,

InterCharTimeout=None

)

t = threading.Thread (target=receiving, args= (ser,)).start ()

La función receiving se encarga de leer la última línea disponible en el

puerto serial, esta función se copia del seguro programable en Arduino:

Def receiving (ser):

Global last_received

Buffer = ''

While True:

Buffer += ser.read (ser.inWaiting ())

If '\n' in buffer:

Lines = buffer.split ('\n')

last_received = lines [-2]

Buffer = lines [-1]

store_angle (last_received.strip ())

La función store_angle se encarga de leer la línea recibida del puerto

46

Page 50: Baudilio

serie y si corresponde al ángulo entre yz o xz guardará el valor en la variable

correspondiente:

angle_yz = 0.0

angle_xz = 0.0

last_received = ''

Def store_angle (string):

Global angle_yz, angle_xz

Line = string.split (':')

If len (line) > 1:

If line [0] == "yz":

angle_yz = float (line [1])

If line [0] == "xz":

angle_xz = float (line [1])

Print string

Dibujando la interfaz gráfica

La biblioteca pygame provee varias funciones de "dibujo" de

primitivas, esto es que permite dibujar figuras básicas como líneas, polígonas

y círculos dentro de una superficie.

La lógica de las interfaces gráficas en pygame es muy simple: Se debe

revisar si hay alguna acción del usuario que se deba manejar y luego se

dibuja en pantalla, se debe repetir esto de manera indefinida.

While True: # Loop principal

For event in pygame.event.get ():

If event. Type == QUIT:

47

Page 51: Baudilio

ser.close ()

pygame.quit ()

sys.exit ()

# Limpiar pantalla

DISPLAYSURF.fill (COLOR2)

draw_box (SCR_WIDTH/3, SCR_HEIGHT/2,200,200)

draw_angle (angle_yz, SCR_WIDTH/3,

SCR_HEIGHT/2,100)

draw_box (2*(SCR_WIDTH/3), SCR_HEIGHT/2,200,200)

draw_angle (angle_xz, 2*(SCR_WIDTH/3),

SCR_HEIGHT/2,100)

pygame.display.update ()

El código anterior realiza algunas funciones muy básicas. Primero

revisa si hay un evento que obligue a "terminar" con la ejecución del

programa. Si este es el caso se cierra la conexión al puerto serial, se detiene

pygame y se procede a salir del programa. 

Luego como se supone que el hilo de lectura del puerto serial ya está

obteniendo los valores de inclinación, simplemente se llaman a dos funciones

ayudantes, la primera "draw_box" dibuja una caja de referencia con líneas

indicando los ángulos.  Y la segunda "draw_angle" dibuja una línea que tiene

la inclinación que se especifique.

Función draw_box:

Def draw_box (x_origin, y_origin, width, height):

48

Page 52: Baudilio

# Caja

pygame.draw.polygon (

DISPLAYSURF,

COLOR1,

[

(x_origin-(width/2), y_origin-(height/2)),

(x_origin+ (width/2),

y_origin-(height/2)),

(x_origin+ (width/2), y_origin+

(height/2)),

(x_origin-(width/2), y_origin+

(height/2)),

(X_origin-(width/2), y_origin-(height/2))

],

1

)

# Diagonal /

pygame.draw.line (

DISPLAYSURF,

COLOR1,

(x_origin-(width/2), y_origin-(height/2)),

(x_origin+ (width/2), y_origin+ (height/2)),

1

)

# Diagonal \

pygame.draw.line (

DISPLAYSURF,

COLOR1,

(x_origin+ (width/2), y_origin-(height/2)),

(x_origin-(width/2), y_origin+ (height/2)), 1

49

Page 53: Baudilio

)

# Línea vertical |

pygame.draw.line (

DISPLAYSURF,

COLOR1,

(x_origin, y_origin-(height/2)),

(x_origin, y_origin+ (height/2)),

1

)

# Línea horizontal --

pygame.draw.line (

DISPLAYSURF,

COLOR1,

(x_origin-(height/2), y_origin),

(x_origin+ (height/2), y_origin),

1

)

Función draw_angle:

Def draw_angle (angle, x_origin, y_origin, lenght):

x_len = lenght*math.cos (angle*0.01745)

y_len = lenght*math.sin (angle*0.01745)

pygame.draw.line (

DISPLAYSURF,

COLOR3,

(x_origin-x_len, y_origin-y_len),

(x_origin x_len, y_origin y_len),

3

)

50

Page 54: Baudilio

Al final, al ejecutar el script el resultado es una pantalla como la

siguiente:

Para obtener datos de posicionamiento del nadador respecto a su

ubicación en la piscina, se le debe aplicar un código de programación a la

plataforma Arduino que le active tal función. Este código será revelado al

finalizar este punto.

Se debe incorporar la integración de una antena tipo parche, también

conocido como antena microstrip rectangular conectada de un transmisor y

este a su vez al arduino, con el objetivo de enviar la señal por medio del

protocolo IEEE 802.15 (Bluetooth) y ser captada posteriormente por una

antena receptora que procesara tal señal para ser remitida a un monitor

donde se observara la información recolectada del atleta. Sin embargo, una

vez programada la función GPS en arduino se requiere la utilización de tres

componentes elementales para la recepción de tal información:

1. Un módulo GPS Venus encargado de obtener la información de posición del

GPS y transmitirlo a la Raspberry Pi.

2. La Raspberry Pi que se encargará de procesar, desplegar la información y

reaccionar a las entradas del usuario.

51

Page 55: Baudilio

3. Mini-pantalla LCD que usara para desplegar la información.

Una de las funciones que se debe incluir en esta etapa, es la de un

módulo que registre la capacidad de guardar el recorrido que ha realizado el

nadador, ya que el GPS debe arrojar datos tales como la posición del atleta

en la piscina en un tiempo determinado. Al poseer registros del recorrido se

podrá saber entonces la distancia que el atleta alcanzó, y dividiendo la

distancia recorrida entre un tiempo determinado se obtendrá la velocidad de

desplazamiento del nadador, completando así el objetivo de este proyecto de

investigación con la recolección de los datos (Inclinación, Velocidad,

Posición). Para agregar esta funcionalidad es necesario utilizar un receptor

de GPS que permita conocer la ubicación del deportista.

Venus638FLPx-L. Este circuito integrado es un pequeño receptor de

GPS que puede obtener la señal de hasta 12 satélites de manera simultánea.

Su característica más importante es que tiene una frecuencia máxima de

trabajo de 20Hz es decir, es capaz de calcular 20 posiciones por segundo

ajustables a 12 km/h. Esto significa que la distancia recorrida entre posición y

posición se reduce a tan solo 2m, longitud de una persona lo que lo hace

aceptable para la aplicación que se le quiere dar.

La Antena

Como antena receptora se ha elegido utilizar para efectos del proyecto

la antena de montaje magnético para facilitar su colocación sobre el monitor

LCD donde el instructor de natación visualizará los datos, esta trae un cable

lo suficientemente largo como para colocarla donde nos parezca

másconveniente. El conector de la antena de ser "SMA"

52

Page 56: Baudilio

Como se ve la tableta de prueba Raspberry Pi

Preparación de la tableta de prueba

Primero se colocan los pines en la breadboard y se ubica la tableta

encima de ellos.

En la imagen se puede observar como el módulo se balancea un

poco.

Se comienza con las cuatro 4 esquinas y luego se va soldando el resto

de pines siguiendo un circulo. La razón de hacerlo así es que la tableta tenga

apoyo en los pines para que puedan se pueda retirar el alambre que se

utilizó para sostenerla.

53

Page 57: Baudilio

El resultado

Para probar el módulo solo se utilizaron las líneas de positivo (Vcc),

tierra (GND) y las líneas de envío y recepción de datos (TX0 y RX0

respectivamente).

La siguiente imagen muestra el sencillo diagrama de conexión:

54

Page 58: Baudilio

Se procede a conectar la antena

55

Page 59: Baudilio

56

Page 60: Baudilio

Para probar el módulo, primero se habilito el puerto serial del GPIO y

se Alimentó el módulo con los 3.3V de la Raspberry, además se debe escribir

el siguiente comando desde la consola:

$ Cat /dev/ttyAMA0

Luego de unos segundos se logra visualizar la salida NMEA generada por el GPS.

57

Page 61: Baudilio

Un pequeño programa en Python se encarga de realizar dos simples

tareas: Primero leer los datos del puerto y almacenarlos en variables dentro

del programa y segundo dibujar una muy sencilla interfaz en la mini-pantalla

LCD. Esta pantalla se conecta por medio de un cable RCA por el que se

envía una señal de video compuesto desde la Raspberry Pi.

A continuación se escribe el código de programación que se ejecuta

en Python, el cual se encarga de leer línea por línea los datos que se reciben

en el puerto serie (/dev/ttyAMA0).

Ser = serial.Serial ( '/dev/ttyAMA0', Baudrate=9600, InterCharTimeout=None)t = threading.Thread (target=receiving, args= (ser,)).start ()

Estas líneas de código se encargaran de iniciar un hilo de secundario que ejecutará las instrucciones contenidas en la función receiving.

Def receiving (ser): Global continue_reading, last_received

58

Page 62: Baudilio

Buffer = ''

While continue_reading: Buffer += ser.read (ser.inWaiting ()) If '\n' in buffer: Lines = buffer.split ('\n') last_received = lines [-2] Buffer = lines [-1] parse_nmea (last_received.strip ())

ser.close () Print "Port closed."

La función receiving lee carácter por carácter del puerto serial y

almacena los datos dentro de un "buffer", al encontrar un fin de línea ( \n )

envía la cadena leída hacia la función parse_nmea que se encargará de

procesar los parámetros incluidos en la cadena NMEA.

59

Page 63: Baudilio

Programando datos de posicionamiento de nadador respecto a la piscina en arduino:

60

Page 64: Baudilio

/******************************************** Program for reading possition from GPS* module via the softwareSerial** C. Oscar* Jun 2.015 Caracas*******************************************/

// include the SoftwareSerial library#include <SoftwareSerial.h>

// Constants#define rxPin 9NMEA#define txPin 8

// set up the serial port

SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin);

// variablesbyte byteGPS = 0;int i = 0;int indices[13];int cont = 0;int conta = 0;

char inBuffer[300] = "";

int k = 0;

void setup(){

 //setup for mySerial port pinMode(rxPin, INPUT); pinMode(txPin, OUTPUT); mySerial.begin(4800);  //setup for Serial port Serial.begin(19200);

61

Page 65: Baudilio

 // setup the GPS module en la posicion de loteria 2, Bilbao Serial.println("Configurando GPS..."); delay(1000); mySerial.println("$PSTMNMEACONFIG,0,4800,1,1");        // configure NMEA sentences to show only GGA sentence delay(100);  // command for setting time and position mySerial.println("$PSTMINITGPS,4315.280,N,0255.267,W,0016.0,24,01,2008,17,15,00");    

 // "4140.000,N" means: Latitude 41º40'00.0" North // "00053.000,W" means: Longitude 0º53'00.0" West // "0197" means 197 m elevation // "22,10,2007,11,40,00" means date and time (October 22, 2.007 - 11h 40min 00sec UTC time)}

void loop(){

 byteGPS = 0; i = 0; while(byteGPS != 42){                   // read the GGA sentence   byteGPS = mySerial.read();            inBuffer[i]=byteGPS;                  i++;                       }   k = 0; while(inBuffer[k] != 42){   Serial.print(inBuffer[k]);            // write the GGA sentence    k++; } Serial.println(); delay(3000);}

62

Page 66: Baudilio

Programando el velocímetro en la plataforma Arduino:

Por lo general, un receptor GPS reporta su ubicación a un intervalo de

tiempo determinado. El GPS Venus está configurado de fábrica para que

reporte ubicaciones cada segundo.

En este proyecto existe el interés por calcular velocidades, esto puede

realizarse fácilmente conociendo el cambio en la ubicación del nadador

respecto a una unidad de tiempo, pero antes de realizar el cálculo es

necesario procesar la salida del GPS para obtener la información de

ubicación.

Los GPS reportan la ubicación calculada por medio de mensajes

NMEA, este es un protocolo estándar de comunicación que utiliza cadenas

simples de texto que resultan muy fáciles de procesar.

Para este proyecto se debe leer continuamente los datos del GPS

recibidos en el puerto serial hasta que se reciba una línea de texto que

comience con la secuencia "$GPGGA". Esta línea corresponde a los datos

que han sido "fijados" del sistema de posicionamiento global (Global

Positioning System Fix Data).

La velocidad, "distancia recorrida por unidad de tiempo". Esta

definición es más fácil de representar por medio de la siguiente fórmula:

El GPS lo único que hace es brindar la información de ubicación, así

63

Page 67: Baudilio

que lo único que se debe hacer es calcular la distancia entre los dos puntos

obtenidos por el GPS y dividirlo entre el tiempo que ha transcurrido en

obtener esas dos posiciones.

Sin embargo hay que destacar que las coordenadas que brinda el

GPS están en grados y fracciones de minuto. Esto no sirve para calcular

directamente distancias en metros o en Kilómetros.

Calculando distancias a partir de dos coordenadas geográficas

Las coordenadas geográficas permiten ubicar un punto sobre un

elipsoide que se aproxima a la forma de la tierra. Si se trabaja con distancias

cortas (Una piscina), se puede asumir que la tierra es completamente

redonda y esto nos simplificará muchísimo los cálculos.

Para calcular la distancia se debe utilizar la fórmula de haversine que

está definida de la siguiente manera:

Donde φ es la latitud, λ es longitud y R es el radio de la tierra (radio

promedio= 6,371km), los valores de latitud y longitud deben estar en

radianes. Todas las funciones están disponibles en la biblioteca "math"

incluida en Python por lo que este cálculo se realiza de forma automática.

64

Page 68: Baudilio

65