k OFICINA ESPAÑOLA DE PATENTES Y MARCAS 19 k kInt. Cl. : A63B 21/00 11 Número de publicación: 6 51 ESPAÑA k 2 111 248 G01C 22/02 TRADUCCION DE PATENTE EUROPEA 12 kNúmero de solicitud europea: 94303863.8 kFecha de presentación : 27.05.94 kNúmero de publicación de la solicitud: 0 638 336 kFecha de publicación de la solicitud: 15.02.95 T3 86 86 87 87 k 54 Tı́tulo: Ordenador de bicicleta con memoria y medios para comparar el rendimiento deportivo presente y pasado en tiempo real. k 73 Titular/es: Lawrence J. Brisson k 72 Inventor/es: Brisson, Lawrence J. k 74 Agente: Dávila Baz, Angel 30 Prioridad: 10.08.93 US 104442 574 Croyden Court Sunnyvale, California 94087, US 45 Fecha de la publicación de la mención BOPI: 01.03.98 45 Fecha de la publicación del folleto de patente: ES 2 111 248 T3 01.03.98 Aviso: k k k En el plazo de nueve meses a contar desde la fecha de publicación en el Boletı́n europeo de patentes, de la mención de concesión de la patente europea, cualquier persona podrá oponerse ante la Oficina Europea de Patentes a la patente concedida. La oposición deberá formularse por escrito y estar motivada; sólo se considerará como formulada una vez que se haya realizado el pago de la tasa de oposición (art◦ 99.1 del Convenio sobre concesión de Patentes Europeas). Venta de fascı́culos: Oficina Española de Patentes y Marcas. C/Panamá, 1 – 28036 Madrid ES 2 111 248 T3 DESCRIPCION Ordenador de bicicleta con memoria y medios para comparar el rendimiento deportivo presente y pasado en tiempo real. 5 Fundamento de la invención 1. Alcance General y Particular de la Invención 10 15 La presente invención se refiere a medios perfeccionados para proporcionar continuamente información relativa al rendimiento deportivo a un ciclista durante una carrera ciclista, de manera que el ciclista pueda utilizar esta información para optimizar su rendimiento deportivo. De un modo más particular, la presente invención proporciona medios capaces de retener información detallada relativa a un rendimiento deportivo previo, en un dispositivo de memoria dentro de un instrumento portátil, y medios para comparar, en tiempo real, el rendimiento previo con un nuevo rendimiento deportivo (v.g., momento a momento mientras está realizando un nuevo esfuerzo de competición) y para presentar gráficamente los datos comparativos al deportista, con el fin de que pueda optimizar su rendimiento en ese momento. 2. Tecnologı́a Previa Conocida 20 Cuando un deportista, por ejemplo un ciclista, está en competición o en entrenamiento para mejorar sus facultades, es muy difı́cil lograr resultados óptimos sin tener una métrica, clara y objetiva, de su rendimiento. Sin esa métrica objetiva, el deportista debe confiar en su sensación subjetiva del nivel de esfuerzo que está realizando. No obstante, tales sensaciones son muy imprecisas. 25 Durante un esfuerzo duro, la sensación continua de cansancio puede conducir al deportista a que crea que se está comportando al nivel de esfuerzo pretendido, solamente para descubrir, al final del esfuerzo, que su rendimiento real ha sido totalmente diferente a lo que esperaba. 30 Un método conocido para proporcionar mediciones objetivas durante una competición o entrenamiento, es definir un número limitado de puntos de comprobación a lo largo de la ruta y comprobar el tiempo que necesita para alcanzar esos puntos de comprobación empleando un cronómetro. 35 Con este sistema, el deportista recibe información sobre resultados ocasionales con respecto al rendimiento actual que está obteniendo, pero todavı́a existen problemas. En la práctica, este método es demasiado tosco y molesto para que resulte útil en todos los casos salvo en el caso más simple, puesto que no resulta práctico determinar un gran número de estos puntos de comprobación, toda vez que el deportista debe memorizarlos, ası́ como los tiempos correspondientes. 40 45 50 55 60 Igualmente, llevar un control de los tiempos en cada punto de comprobación o aún entre rendimientos diferentes, es difı́cil y está expuesto a errores, puesto que los tiempos cambian en la medida en que mejora el rendimiento del deportista. Además, los puntos de comprobación o control ocasionales no dan al deportista suficiente información para una guı́a óptima, puesto que debe confiar en sensaciones subjetivas de esfuerzo durante los intervalos relativamente largos entre puntos de comprobación o control como medida de su rendimiento en un determinado instante. Actualmente, las mejores soluciones disponibles a estos problemas se encuentran en dispositivos portátiles conocidos como Ordenadores de bicicletas. Un ordenador de bicicletas comprende un procesador con un reloj de precisión, un sensor para medir el movimiento de una rueda de la bicicleta, un indicador visible al ciclista y software para realizar cálculos y presentar información en el indicador visual. Caracterı́sticamente, dicho ordenador de bicicleta combina información relativa al tiempo transcurrido con información relativa al movimiento de una rueda, para calcular y presentar el tiempo transcurrido, la distancia recorrida, la velocidad media y la velocidad actual. Los ordenadores de bicicletas más avanzados incorporan actualmente información adicional relativa al rendimiento del ciclista en un determinado momento, por ejemplo la cadencia de pedaleo y altitud. Algunos ordenadores de bicicletas presentan también sı́mbolos (por ejemplo + y -) para indicar si la velocidad actual del ciclista está por encima (+) o por debajo (-) de la velocidad media desde el momento en que puso en marcha la bicicleta. Los ordenadores de bicicletas existentes proporcionan información continua al deportista relativa al rendimiento del momento, de la cual lo más importante es la velocidad. Si el deportista está corriendo siguiendo una ruta llana con condiciones de la calzada apropiadas para una velocidad constante, el ordenador de bicicleta existente ofrece información adecuada. Todo lo que el deportista necesita saber 2 ES 2 111 248 T3 es la velocidad de referencia para esta circunstancia y puede observar, en cualquier momento, si está marchando a la velocidad de referencia o por encima de esa velocidad. 5 10 No obstante, los ordenadores de bicicletas existentes no proporcionan información adecuada para la vasta mayorı́a de los itinerarios, donde las condiciones de la calzada varı́an considerablemente y el itinerario puede comprender colinas o aún montañas. Siguiendo tales rutas, no se puede mantener una velocidad constante y los ordenadores de bicicletas existentes no presentan la clase correcta de información que pudiera permitir al deportista valorar continuamente su rendimiento. Con los dispositivos existentes, el deportista debe volver a la antigua técnica de memorizar el tiempo que necesitarı́a para llegar a determinados puntos de control y valorar su rendimiento en esos puntos. El documento DE-A-3705835 se refiere a un ordenador de bicicleta que incluye las caracterı́sticas expuestas en el preámbulo de la reivindicación 1 de la solicitud presente. 15 El documento US-A-4.919.418 se refiere a equipo de ejercicio fı́sico estático en el cual el rendimiento anterior del usuario se presenta visualmente para que el usuario lo pueda comparar con su rendimiento actual. Resumen y objetos de la invención 20 La presente invención tiene por objeto proporcionar al deportista información que representa una pauta práctica de rendimiento en cada punto a lo largo de un itinerario, y presentar esta pauta al deportista continuamente en una forma que le facilita comparar su rendimiento actual con la pauta. 25 30 Otro objeto de la invención es crear esta pauta de rendimiento de una manera que la garantiza como una pauta práctica y apropiada para el deportista particular, y una pauta que tiene en consideración las variaciones que se presentan en un itinerario particular. Otro objeto de la invención es proporcionar una pluralidad de pautas de rendimiento personalizadas, con una pauta diferente disponible para cada itinerario de entrenamiento utilizado por el deportista. Un objeto adicional de la invención es proporcionar medios para cambiar la pauta correspondiente a un itinerario cuando la capacidad de cambio del deportista garantice una nueva pauta de rendimiento para dicho itinerario. 35 Otro objeto de la invención es proporcionar medios por los cuales el rendimiento de un deportista se puede registrar en el dispositivo de la invención como una pauta para ser utiliza por otros deportistas que deseen emular el rendimiento del primer deportista siguiendo el mismo itinerario de entrenamiento. 40 Otro objeto de la invención es proporcionar medios para extraer datos de rendimiento del ordenador de bicicleta y transmitirlos a un ordenador externo para tratamiento y protección. Un objeto de la invención, relacionado con el anterior, es proporcionar medios para transferir tales datos desde un ordenador externo al ordenador de bicicleta. 45 Una realización particular de la invención consiste en un ordenador de bicicleta similar a los de la tecnologı́a conocida, con la adición de una memoria de acceso aleatorio (RAM) que funciona conectada a un procesador y software apropiado para proporcionar las funciones de la invención. La RAM se conecta al procesador por circuitos de control y datos de manera que el procesador, bajo control de su programa de software, pueda leer y escribir en las células de la RAM. El dispositivo de la invención registra los detalles de un rendimiento actual, momento a momento, en la RAM. Una vez completo el dato de rendimiento actual, el dispositivo de la invención permite que el deportista conserve este registro en un área numerada de la RAM. La invención proporciona una pluralidad de tales áreas numeradas para conservar una pluralidad de los referidos registros. Al comienzo de un nuevo entrenamiento, el dispositivo de la invención permite que el deportista elija cualquiera de los conjuntos de datos de rendimiento, previamente salvados, para ser utilizados como pauta de comparación, y presenta visualmente los datos de pauta junto con datos actuales, de manera que el deportista pueda comparar fácilmente su rendimiento actual, en cualquier momento, con datos similares relativos al rendimiento conservado en memoria. 50 55 60 La invención se define en la reivindicación independiente adjunta. En las reivindicaciones independientes se exponen caracterı́sticas preferidas. Las caracterı́sticas de novedad de construcción y funcionamiento de la invención resultarán más evi3 ES 2 111 248 T3 dentes durante el curso de la descripción que sigue, tomándose como referencia los dibujos adjuntos en los cuales se ha ilustrado una forma preferida de dispositivo de la invención y en los cuales los carácteres iguales de referencia indican partes iguales en todos los dibujos. 5 Breve descripción de los dibujos La Figura 1 es un esquema de una bicicleta con un sensor de movimiento de una rueda, un cable y un ordenador de bicicleta. 10 La Figura 2 ilustra el indicador visual de un ordenador de bicicleta, que presenta la velocidad actual, el tiempo transcurrido, el ritmo establecido y el tiempo transcurrido a ese ritmo. La Figura 3 ilustra un indicador visual de ordenador de bicicleta que presenta la velocidad actual y la distancia; el ritmo establecido y la distancia. 15 La Figura 4 ilustra un indicador visual de ordenador de bicicleta que presenta la velocidad media y el tiempo de marcha; la velocidad media al ritmo establecido y el tiempo de marcha a la misma. 20 La Figura 5 ilustra un indicador visual de ordenador de bicicleta que muestra la fecha y la hora reales; la fecha y el número memorizado de datos de ritmo establecido; asimismo, el tiempo total, la distancia total y la velocidad media de la marcha a un ritmo establecido. La Figura 6 es un esquema funcional del procesador, el indicador visual, las baterı́as, las teclas, la memoria y el conector para enlace a un ordenador externo; y 25 La Figura 7 es un esquema de los dos conjuntos de datos primarios de la presente invención tal como se mantienen en memoria para tener un control de datos de ritmos establecidos en carreras anteriores. Descripción de la realización preferisa de la invención 30 35 Con relación a los dibujos adjuntos, se describirá a continuación una realización preferida de la invención en un ordenador de bicicleta. Incluirı́a un aparato provisto de una memoria de acceso aleatorio (RAM) contenida dentro de la caja del ordenador de bicicleta y software apropiado para proporcionar las funciones de la invención. Esta RAM se conecta al procesador por circuitos de control y de datos de manera que el procesador, bajo control de su programa de software, pueda leer y escribir en cualquier célula de la RAM. 40 La Figura 1 muestra la invención instalada en una bicicleta. Un imán 11 se une a la rueda 10 de manera que el imán 11 pase próximo al sensor de movimiento 12 durante cada rotación de la rueda. El sensor de movimiento 12 transmite una señal por los cables de conexión 13 al ordenador de la bicicleta 14 cada vez que pasa el imán 11. Se pueden emplear otros medios para proporcionar información de movimiento de la rueda al ordenador de bicicleta, por ejemplo transmisión por radio o por infrarrojos en lugar de un cable de conexión. 45 El ordenador de bicicleta 14 se instala en la bicicleta en una lugar en el cual el ciclista pueda accionar sus teclas de control y observar el indicador visual mientras va montado en la bicicleta. 50 55 60 El software de la invención registra los detalles del rendimiento del deportista en una porción de la RAM mientras va montado en la bicicleta. Este registro comienza cuando se pone en funcionamiento el temporizador, después de haberse repuesto a cero. En cada posición de la RAM, dentro de la porción operativa de la RAM, se escriben datos numéricos de rendimiento pertenecientes a un punto a lo largo del itinerario, como el tiempo real transcurrido, la distancia real, la velocidad real y la altitud, en un determinado momento. Tales datos se registran a intervalos siempre que esté el temporizador en funcionamiento. Los intervalos entre puntos de registro puede ser de duración fija o variable. Al final de la carrera actual, el deportista puede utilizar las teclas de control del ordenador de bicicleta, si ası́ lo desea, para conservar los detalles registrados del rendimiento actual para referencia futura. En el proceso de conservar los datos registrados, el dispositivo de la invención exige que el deportista elija un número de identificación que determine cuál de los archivos tipo, previamente conservados, tendrá que ser sustituido por los datos actuales de la carrera. En la realización preferida, el dispositivo de la invención conserva también la fecha actual junto con los datos de rendimiento como medio de ayudar al deportista a elegir y utilizar los datos en el futuro. 4 ES 2 111 248 T3 5 10 15 20 25 30 35 40 45 50 55 60 En general, siempre que se pone en marcha el cronómetro, el dispositivo registra los detalles del rendimiento actual (tiempo frente a distancia y altitud, etc) en un área temporal de la memoria. Si se detiene el cronómetro, se detiene el registro, pero se conserva el registro hasta ese punto. Si se reanuda la cronometración, también se reanuda el registro, creando nuevos datos de entrada después de los últimos. Solamente después de la reposición o vuelta al estado inicial (que pone a cero el cronómetro y el podómetro de itinerario) se borra el registro histórico temporal. Una vez que el deportista ha salvado uno o más conjuntos de datos de su rendimiento, el dispositivo de la invención le permite utilizar las teclas de control para elegir uno de los juegos de datos conservados para ser utilizados como pauta de comportamiento para una actuación ulterior. El indicador visual, como se ilustra en la Figura 5, permite que el deportista observe determinada información identificativa con relación a los datos previamente salvados como ayuda para elegir una pauta. En la realización preferida, el deportista puede ver en la pantalla del indicador el número de identificación de un conjunto de datos conservados, la fecha en que se guardaron, la distancia total memorizada de la etapa, el tiempo total transcurrido y su velocidad media general. Las teclas de control se emplean para examinar la información de identificación correspondientes a otros conjuntos de datos conservados, hasta que se encuentra el conjunto deseado. Después de analizar esta información de identificación, el deportista emplea las teclas de control para elegir los datos que considera oportuno utilizar como pauta para la etapa presente. La selección de una pauta se suele hacer normalmente al comienzo de una etapa de carrera o entrenamiento, pero se puede cambiar a una pauta diferente durante la marcha, si ası́ se desea. Esta capacidad es útil para el caso de que el usuario se dé cuenta que, después de iniciar una etapa, ha elegido accidentalmente el ejercicio de regularidad erróneo para comparación. Si el usuario cambia a un ejercicio de regularidad diferente, el procesador explora inmediatamente los datos elegidos para ubicar los puntos, en tiempo y distancia, que corresponden al punto alcanzado en el ejercicio actual. Si el usuario ha cambiado la pauta estando el temporizador en funcionamiento, podrı́a ocurrir que el procesador no fuera capaz de procesar el nuevo archivo tipo o archivo de regularidad a tiempo de actualizar inmediatamente los datos en pantalla; en este caso, los datos de comparación del ejercicio de regularidad quedarı́an en blanco temporalmente en el indicador, hasta que el procesador pudiera rehacerse y presentar datos correctos a partir del nuevo archivo tipo o de regularidad. Una vez seleccionada la pauta, el deportista utiliza las teclas de controla para comenzar a cronometrar el ejercicio actual. El dispositivo de la invención comienza entonces a presentar información a partir de la pauta de carrera en proximidad con datos similares relativos al ejercicio actual, de manera que el deportista pueda observar fácilmente, en cualquier momento, cómo su rendimiento actual se compara con la pauta elegida. El dispositivo de la invención utiliza información relativa al ejercicio actual, como es la distancia recorrida y el tiempo transcurrido, para determinar las porciones de los datos de pauta conservados que debe presentar en el indicador, de manera que los datos de pauta presentados en pantalla correspondan siempre al punto del itinerario en el que el deportista está situado en ese momento. Además, cuando el deportista emplea las teclas de control para cambiar los datos del indicador a un tipo diferente de datos, el dispositivo de la invención cambia también la presentación de los datos de pauta en el indicador, de manera que la pauta se presente siempre en una forma similar a los datos pertenecientes al ejercicio actual, facilitando al deportista la comparación de los datos. Por ejemplo, si el ordenador de bicicleta está presentando en el indicador la velocidad instantánea actual del ciclista, presentará también la velocidad a la que marchó el ciclista en el mismo punto en el ejercicio de regularidad elegido. Si el ordenador de bicicleta está presentando el tiempo transcurrido correspondiente al ejercicio actual, el dispositivo de la invención presenta también el tiempo que fue necesario para llegar al mismo punto, a lo largo de la ruta, en el ejercicio de regularidad elegido. Si el indicador presenta la distancia recorrida en el ejercicio actual, el dispositivo de la invención presenta también la distancia que se alcanzó en el ejercicio de regularidad en el mismo periodo de tiempo empleado en el ejercicio actual. Al final de cada ejercicio de carrera o entrenamiento, el deportista tiene siempre la opción de conservar los datos relativos a su rendimiento actual. Si decide conservar los datos, tiene también la opción de determinar el número de conjunto para ser utilizado como identificador. Si elige un número de conjunto al que previamente se hubieran asignado datos, los nuevos datos de rendimiento sustituyen a los antiguos, que dejan de tenerse disponibles. En la realización preferida, el dispositivo de la invención presenta siempre sı́mbolos como +, -, ó = para indicar si el ciclista está corriendo, respectivamente, más rápido, más lento o igual que en el ejercicio anterior elegido. Si el indicador muestra, en ese momento, más de una métrica de rendimiento, por ejemplo la velocidad actual y el tiempo transcurrido, cada métrica tendrı́a también un sı́mbolo al lado para indicar cómo se compara esa métrica con la métrica similar correspondiente al ejercicio de regularidad o 5 ES 2 111 248 T3 5 10 15 de referencia. Por ejemplo, si el ciclista está corriendo, en ese momento, a mayor velocidad que la alcanzada en ese punto en el ejercicio de regularidad o referencia, pero anteriormente habı́a corrido a menor velocidad, por lo que esta velocidad general, en esta carrera, es más lenta que la referencia, el indicador presentarı́a el signo + al lado de la velocidad actual, pero el signo - al lado del tiempo transcurrido. Esto permite al ciclista observa, de una ojeada, que no lleva la regularidad deseada, pero que está mejorando. En la realización preferida, el dispositivo de la invención proporciona también un tono audible que puede avisar al ciclista si va por detrás o no está alcanzado la regularidad deseada. Este tono audible podrı́a elegirse a opción del usuario pulsando las teclas de control. Este tono audible facilitarı́a al ciclista mantener la regularidad deseada sin necesidad de mirar con frecuencia al indicador del ordenador de bicicleta. Idealmente, el tono consistirı́a en una serie de impulsos de audiofrecuencia que sonarı́an periódicamente en el caso de que el ciclista no alcanzara los objetivos establecidos por el tipo de ejercicio de regularidad. Por ejemplo, si la velocidad actual del ciclista está por debajo de la velocidad de regularidad o de referencia correspondiente a esta parte de la etapa, sonarı́a un solo impulso a intervalos de quizá 5 ó 10 segundos. Si la velocidad media general del ciclista está por debajo del ritmo deseado, se producirı́an dos impulsos consecutivos en cada intervalo. Si el ciclista va perdiendo velocidad y no alcanza su velocidad media general, se producirı́an tres impulsos en cada intervalo. Se comprenderá que se puede transmitir información similar por otras combinaciones de tonos audibles. 20 Las Figuras 2 a 5 muestran cuatro vistas externas diferentes de la pantalla del indicador, que ilustran la presentación de información que incluye información disponible según la tecnologı́a conocida, junto con información exclusiva de la presente invención. El ciclista emplea las teclas de control para elegir cuál de estos formatos deben presentarse en pantalla. 25 En la Figura 2, el indicador presenta la velocidad actual 21 y el tiempo transcurrido 22 desde el comienzo de la etapa. El ciclista emplea las teclas de control 24 para hacer funcionar el ordenador de bicicleta. La parte inferior del indicador presenta información que se deriva de un rendimiento anterior conservado que se utiliza como pauta o medida de comparación. El dato 23 es la velocidad que llevaba el ciclista al llegar al punto correspondiente en la carrera elegida como pauta. El dato 25 es el tiempo transcurrido que fue necesario para llegar hasta el punto correspondiente en la carrera elegida como pauta. Los datos 26 y 27 son sı́mbolos que indican si el deportista va actualmente por delante (+), por detrás (-) o igual (=) con respecto a su rendimiento en el punto correspondiente de la carrera elegida como pauta. El dato 28 es la hora actual del dı́a. En la realización preferida, el indicador presenta información correspondiente relativa al ejercicio actual y a la carrera elegida como pauta, en proximidad, para facilitar al deportista su comparación. Por ejemplo, los datos 21 y 23 representan velocidades correspondientes y se ubican uno directamente por encima del otro, mientras que el sı́mbolo 26 indica cómo se comparan las velocidades. Igualmente, los datos 22 y 25 representan tiempos correspondientes y se ubican también uno directamente por encima del otro, en proximidad con su sı́mbolo de comparación 27. 30 35 40 45 50 55 60 En la Figura 3, el indicador presenta la velocidad actual 31 y la distancia recorrida 32 desde el inicio de la etapa. La parte inferior del indicador presenta información que se deriva de un rendimiento previo conservado que se utiliza como pauta de comparación. El dato 33 es la velocidad a la que iba el ciclista al llegar al punto correspondiente en la carrera elegida como pauta. El dato 35 es la distancia recorrida en el mismo periodo de tiempo en la carrera elegida como pauta. Los datos 36 y 37 son sı́mbolos que indican si el deportista va actualmente por delante (+), por detrás (-) o igual (=) con respecto al rendimiento alcanzado al llegar al punto correspondiente de la carrera elegida como pauta. El dato 38 es la hora actual del dı́a. En la realización preferida, el indicador presenta información correspondiente relativa al ejercicio actual y a la carrera elegida como pauta, en proximidad para facilitar la comparación al deportista. Por ejemplo, los datos 31 y 33 representan velocidades correspondientes y se ubican uno directamente por encima del otro. Igualmente, los datos 32 y 35 representan distancias correspondientes y se sitúan también uno directamente por encima del otro. En la Figura 4, el indicador presenta la velocidad media 41 y el tiempo de carrera 42 desde el comienzo de la etapa. La parte inferior del indicador presenta información que se deriva de un rendimiento previo conservado que se utiliza como pauta de comparación. El dato 43 es la velocidad media a la que iba el ciclista al llegar al punto correspondiente en la carrera elegida como pauta. El dato 45 es el tiempo necesario para alcanzar el punto correspondiente, en la carrera elegida como pauta. Los datos 46 y 47 son sı́mbolos que indican si el deportista va actualmente por delante (+), por detrás (-) o igual (=) con respecto al punto correspondiente de la carrera elegida como pauta. En la realización preferida, el indicador presenta información correspondiente relativa al ejercicio actual y a la carrera elegida como pauta en proximidad para facilitar la comparación al deportista. Por ejemplo, los datos 42 y 43 representan velocidades medias correspondientes y se ubican uno directamente por encima del otro. Igualmente, los 6 ES 2 111 248 T3 datos 42 y 45 representan tiempos de carrera correspondientes y se sitúan también uno directamente por encima del otro. 5 10 15 20 25 30 35 40 45 50 55 60 Las Figuras 2 a 4 representan simplemente tres posibles medios de presentar los datos disponibles gracias a esta invención, y se deberá comprender que son posibles muchas otras representaciones dentro del alcance de esta invención. En particular, si el ordenador de bicicleta mide otros parámetros además del tiempo, la velocidad y la distancia, estas otras métricas se pueden salvar en la memoria de esta invención y presentarse en pantallas apropiadas que comparan estas métricas correspondientes al ejercicio actual con métricas similares procedentes de un ejercicio de regularidad conservado como referencia. Por ejemplo, si se mide el ritmo de pedaleo, se puede guardar en memoria y presentarse en una pantalla que compara el ritmo actual con el ritmo en el mismo punto del ejercicio de regularidad de referencia. Si se mide la altitud, se puede guardar en memoria y presentarse en una pantalla que compara la velocidad de ascensión de la carrera o ejercicio actual con la velocidad de ascensión en el mismo punto del ejercicio de regularidad de referencia. Igualmente, se puede memorizar el ritmo cardı́aco del ciclista y presentarse para comparación. La invención contempla también la presentación en pantalla del tiempo total necesario empleado en el ejercicio de regularidad de la carrera de referencia, y el tiempo total estimado para acabar la carrera actual, tomando como base el rendimiento comparativo en el punto actual de la carrera. En la Figura 5, el indicador presenta información que es útil para elegir, entre los conjuntos de datos históricos de rendimiento conservados. Tal selección se hace al comienzo de una carrera, para elegir la pauta de comparación durante la carrera y también al final de una carrera, con el fin de elegir el área numerada de la memoria que se debe sustituir por información relativa al ejercicio que se acaba de realizar, en el caso de que el deportista decidiera conservar esa información. El dato 58 es la fecha actual y el dato 59 es la hora actual del dı́a. El dato 54 es el número de identificación de uno de los conjuntos de datos históricos conservados cuya información de resumen se presenta en los datos 51, 52, 53 y 55. El dato 51 es la velocidad media alcanzada en todo el curso de la carrera anterior conservada, identificada por el dato 54. El dato 52 es la fecha en la cual se realizó el ejercicio de entrenamiento o carrera identificado por el dato 54. El dato 53 es la distancia total recorrida durante la carrera identificada por el dato 54. El dato 55 es el tiempo total empleado durante la carrera anterior identificada por el dato 54. Pulsando las teclas de control de las que está provista la realización preferida de la invención en un ordenador de bicicleta, el usuario puede examinar, por desplazamiento de datos, los diferentes conjuntos de datos de rendimiento conservados y observar los parámetros clave de cada conjunto conservado que aparecen en pantalla, como se indica en la Figura 5. Empleando la información presentada en pantalla, el usuario puede elegir un conjunto especı́fico para utilizarlo como norma durante el ejercicio de la carrera actual pulsando las teclas de control. Igualmente, pulsando una combinación diferente de teclas, el usuario puede salvar la información relativa al ejercicio actual en las áreas numeradas de la memoria. La Figura 6 presenta un esquema funcional de la realización preferida de la invención. El elemento 60 es el indicador visual, que puede ser del tipo de cristal lı́quido u otro visualizador apropiado. El elemento 61 es el procesador central. El elemento 62 comprende los interruptores de control. El elemento 63 es el sensor de movimiento de la rueda. El elemento 64 es la baterı́a o baterı́as que alimentan energı́a eléctrica. El elemento 65 es un pequeño conector externo con el que un cable se puede conectar para enlazar el dispositivo de la invención a un ordenador externo, por ejemplo un ordenador personal. El elemento 66 es la memoria que puede contener los datos de referencia guardados de ejercicios o carreras anteriores. En la realización preferida, esta memoria está constituida por una memoria de acceso aleatorio, no volátil, de manera que sus datos no se pierdan si se agotara la baterı́a. El conector 65, para enlace a un ordenador externo, es una caracterı́stica opcional que se utilizarı́a en la realización preferida, pero que no es necesaria para las funciones primarias anteriormente descritas. Si se utiliza el referido conector, se puede emplear para diversas funciones valiosas. Los datos, contenidos en la memoria del dispositivo de la invención, se podrı́an transmitir al ordenador externo para su conservación y transferirse de nuevo al ordenador de bicicleta (o a otro similar) ulteriormente. De este modo, si los datos, contenidos en la memoria, se llegaran a perder debido a un fallo de alimentación de energı́a, se podrán recargar desde el ordenador externo. Igualmente, si el ordenador de bicicleta se averiara, se perdiera o fuera sustraido, el usuario puede recuperar sus datos valiosos del ordenador externo trasfiriéndolos a un nuevo ordenador de bicicleta. Si el usuario utilizara diferentes bicicletas en numerosas rutas o etapas diferentes, quizá en distintos paı́ses, podrı́a ocurrir que el propio ordenador de bicicleta no tuviera espacio de memoria suficiente para conservar todas las carreras o ejercicios de regularidad que deseara guardar. En tal caso, el usuario podrı́a copiar los datos de referencia en un ordenador externo en el cual podrı́a existir un número ilimitado de archivos de referencia diferentes. Después, siempre que el usuario viajara a una región especı́fica o paı́s, 7 ES 2 111 248 T3 podrı́a transferir al ordenador de bicicleta simplemente los archivos de referencia deseados correspondientes a las rutas o etapas donde fuera a realizar el entrenamiento o carrera. 5 Una vez transmitidos los archivos de referencia a un ordenador externo, se podrán copiar en otro ordenador de bicicleta que incorpora el dispositivo de esta invención. Por lo tanto, los datos generados por un ciclista se podrı́an copiar en los ordenadores de bicicletas de otros ciclistas para ser utilizados por los mismos como pauta. De este modo, un ciclista que fuera el mejor en una ruta particular podrı́a crear datos de referencia o datos tipo para otros ciclistas que intentara mejorar su rendimiento para igualar o superar al primer ciclista. 10 Los datos del ordenador externo se pueden utilizar también para tener un control del comportamiento en carrera de diversos corredores. Con software apropiado en el ordenador externo, estos datos de rendimiento pueden ser gestionados, trazados y comparados como parte de un programa de entrenamiento deportivo para un corredor individual o un equipo. 15 20 25 30 35 40 45 50 Con software apropiado, el ordenador externo podrı́a modificar también un archivo de referencia para crear una pauta diferente, que podrı́a cargarse entonces en el ordenador de bicicleta. Por ejemplo, un deportista podrı́a fijarse una meta para mejorar su mejor tiempo en una determinada ruta en un 5%. Podrı́a hacer que el ordenador externo modificara el archivo de datos tipo o de referencia de manera que todos los segmentos de la etapa fueran un 5% más rápidos y copiara entonces este archivo tipo o de referencia modificado en el ordenador de bicicleta. La Figura 7 ilustra la forma en la que las matrices de datos primarios se organizan en memoria para tener un control de datos de referencia procedentes de competiciones previas y registrar los datos de referencia de la carrera actual. Los datos de carrera de referencia se mantienen en la matriz bidimensional indicada como “matriz de datos tipo” en la Figura 7. En esta matriz, cada columna contiene datos tipo o de referencia correspondientes a una carrera. En el ejemplo ilustrado, la matriz tiene diez columnas numeradas del 0 al 9, lo que implica que esta matriz puede conservar información relativa a diez carreras diferentes. Como siempre hay una columna disponible para registrar la carrera actual, una de estas columnas se utiliza como almacenamiento temporal para la carrera actual, mientras que las otras nueve columnas conservan datos tipo procedentes de nueve carreras previamente registradas. El número de columnas proporcionadas en una circunstancia de utilización de la invención, dependerá de la capacidad de la RAM utilizada en ese modelo, entre otras cosas. El número de anotaciones o elementos en una columna determina en que medida se puede registrar una carrera. Cuando se está registrando una carrera, cada vez que transcurre un intervalo determinado, se introduce una nueva anotación en la posición siguiente no utilizada en la columna correspondiente a esa carrera. Por ejemplo, si un modelo particular registra datos cada 15 segundos, se escribirá entonces una nueva anotación en la columna apropiada cada 15 segundos hasta el final de la carrera (o hasta haberse llenado la columna). Para poder registrar una carrera hasta 12 horas sin que se desbordara la columna, la RAM deberá tener capacidad suficiente de manera que cada columna tenga por lo menos 2.880 elementos o anotaciones, si se escribe cada 15 segundos. Las anotaciones escritas en cada columna pueden consistir en un solo campo de dato o en más de un campo. Un campo es suficiente para proporcionar las funciones de la invención, permitiendo que se calculen y comparen distancia, tiempo y velocidad en cualquier punto de una carrera. No obstante, si el ordenador de bicicleta tiene acceso a otros tipos de datos, también se pueden registrar como campos adicionales. Por ejemplo, se puede registrar altitud, ritmo de pedaleo y ritmo cardı́aco junto con distancia y tiempo, siempre que se añada un nuevo elemento o anotación a una columna. Si se tiene disponible dicho dato adicional, presumiblemente el ordenador de bicicleta proporcionarı́a también representaciones adicionales en pantalla para indicar este dato al usuario, de un modo similar a como se ilustra en las Figuras 2 a 4, pero presentándose datos diferentes. Si existieran tales representaciones, según esta invención, se podrı́an incrementar campos que presentaran datos similares procedentes de los archivos tipo o de referencia, para su comparación con la carrera actual. 55 60 Para evitar tener que copiar una columna entera de la matriz de datos a otra columna cuando se salvan los datos de una nueva carrera, las columnas se gestionan mediante el empleo de la Matriz de Correlación. La Matriz de Correlación tiene una anotación por cada columna en la Matriz de Datos Tipo. La anotación 0 en la Matriz de Correlación contiene el número de columna de la columna de la Matriz de Datos Tipo que se tiene que utilizar para registrar la carrera actual. Las otras anotaciones en la Matriz de Correlación indican las columnas que contienen varias carreras previamente registradas. El ı́ndice en la Matriz de Correlación es el número que se asocia con cada archivo tipo o de referencia conservado y 8 ES 2 111 248 T3 5 10 15 este ı́ndice es el que se muestra al usuario, como dato 54, en la pantalla, tal como se ilustra en la Figura 5. Utilizando la Matriz de Correlación, se pueden conservar los datos de la carrera recién finalizada en lugar de una carrera anterior registrada, simplemente intercambiando dos valores en la Matriz de Correlación. Por ejemplo exáminense las columnas sombreadas en la Figura 7. La anotación de la Matriz de Correlación 0 apunta al número de columna 2, que es donde se almacenan los datos de la carrera actual. La anotación de la Matriz de Correlación 9 se presenta sombreada porque el usuario ha elegido el número de carrera 9, anteriormente registrado, para comparación y esta anotación apunta a la columna 6 en la Matriz de Datos Tipo. Después de finalizada la carrera, el usuario podrı́a determinar la conservación de los nuevos datos de la carrera en lugar del número 9 de una carrera anterior, quizá porque la nueva carrera fue más rápida. Para conservar los datos de la nueva carrera de este modo, el dispositivo de la invención simplemente intercambia los valores en las anotaciones 0 y 9 de la Matriz de Correlación. Después de hacerlo, la anotación 9 apunta a la columna 2 (que contiene datos correspondientes a la carrera recién finalizada), y la anotación 0 apunta a la columna 6, que se utilizará para registrar la carrera siguiente. Los algoritmos y el programa C para su ejecución La invención se pone en práctica por una combinación de hardware y software de control. El hardware consiste en los elementos y la estructura ilustrados en la Figura 6. 20 25 La parte de software de la presente invención incluye software que proporciona por lo menos las funciones siguientes: controlar el cronómetro, contar rotaciones de la rueda, calcular la distancia y la velocidad, presentar en pantalla diversa información y responder a la pulsación de teclas de control. El software de la presente invención contiene también los aspectos siguientes de novedad y exclusivos: 1. Define nuevas variables y matrices de datos necesarias para la invención y las inicializa debidamente. 2. Cada representación en pantalla que presenta datos actuales de rendimiento se cambia para que se presente también los valores correspondientes calculados procedentes del archivo tipo elegido. En las Figuras 2, 3 y 4 se muestran ejemplos de estas representaciones en pantalla. 30 35 40 45 50 55 60 3. Se añade una representación en pantalla adicional, similar a la ilustrada en la Figura 5, para presentar información de resumen procedente de los archivos tipo conservados, de manera que el usuario pueda elegir uno. Mientras esta representación está en pantalla, pulsando una de las teclas de control se hace que el indicador presente datos del archivo tipo siguiente en una secuencia de “mesa redonda”. 4. Durante una carrera, estando el temporizador o cronómetro en funcionamiento, se tienen que ejecutar dos nuevas funciones siempre que se actualice la pantalla (normalmente una vez por segundo): 4.1 Salvar el dato relativo a la carrera actual (v.g., tiempo y distancia) en la posición siguiente de una matriz temporal de memoria si ha transcurrido tiempo suficiente desde la última vez que se introdujo una anotación en esta matriz temporal. 4.2 Hallar las porciones del archivo tipo elegido, en memoria, que corresponden al punto actual de la ruta y calcular los valores que se deben presentar en pantalla. 5. Después de una carrera, cuando se ha detenido el cronómetro, si el usuario cambia la representación en pantalla a una nueva (mencionada en el aparato 3 anterior e indicada en la Figura 5) y pulsa una combinación predeterminada de teclas de control, los datos de la carrera actual sustituyen a los datos previamente conservados en el área de memoria en ese momento en pantalla. Los detalles de la lógica correspondiente a estas funciones se han realizado y se presentan en un conjunto de programas en el apéndice, escrito en el lenguaje de programación C, e incluyendo muchos comentarios. Cada uno de estos 5 elementos de novedad, anteriormente enumerados, se explicará con más detalle más adelante, con relación al programa C que aparece en el Apéndice. Las subrutinas en el apéndice se han escrito con el entendimiento de que existe un “programa principal” en el ordenador de bicicleta que realiza todas las funciones de los ordenadores de bicicleta de tecnologı́a conocida, y que llama a las subrutinas, contenidas en el apéndice, para la realización de las nuevas operaciones exigidas por la presente invención, según se pormenoriza en la lista anterior de 5 elementos exclusivos y de novedad. El elemento 1 se realiza mediante las declaraciones de datos bajo la cabecera “Global Data” (Datos Globales) y mediante la subrutina formada “start ride” (iniciación de carrera) que inicializa los datos globales debidamente para ser utilizados durante cada carrera. Las áreas de datos globales contienen datos necesarios en las diversas subrutinas y se definen globalmente de manera que se puedan utilizar fácilmente en todas las subrutinas que los necesiten. Los comentarios en las declaraciones del programa 9 ES 2 111 248 T3 C explican los usos de cada variable. 5 10 El elemento 2 se realiza mediante la función “update scree” (actualización de representación en pantalla) en el apéndice. Esta función se llama para que se presente en pantalla información de la carrera actual con información comparable procedente del archivo tipo elegido. Existen tres formatos de pantalla definidos y el “input argument screen type” (introducir tipo de pantalla de argumento) selecciona el formato que se tiene que presentar en pantalla. Todas las representaciones en pantalla muestran la fecha y la hora actuales, y los sı́mbolos (+, -, ó =) que indican cómo la carrera actual se compara con la carrera tipo o de referencia. Además, los otros datos que se presentan correspondientes a cada tipo son como sigue: 1. Velocidad actual, tiempo actual transcurrido, velocidad y tiempo actuales de referencia, como se ilustra en la Figura 2. 15 2. Velocidad y distancia actuales, velocidad y distancias actuales de referencia, tal como se ilustra en la Figura 3. 3. Velocidad media y tiempo transcurrido de esta carrera y velocidad media y tiempo transcurrido de referencia en el mismo punto de la ruta, como se ilustra en la Figura 4. 20 25 30 35 40 45 50 55 60 El elemento 3 se realiza por medio de las funciones “show pace files” (presentar archivos tipo) y “advance index” (ı́ndice de avance) en el apéndice. La función “show pace files” presenta información de resumen relativa a un archivo tipo en cualquier momento en un formato como el ilustrado en la Figura 5. Este dato da al usuario información suficiente para elegir el archivo tipo apropiado para comparación durante la carrera planificada. Mientras está en pantalla esta información, si el usuario pulsa la tecla de control apropiada, se llama a la función “advance index” para cambiar el archivo tipo elegido al siguiente en la secuencia circular o de “mesa redonda”. Después se llama de nuevo a la función “show pace files” para presentar en pantalla la información de ese archivo. Si ese número de archivo no tiene datos válidos, los campos que faltan aparecerán en la pantalla en blanco. El elemento 4 se realiza mediante la subrutina “evaluate” (evaluación) en el apéndice, que ejecuta ambas funciones 4.1 y 4.2. El programa principal llama a “evaluate” cada vez que se tiene que actualizar la representación en pantalla. El programa principal lleva el control de datos básicos relativos a la carrera actual, como son el tiempo transcurrido y la distancia recorrida, en variables globales que son utilizados por esta subrutina. El programa “evaluate” tiene dos funciones. 1. Crea periódicamente otra anotación en el archivo tipo temporal actual para llevar el control de la evolución de la carrera actual en el caso de que el usuario determinara después conservarla permanentemente. 2. Explora el archivo tipo elegido (si lo hubiera) para hallar los lugares que corresponden a la misma distancia y tiempo en la carrera de referencia y utiliza esos datos para calcular valores comparables que se pueden presentar en pantalla junto con la información usual relativa a la carrera actual, de manera que el usuario pueda ver fácilmente cómo se está comportando comparando con la carrera de referencia elegida. La lógica del programa “evaluate” se expondrá más adelante con más detalle. El elemento 5 se realiza mediante la función “save ride” (conservar carrera) en el apéndice. Esta función se invoca si el usuario pulsa una determinada combinación de teclas de control mientras está en pantalla la información ilustrada en la Figura 5. Por ejemplo, una ejecución podrı́a exigir que el usuario pulsara dos teclas simultáneamente para cambiar el fichero tipo, en ese momento presente en la pantalla, por los datos de la carrera que acaba de finalizar. Como las áreas de los datos tipo o de referencia se correlacionan mediante la matriz de correlación, como se indica en la Figura 7, es muy fácil y rápido hacer esta sustitución. No hay necesidad de mover todos los datos reales en la matriz; lo único necesario es intercambiar valores indicadores en la matriz de correlación. Antes de hacerlo, esta rutina hace una comprobación para tener la seguridad de que la carrera actual tuvo una duración no de cero, para evitar destruir datos válidos conservados por una carrera nula, a lo que no hay lugar. Lógica del programa “Evaluate” El programa “evaluate” emplea una matriz bidimendisonal para llevar el control de datos correspondientes a todos los archivos tipo en el dispositivo de la invención, incluyendo uno que se utiliza como archivo temporal para conservar datos relativos a la carrera actual en curso. Existen diversos medios con los cuales los datos necesarios se pueden representar en esa matriz, todos los cuales quedan comprendidos dentro del alcance de esta invención. 10 ES 2 111 248 T3 5 10 15 20 25 30 35 40 45 Fundamentalmente, los datos conservados correspondientes a cada archivo tipo consisten en un conjunto de anotaciones que representan la distancia recorrida y el tiempo transcurrido, desde el principio de la etapa hasta diversos puntos de la misma. Si el ordenador de bicicleta mide también otros parámetros, como son la altitud, ritmo de pedaleo o ritmo cardı́aco, estos otros datos se pueden registrar también junto con el tiempo transcurrido y la distancia recorrida correspondientes. Existen diversos modos de representar estos datos fundamentales, que son lógicamente equivalentes. Por ejemplo, cada elemento de la matriz podrı́a tener dos campos, uno de los cuales indica el tiempo transcurrido y otro para retener la distancia correspondiente desde el principio. En este caso, los tiempos y las distancias son acumulativos, lo que implica que los valores pueden alcanzar un magnitud durante una etapa larga. Si se utiliza esta representación de datos, la cantidad de memoria en el dispositivo de la invención deberá ser suficiente para representar tiempos y distancias para carreras o etapas largas. Se pueden emplear una memoria de menor capacidad si cada anotación retiene exclusivamente el incremento de tiempo o distancia desde la anotación previa. Como las anotaciones se hacen con frecuencia, por ejemplo una anotación cada 15 segundos, las anotaciones correspondientes a tiempo y distancia no pueden ser nunca de gran magnitud y se necesitará un mı́nimo de espacio de memoria. Con este diseño, el procesador debe acumular las anotaciones de tiempo y distancia para determinar el tiempo total transcurrido y la distancia desde el principio. Si el dispositivo de la invención se diseña para conservar datos en memoria a intervalos fijos, en ese caso las anotaciones en la matriz solamente tienen que almacenar uno de los dos tipos de datos fundamentales, puesto que el otro se puede deducir de la posición de la anotación. Por ejemplo, si una nueva anotación se escribe exactamente cada 15 segundos, la anotación tendrá que contener exclusivamente un valor de distancia, puesto que el tiempo de cada anotación se puede calcular como la posición en la matriz multiplicada por 15 segundos. Igualmente, si se escribe una nueva anotación cada vez que se recorre una determinada distancia, la anotación solamente deberá contener el valor de tiempo, La ejecución especı́fica, ilustrada en el programa C en el apéndice, es un ejecución en la cual una anotación de matriz se escribe a intervalos de tiempo fijos, por lo que solamente se escribe la distancia en una matriz llamada “dist” (distancia). Cada distancia esta representada como la distancia adicional recorrida desde la última anotación y se registra en unidades del número de revoluciones de la rueda. El intervalo de tiempo entre anotaciones es fijo para cualquier archivo tipo particular, pero el programa permite que este intervalo sea diferente para archivos tipo diferentes. Esta flexibilidad es útil en el caso de que el ordenador de bicicleta permita al usuario establecer manualmente este intervalo de tiempo, o en el caso de que se copie un archivo tipo de un ordenador de bicicleta diferente que utilice un intervalo de tiempo diferente. El programa “evaluate” tiene lógica para escribir anotaciones correspondientes a la carrera actual, después de las lı́neas de comentarios que contienen “– Item 4.1 –” y “– Update Current Pace Array –” (Actualizar Matriz Tipo Actual). Como los datos de referencia se describen exclusivamente a intervalos discretos, el programa “evaluate” utiliza interpolación lineal para aproximar valores correspondientes a puntos a lo largo de la ruta que queden entre las anotaciones. Por ejemplo, si una primera anotación en la matriz tipo indica que se han recorrido 2,00 millas en 6 minutos y 0 segundos, y la anotación siguiente indica que se han recorrido 2,08 millas en 6 minutos y 15 segundos, el programa llegarı́a a la conclusión de que se habı́an recorrido 2,04 millas en 6 minutos y 7,5 segundos. La interpolación permite al programa calcular datos muy precisos para comparación con el rendimiento en la carrera actual en cualquier punto a lo largo de la ruta, no solamente en los puntos precisos donde se hubieran conservado datos en el archivo tipo. En consecuencia, el dispositivo de la invención puede presentar en pantalla datos de comparación útiles en cualquier momento. 50 55 60 Las funciones anteriormente descritas, como elemento 4.2, determinan qué anotaciones en el archivo tipo existente corresponden al tiempo y la distancia en el punto actual de la carrera actual. Es necesario realizar este proceso por separado con relación al tiempo y la distancia, porque el tiempo y la distancia producirán comparaciones diferentes en cualquier momento en que la velocidad media en la carrera actual difiera de la velocidad media en ese punto en la carrera de referencia. La tabla que sigue servirá para ilustrar los dos medios de comparación. En esta tabla, la posición en la matriz representa la posición de cada anotación en la matriz tipo que se está utilizando para comparación. El Tiempo Transcurrido se calcula a partir de la posición en la matriz multiplicando por 15 segundos, puesto que en este ejemplo se da por supuesto que se hicieron anotaciones en el archivo tipo cada 15 segundos. La porción ilustrada en esta tabla de muestra corresponde a la porción de la carrera de referencia entre 22 y 25 minutos a partir del principio. La columna de Distancia muestra la distancia total en millas desde el inicio de la carrera 11 ES 2 111 248 T3 de preferencia. Este valor de distancia se obtiene acumulando las anotaciones de distancia en la matriz, puesto que las anotaciones en la matriz solamente mantiene valores por incrementos ——— Carrera de Referencia ——— 5 10 15 20 25 30 35 Posición en Matriz 88 89 90 91 92 93 94 95 96 97 98 99 100 Tiempo Transcurrido 22:00 22:15 22:30 22:45 23:00 23:15 23:30 23:45 24:00 24:15 24:30 24:45 25:00 Distancia (Millas) 5,40 5,49 5,58 5,67 5,75 5,86 5,96 6,05 6,15 6,24 6,33 6.43 6,52 — Carrera Actual — Actualmente, 6,10 millas en 22:40 o —— 22:40 o —— 6,10 millas Según se ilustra en el lado derecho de la tabla, en este ejemplo se da por supuesto que el ciclista ha recorrido 6,10 millas en 22 minutos y 40 segundos en la carrera actual. Podemos comparar la carrera actual con la carrera de referencia de dos maneras. Para hacer la comparación tomando como base la distancia, el dispositivo de la invención halla las anotaciones correspondientes a la carrera de referencia que muestran el tiempo que se necesitó para recorrer 6,10 millas. No existe anotación de referencia correspondiente exactamente a esa distancia, pero hay anotaciones correspondientes a 6,05 y 6,15 millas y la interpolación indica que se alcanzaron 6,10 millas aproximadamente en un tiempo de 23:52 en la carrera de referencia. Por lo tanto, se necesitó menos tiempo en la carrera real para cubrir la misma distancia hasta llegar a este punto de la carrera. Este cálculo permite al dispositivo de la invención presentar datos en pantalla como se indica en la Figura 2, que incluyen los tiempos transcurridos. En dicha representación visual, utilizando los números de este ejemplo, la representación indicarı́a el tiempo actual transcurrido como 22:40 y el tiempo de referencia transcurrido como 23:52 y se presentarı́a el sı́mbolo de comparación “+” para indicar que la carrera actual es más rápida que la carrera de referencia. En el programa “evaluate” del apéndice, la lógica para hacer la comparación de esta manera, basada en la distancia, consiste en halar los comentarios siguientes “ – Item 4.2 –” t “– Compare Based on Distance –” (Comparar Basado en la Distancia). 40 45 50 55 Para hacer la comparación basada en el tiempo, el dispositivo de la invención halla las anotaciones correspondientes a la carrera de referencia que muestran hasta donde llegó la carrera de referencia en un tiempo de 22:40. No existe anotación de referencia correspondiente exactamente a ese tiempo, pero hay anotaciones correspondientes a 22:30 y 22:45 y la interpolación indica que se alcanzaron aproximadamente 5,64 millas en el tiempo 22:40 en la carrera de referencia. Este cálculo permite al dispositivo de la invención presentar datos en pantalla como se indica en la Figura 3, que incluyen la distancia recorrida. En esa representación en pantalla, utilizando los números de este ejemplo, la representación visual indicarı́a la distancia actual como 6,10 millas y la distancia de referencia como 5,64 millas, y el sı́mbolo de comparación “+” se presentarı́a para indicar que la carrera actual es más rápida que la carrera de referencia. En el programa “evaluate” del apéndice, la lógica para la comparación de este modo, basada en el tiempo, se halla después de los comentarios “– Item 4.2 –” y “– Compare Based on Time –” (Comparar basado en el tiempo). En resumen, para presentar en pantalla el tiempo actual transcurrido frente al tiempo de referencia transcurrido, es necesario hallar el punto en la matriz tipo correspondiente a la misma “distancia”. Para representar la distancia actual recorrida frente a la distancia alcanzada en la carrera de referencia, es necesario hallar el punto en la matriz de referencia correspondiente al mismo “tiempo” transcurrido. 60 12 ES 2 111 248 T3 Apéndice 5 Este apéndice contiene las rutinas esenciales del un programa para realizar la invención en el lenguaje de programación C, junto con las áreas de datos necesarias. Estas subrutinas se han diseñado de manera que el programa, en un ordenador de bicicleta de tecnologı́a conocida, las pudiera llamar en los puntos apropiados para realizar el procesamiento necesario con arreglo a esta invención. Los números de Item corresponden a los cinco itemes (elementos) de novedad y exclusivos, mencionados en el texto anterior, como cambios necesarios en el software de un ordenador de bicicleta de tecnologı́a conocida. 10 /∗ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Elemento 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -∗/ /∗ - - - - - - - - - - - - - - - - - - - - - - - - - - - - Datos Globales - - - - - - - - - - - - - - - - - - - - - - - - - - - - ∗/ 15 20 /∗ Las variables “current ” (actuales) representan datos relativos a la carrera actual que se utilizan aún en ordenadores de bicicletas actuales que no tuvieran la capacidad de salvar y utilizar archivos tipo o de referencia. Algunos valores son bastante estadı́sticos, como es el diámetro de la rueda, aún cuando estos valores cambian en ocasiones debido a la colocación de nuevas ruedas o cámaras o la presión de inflación. La mayorı́a de las variables muestran información dinámica relativa a la carrera actual en curso. Las subrutinas exclusivas utilizadas con arreglo a esta invención dan por supuesto que este dato se mantiene en el ordenador de la bicicleta y está disponible para ser utilizado en la nueva lógica necesaria para crear y utilizar archivos tipo o de referencia. ∗/ int current time; /∗ = Tiempo transcurrido de la carrera actual en segundos.∗/ 25 int current revolutions;/∗ = Revoluciones de la rueda desde el inicio de la carrera.∗/ float current dist;/∗ = Millas recorridas hasta el momento.∗/ float current speed;/∗ = Velocidad actual en mph.∗( 30 float current avg;/∗ = Velocidad media hasta el momento en esta carrera.∗/ char current date time[32];/∗ = Fecha y hora actuales.∗/ 35 float circumference; /∗ = Circunferencia de la bicicleta en pies.∗/ float diameter;/∗ = Diámetro de la rueda de la bicicleta en pulgadas.∗/ float current revs per-Mile;/∗ = Número de revoluciones de la rueda en una milla.∗/ 40 /∗ El conjunto siguiente de variables se emplea para salvar información relativa a la carrera real en una matriz temporal en el caso de que el usuario decidiera conservarla permanentemente al final de la carrera. La posición 0 en la Matriz de Correlación (véase a continuación) apunta siempre al área de la matriz de referencia temporal para uso para la carrera actual. 45 Se utilizan “mapping[0]· (correlación[0]) se utiliza para fijar “current index” (ı́ndice actual) para apuntar a esa área para utilización. Durante el curso de la carrera, la pantalla se actualiza a intervalos (por ejemplo una vez por segundo) y, a un intervalo mayor (el “save interval” (conservar intervalo)) la distancia (en revoluciones de la rueda) se pone en la posición siguiente en la matriz actual. Para reducir al mı́nimo la cantidad de RAM necesaria en el dispositivo de la invención, las anotaciones en las matrices tipo o de referencia indican exclusivamente la distancia (revoluciones) recorrida en el intervalo de tiempo actual. Por lo tanto, es necesario acumular todas estas distancias para determinar la distancia total recorrida.∗/ 50 int current index;/∗ = Indice de la matriz tipo para conservar esta carrera.∗/ 55 int display interval;/∗ = Segundos entre actualización de pantalla.∗/ int save interval;/∗ = Segundos entre conservación de datos en memoria.∗/ 60 int last save time;/∗ = Tiempo de la última entrada de memoria correspondiente a esta carrera.∗/ int next save time;/∗ = Tiempo programado para la conservación siguiente.∗/ 13 ES 2 111 248 T3 int old revolutions;/∗ = Total revoluciones en el último intervalo conservado,∗/ 5 /∗ Las variables siguientes tienen datos básicos relativos al archivo tipo o de referencia que se ha elegido para comparación durante esta carrera. Una vez elegido un archivo, estos valores son estáticos para el resto de la carrera.∗/ int selected pace;/∗ = Número lógico de archivo tipo para comparación.∗/ in pace num;/∗ = Indice de matriz fı́sica de archivo tipo.∗/ 10 int limit index;/∗ = Número de intervalos en ese archivo tipo,∗/ float pace revs per mile;/∗ = Revoluciones de la rueda por milla correspondientes al tamaño de rueda tipo.∗/ 15 20 /∗ El conjunto siguiente de variables que comienza con “dist ” se emplean para llevar el control de la posición en la matriz tipo que corresponde a la Distancia que se ha recorrido en la carrera actual. Esto nos permite hallar la cantidad de tiempo que ha sido necesaria para recorrer esa misma distancia en la carrera tipo o de referencia y la velocidad a la que fue la bicicleta en la carrera tipo hasta llegar a ese punto.∗/ int dist next;/∗ = Intervalo siguiente en la matriz tipo basado en la distancia.∗/ int dist cum1;/∗ = Total de revoluciones de la rueda al comienzo del intervalo.∗/ 25 int dist cum2;/∗ = Total de revoluciones de la rueda al final de intervalo tipo.∗/ float dist miles1;/∗ = Total de millas al comienzo del intervalo tipo.∗/ 30 float dist miles2;/∗ = Total de millas al final del intervalo tipo.∗/ 35 /∗ El conjunto siguiente de variables que comienzan con “time ” (tiempo) se emplean para llevar el control de la posición en la matriz tipo que corresponde al Tiempo que ha transcurrido durante la etapa de la carrera en curso. Esto nos permite hallar la distancia que se cubrió en la carrera tipo en la misma cantidad de tiempo.∗/ int time next;/∗ = Intervalo siguiente en la matriz tipo basado en el tiempo,∗/ int time cum1;/∗ = Total de revoluciones en la rueda al comienzo del intervalo.∗/ 40 int time cum2;/∗ = Total de revoluciones de la rueda al final del intervalo tipo.∗/ float time miles1;/∗ = Total de millas al comienzo del intervalo tipo.∗/ 45 float time miles2;/∗ = Total de millas al final del intervalo tipo.∗/ float time:dist;/∗ = Millas de referencia interpoladas en el mismo tiempo.∗/ 50 /∗ Las variables, indicadas a continuación, que comienzan con “pace ” (tipo o referencia) son valores interpolados que se derivan de la matriz tipo basados en la distancia actual recorrida. Tienen en consideración que la posición actual suele estar a mitad de camino entre los puntos de datos memorizados en la matriz tipo, por lo que se realiza una interpolación lineal.∗/ float pace speed;/∗ = Velocidad durante este intervalo de matriz tipo.∗/ 55 float pace time;/∗ = Tiempo para alcanzar la distancia actual en la carrera tipo.∗/ float pace avg;/∗ = Velocidad media hasta alcanzar la distancia actual en la carrera tipo.∗/ 60 14 ES 2 111 248 T3 5 /∗ Variables utilizadas en la comparación continua entre el rendimiento en la carrera actual y en el archivo tipo elegido para comparación. Los señalizadores binarios indican si se deben continuar las comparaciones y los resultados de las comparaciones se presentan con sı́mbolos de un carácter +, -, e =. En general, el signo + significa siempre que este aspecto de la carrera actual es Más rápido que la referencia, mientras que el signo - significa que la carrera actual es “más lenta” y el signo = significa que son aproximadamente iguales.∗/ int keep going;/∗1 ⇒ La carrera actual está en curso.∗/ 10 int compare-dist;/∗1 ⇒ Continuar comparando tomando como base la distancia.∗/ int compare time;/∗1 ⇒ Continuar comparando tomando como base el tiempo.∗/ char current compare;/∗ = Velocidad actual frente a velocidad tipo (+.-,=)∗/ 15 char total compare;/∗ = Velocidad media frente a velocidad media tipo (+,-,=)∗/ 20 /∗ Las matrices siguientes contienen los datos correspondientes a los archivos tipo. Esta versión permite hasta 10, incluyendo el número 0 que se utiliza para la carrera actual. La Matriz de Correlación correlaciona números lógicos de archivo tipo con áreas fı́sicas de matriz. “Mapping[0]” (Correlación[0]) apunta siempre al área de matriz temporalizada para registrar la carrera actual. Cuando el usuario decide registrara la carrera real, todo lo que tiene que hacer el programa es intercambiar punteros en la matriz de correlación, en lugar de trasladar realmente todos los datos.∗/ 25 int mapping[10];/∗ = Correlacionar las 10 áreas de la matriz.∗/ int pace valid[10];/∗ = Número de intervalos en esta carrera.∗/ char pace date time[10][32];/∗ = Fecha y hora en la que comenzó la carrera.∗/ 30 in pace interval[10];/∗ = Intervalo de tiempo entre anotaciones en la matriz tipo.∗/ float pace wheel size[10];/∗ = Diámetro de la rueda en pulgadas para este archivo.∗/ 35 int pace final time[10];/∗ = Intervalo parcial al final de la carrera.∗/ int pace final dist[10]/∗ = Distancia recorrida en intervavalo parcial final.∗/ in pace tot[10];/∗ = Longitud total de la carrera en rotaciones de la rueda.∗( 40 int dist [10] [AREA SIZE];/∗ = Rotaciones de la rueda en cada intervalo de tiempo.∗/ /∗ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Elemento 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -∗/ /∗ - - - - - - - - - - - - - - - - - - - - - - - - - - - Iniciar la Carrera - - - - - - - - - - - - - - - - - - - - - - - - - - - ∗/ 45 /∗ Esta rutina inicializa todas la variables necesarias al comienzo de una nueva carrera después de haber elegido el usuario el archivo tipo (si lo hubiera) que va a utilizar.∗/ 50 void star ride( ) { current index = mapping[0] 55 strcpy(pace date time[current index], current date time); 60 15 ES 2 111 248 T3 5 10 pace valid[current index] pace tot[current index] pace interval[current index) pace wheel size[current index] pace final time[current index] pace final dist[current index] last save time next save time current revolutions old revolutions = = = = = = = = = = 0; 0; save interval; diameter; 0; 0; 0; save interval; 0; 0; current revs per mile = 5280.0/(diameter∗ 3.1415927/12,00); 15 20 current dist current time pace time current avg current speed compare dist compare time = = = = = = = 0.00; 0; 0.00; 0.00; init speed; 0; 0; if (selected pace > 0) 25 { pace revs per mile limit index dist next dist cum1 dist cum2 dist miles1 dist miles2 pace speed = = = = = = = = 5280.0/(pace-whell size[pace num] ∗ 3.1415927/12.00); pace valid[pace num]; 0; 0; dist [pace num] [0]; 0.00; (1.00 ∗ dist cum2)/pace revs per mile; = 3600.0 ∗ dist miles2/pace interval[pace num]; 40 time next time cum1 time cum2 time miles1 time miles2 compare dist compare time = = = = = = = 0; 0; dist [pace num] [0]; 0.00; (1.00 ∗ time cum2)/ pace revs per mile; 1; 1; 45 }; 30 35 /∗ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Elemento 2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -∗/ /∗ - - - - - - - - - - - - - - - - - - - update screen (actualizar pantalla) - - - - - - - - - - - - - - - - - - - ∗/ 50 55 /∗ Se llama a esta función para presentar información en pantalla de la carrera actual con información comparable procedente del archivo tipo elegido. Existen definidos tres formados de pantalla y la función “input argument screen type” (tipo de pantalla de argumento de entrada) elige el formato que se tiene que presentar. Los datos presentados por cada tipo son como siguen: 1. Velocidad actual, tiempo actual transcurrido, velocidad y tiempo actuales tipo. 2. Velocidad y distancia actuales, velocidad y distancia actuales tipo. 60 3. Velocidad media y tiempo de carrera de esta etapa, y velocidad media y tiempo de carrera de referencia hasta el mismo punto de la ruta. La función “display” (representar en pantalla) se utiliza para poner carácteres especı́ficos en cualquier posición válida de la pantalla. La función “display” es muy flexible y utiliza su primer parámetro para 16 ES 2 111 248 T3 definir el tipo de dato que se debe representar. El segundo parámetro es el valor, que se convertirá al formato apropiado basado en el tipo especificado por el primer parámetro. 5 El tercer parámetro especifica la fila en la pantalla y el cuarto parámetro especifica la posición dentro de la fila. El último parámetro especifica el número de posiciones de carácteres que se tienen que representar en la pantalla.∗/ 10 void update screen(screen type) int screen type; { 15 /∗ /∗ /∗ /∗ Podemos visualizar siempre el número de archivo tipo∗/ elegido, puesto que aparece en todos los formatos de∗/ pantalla. Todas las representaciones en pantalla pre-∗/ sentan también la fecha/hora actuales.∗/ 20 display (CHAR, current date time, ROW1, LEFT, 18); display (INT, selected pace, ROW4, CENTER, 1); 25 if (screen type == 1) { display(CHAR, “Speed ET”, ROW2, LEFT, 18); 30 display(FLOAT, current speed, ROW3, LEFT, 4); display(CHAR, current compare, ROW3, LEFTCOMP, 1); 35 display(TIME, current time, ROW3, RIGHT, 7); display(CHAR, total compare, ROW3, RIGHTCOMP, 1); if (compare-dist) 40 { display(FLOAT, pace speed, ROW4, LEFT, 4); display(TIME, pace time, ROW4, RIGHT, 7); 45 } else 50 { display(BLANK, NULL, ROW4, LEFT, 4); display(BLANK, NULL, ROW4, RIGHT, 7); 55 }; }; 60 si (screen type == 2) 17 ES 2 111 248 T3 { display(CHAR, “Speed Dist”, ROW2, LEFT, 18); display(FLOAT, current speed, ROW3; LEFT, 4); 5 display(CHAR, current compare, ROW3, LEFTCOMP, 1); display(FLOAT, current dist, ROW3, RIGHT, 4); 10 display(CHAR, total compare, ROW3, RIGHTCOMP, 1); si (compare dist) display(FLOAT, pace speed; ROW4, LEFT, 4); 15 else display(BLANK, NULL, ROW4, RIGHT, 4); 20 }; si (screen type == 3) { 25 display(CHAR, “Avg Sp RT ”, ROW2, LEFT, 18); display(FLOAT, current avg, ROW3, LEFT, 4); 30 display(CHAR, current compare, ROW3, LEFTCOMP, 1); display(TIME, current time, ROW3, RIGHT, 7); display(CHAR, total compare, ROW3, RIGHTCOMP, 1); 35 si (compare dist) { 40 display(FLOAT, pace avg, ROW4, LEFT, 4); display(TIME, pace time, ROW4, RIGHT, 7); } 45 else { 50 display(BLANK, NULL, ROW4, LEFT, 4); display(BLANK, NULL, ROW4, RIGHT, 7)¨; }; 55 }; }; 60 18 ES 2 111 248 T3 /∗ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Elemento 3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -∗/ /∗ - - - - - - - - - - - - - - - - - show pace files (presentar archivos tipo) - - - - - - - - - - - - - - - - - ∗/ 5 10 15 20 /∗ Si el usuario ha pulsado teclas de control para que se presenten en pantalla datos de resumen relativos a ficheros tipo, se llama a esta rutina. La variable “selected pace” (tipo elegido) indica el número lógico del archivo tipo y “pace num” (número de tipo) indica el ı́ndice correspondiente en las matrices de datos. Estas variables se hacen avanzar llamando a la rutina “advance index” (avanzar ı́ndice) siempre que el usuario pulsa la tecla de control apropiada mientras está en pantalla esta información de datos de resumen. La función “display” (representar en pantalla) se emplea para poner carácteres especı́ficos en cualquier posición válida de la pantalla. La función “display” es muy flexible y utiliza su primer parámetro para definir el tipo de datos que se tienen que presentar en pantalla. El segundo parámetro es el valor, que se convertirá al formato apropiado basado en el tipo especificado por el primer parámetro. El tercer parámetro especifica la fila en la pantalla y el cuarto parámetro especifica la posición en la fila. El último parámetro especifica el número de posiciones de caracteres que deben aparecer en pantalla.∗/ void show pace files( ) { 25 int k, seconds, revs; float miles, avgspeed; 30 /∗ La fecha y la hora actuales y el número de archivo tipo elegido son siempre válidos, por lo que definitivamente podremos hacer que se presenten en pantalla aún cuando no existieran otros datos.∗/ display(CHAR, current date time, ROW1, LEFT, 18); 35 display(CHAR, “ Historical Data”, ROW2, LEFT, 18); display(INT, selected pace, ROW4, CENTER, 1); 40 /∗ Si el archivo tipo elegido tiene datos válidos, se calcula que se presenta en pantalla la información de resumen. De lo contrario, el resto de la pantalla se deja en blanco.∗/ si (pace valid[pace num]) { 45 k seconds 50 = pace valid[pace num]; = k ∗ pace interval[pace num] + pace final time[pace num]; revs = (revs ∗ pace wheel size[pace num] ∗ 3.1415927/12.00( / 5280.00; avgspeed = miles ∗ 3600.00 / seconds; display(FLOAT, avgspeed, ROW3, LEFT, 4); 55 display(CHAR, pace date time[pace num]; ROW3, RIGHT, 8); display(FLOAT, miles, ROW4, LEFT, 4); 60 display(TIME, seconds, ROW4, RIGHT, 7); } 19 ES 2 111 248 T3 else { display(BLANK, NULL, ROW3, LEFT, 4); 5 display(BLANK, NULL. ROW3, RIGHT, 8); display(BLANK, NULL, ROW4, LEFT, 4); 10 display(BLANK, NULL. ROW4, RIGHT, 7); }; 15 }; /∗ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Elemento 3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ∗/ /∗ - - - - - - - - - - - - - - - - - - - - - advance index (avanzar ı́ndice) - - - - - - - - - - - - - - - - - - - - ∗/ 20 25 /∗ Se llama a esta rutina si la pantalla actual está presentando datos de resumen relativos a archivos tipo y el usuario pulsa la tecla de control para avanzar y examinar el archivo tipo siguiente siguiendo un orden rotatorio o de “mesa redonda”.∗/ void advance index( ) { if (selected pace < 9) selected pace++; 30 else selected pace = 1; pace num 35 = mapping[selected pace]; }; /∗ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Elemento 4 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ∗/ /∗ - - - - - - - - - - - - - - - - - - - - - - - - - - - evaluate (evaluar) - - - - - - - - - - - - - - - - - - - - - - - - - - ∗/ 40 45 50 55 ∗/ Esta rutina contiene la mayor parte de la lógica que es exclusiva de la invención. Se la llama por medio del programa principal que ya suponemos presente en cualquier ordenador de bicicleta existente. El programa principal llama a pantalla cada vez que se tiene que actualizar el contenido en pantalla. El programa principal lleva el control de datos básicos relativos de la carrera actual, como son el tiempo transcurrido y la distancia recorrida. Este programa tiene dos funciones: 1. Periódicamente crea otra anotación en el archivo tipo temporal actual para llevar control de la evolución de la carrera actual en el caso de que el usuario decidiera después guardarla permanentemente. 2. Explora el archivo tipo elegido (si lo hubiera) para hallar los lugares que corresponden a la misma distancia y tiempo en la carrera tipo y utiliza esos datos para calcular valores comparables que se pueden visualizar junto con la información usual relativa a la carrera actual, de manera que el usuario pueda ver fácilmente como se está comportando comparando con la carrera tipo elegida.∗/ void evaluate( ) { int i, j, k, delta; 60 /∗ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Elemento 4.1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ∗/ /∗ - - - - - - - - - - - - - - - - - - - - - - - Actualizar Matriz Tipo Actual - - - - - - - - - - - - - - - - - - - - - ∗/ 20 ES 2 111 248 T3 /∗ En primer lugar, si es el momento de crear una nueva anotación en la matriz tipo temporal correspondiente a la carrera actual, hacerlo.∗/ = pace valid[current index]: i 5 if ((current time>= next time) && (i <AREA SIZE)) { delta = current revolutions dist[current index][i] pace valid[current index][i] pace tot[current index] last save time next save time 10 15 - old revolutions; = delta; = i + 1; = current revolutions; = current time; = next save time ∗ save interval; 20 old:revolutions = current revolutions; }; 25 /∗ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Elemento 4.2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ∗/ /∗ - - - - - - - - - - - - - - - - - - - - - Comparar Basado en la Distancia - - - - - - - - - - - - - - - - - - - - ∗/ 30 35 /∗ Avanzar por la matriz de distancia tipo hasta el punto que sea necesario para hallar las dos anotaciones que presentan entre corchetes la DISTANCIA actual. Como la matriz tipo solamente contiene diferencias, las debemos acumular para obtener los totales correspondientes. NOTA: Si “selected pace = 0” (tipo elegido = 0), no debemos intentar hacer comparación alguna toda vez que no se habı́a elegido archivo tipo o no era utilizable.∗/ current compare = ’ ’; total compare = ’ ’; si (selected pace == 0) return; 40 while ((current dist >= dist miles2) && keep going && compare dist) { 45 dist miles1 = dist miles2; dist cum1 = dist:cum2; dist next++; 50 si (dist next >= limit index) compare dist = 0; else 55 { dist cum2 dist-miles2 pace speed 60 = dist cum2 + dist[pace num][dist next]; = (1.00 ∗ dist cum2) / pace revs per mile; = (dist miles2 - dist miles1) ∗ 3600. 0/ pace interval[pace num]; 21 ES 2 111 248 T3 }; }; 5 si (compare dist) { x =(current dist - dist miles1) / (dist miles2 - dist miles1); 10 y = x ∗ pace interval[pace num]; pace time= (1.00 ∗ dist next ∗ pace interval[pace num])+ y; pace:avg =current dist ∗ 3600.00 / pace time; 15 if (current speed> (pace speed + 0.05)) current compare = ’+’; else 20 if (current speed < (pace speed - 0.05)) current compare ‘-’; else current compare = ‘=’; if (current time> (pace time + 0.5)) total compare = ‘-’; 25 else if (current time<(pace time - 0.5)) total compare = ‘-’: 30 else total compare = ’=’; }; /∗ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Elemento 4.2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ∗/ 35 /∗ - - - - - - - - - - - - - - - - - - - - - - Comparar Basado en el Tiempo - - - - - - - - - - - - - - - - - - - - - ∗/ 40 45 /∗ Avanzar por la matriz de distancia tipo hasta el punto necesario para hallar las anotaciones que presentan entre corchetes el Tiempo transcurrido actual. Acumular la distancia correspondiente a cada anotación. Este par de anotaciones de matriz tipo se utiliza para comparar la distancia actual con la distancia tipo o de referencia, calculando hasta que punto se habı́a llegado en la carrera tipo en la misma cantidad de tiempo.∗/ n = current time / pace interval[pace num]; while ((time next < n) && (time:next < limit index) && compare time) { 50 time next++; si (time next >= limit index) compare time = 0; 55 else { 60 time time time time cum1 cum2 miles1 miles2 = = = = time cum2; time cum2 ∗ dist[pace num][time next]; time miles2; /1.00 ∗ time cum2) / pace revs per mile; 22 ES 2 111 248 T3 }; }; 5 si (compare time) { x = current time % pace interval[pace num]; x = x / pace interval[pace num]; y = (time cum2 - time cum1) ∗ x ) pace revs per mile; time dist = time miles1 + y; 10 15 20 /∗ Si todavı́a estamos comparando tomando como base el tiempo pero No tomando como base la distancia, significa que hemos llegado Más lejos que en la carrera tipo en Menos tiempo, por lo que nuestra velocidad general es Mejor que en la carrera tipo, por lo que se presenta el signo “+”. Si todavı́a estamos comparando tomando como base la distancia, entonces la lógica anterior ya habrá determinado si vamos por delante o por detrás.∗/ su (!compare dist) total compare = ‘+’; }; 25 }; /∗ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Elemento 5 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ∗/ 30 /∗ - - - - - - - - - - - - - - - - - - - - - - - save ride (conservar carrera) - - - - - - - - - - - - - - - - - - - - - ∗/ 35 /∗ Se llama a esta rutina si el usuario pulsa las teclas de control para salvar (conservar) los datos de la carrera que acaba de finalizar en lugar de otros datos contenidos en la matriz tipo. Como la matriz de correlación correlaciona las áreas de datos tipo, es muy fácil y rápido hacer esta sustitución. No hay necesidad de mover todos los datos reales en la matriz; todo lo que se tiene que hacer es intercambiar valores de punteros en la matriz de correlación. Antes de hacerlo, esta rutina hace una comprobación para garantizar que la carrera actual no tuvo una duración de cero, con el fin de evitar que se destruyan datos conservados válidos con una carrera nula, lo cual no tiene lugar.∗/ 40 void save ride( ) { if (pace valid[current index]) 45 { mapping[0] mapping[selected pace] pace num current index 50 = = = = mapping[selected pace]; current index; current index; mapping[0] }; 55 }; 60 23 ES 2 111 248 T3 REIVINDICACIONES 5 1. Sistema de representación visual (14), controlado por el usuario, para una bicicleta, que se emplea para verificar y comparar señales eléctricas representativas del rendimiento actual de un ciclista a lo largo de una ruta, contra un rendimiento previo conservado, que comprende: un dispositivo de detección de las revoluciones de una rueda (11, 12) asociado con una rueda (10) de la bicicleta, proporcionando el dispositivo de detección de revoluciones de la rueda una serie de señales con arreglo al número de revoluciones de la rueda representativas de la distancia recorrida por la rueda; 10 15 20 25 30 un dispositivo de cronometración que proporciona una pluralidad de señales de cronometración representativas del tiempo transcurrido (22) a partir del comienzo del ejercicio de entrenamiento o carrera; medios de entrada/salida (24, 60) para recibir datos de introducción y selección por parte del usuario, y generar una señal de entrada correspondiente representativa de los mismos, y/o generar una señal de presentación en pantalla en respuesta a una señal de salida, de presentación en pantalla, recibida, para presentar en pantalla datos al usuario; caracterizado porque: un dispositivo procesador (61) recibe, como entrada, las referidas señales de distancia recorrida, tiempo transcurrido y generadas por el usuario, para almacenar, de una forma recuperable, cada una de las señales de distancia recorrida y tiempo transcurrido en una porción elegida por el usuario de un dispositivo de memoria (66), como una serie de señales de datos detallados de rendimiento representativas de por lo menos el tiempo transcurrido y la distancia, con relación a una pluralidad de puntos a lo largo de la ruta presente recorrida por el usuario; funcionando el dispositivo procesador con arreglo a un conjunto predeterminado de instrucciones controladas por el usuario para almacenar el conjunto de datos de rendimiento correspondientes al rendimiento actual del ciclista en el dispositivo de memoria, y comparar el conjunto de señales de dato de rendimiento contra un conjunto de datos de rendimiento, almacenados, elegidos por el usuario, que representan un rendimiento anterior conservado, y generar una señal de salida de presentación en pantalla, representativa de una métrica de comparación entre los referidos datos, a los medios de entrada/salida. 2. Sistema de representación visual según la reivindicación 1, caracterizado porque comprende además: 35 un dispositivo sensor asociado con la bicicleta para proporcionar una serie de señales con arreglo a la altitud a la que se haya la bicicleta y representativas de la altitud; medios para proporcionar las señales de altitud al dispositivo procesador (61). 40 45 50 3. Sistema de representación visual según la reivindicación 1, caracterizado porque el dispositivo procesador (61) incluye además: medios para comparar los datos de rendimiento actuales con datos previamente conservados, para determinar si el rendimiento actual es mayor o menor que el de los datos conservados y para generar una señal de salida de presentación en pantalla, representativa del resultado de tal comparación, a los medios de entrada/salida (24, 60) para visualización por parte del usuario. 4. Sistema de representación visual según la reivindicación 1, caracterizado porque los medios de entrada/salida (24, 60) incluyen además: medios para producir un tono audible que funciona de conformidad con la señal de salida de presentación en pantalla generada por el dispositivo procesador (61). 55 5. Sistema de representación visual según la reivindicación 1, caracterizado porque los medios de entrada/salida 24, 60) incluyen además: 60 24 ES 2 111 248 T3 medios (65) para conectar el dispositivo procesador (61) y el dispositivo de memoria (66) a un sistema de ordenador externo, de manera que el sistema de ordenador externo pueda leer y escribir datos en las áreas de memoria utilizadas por el dispositivo procesador. 5 10 15 20 25 30 35 40 45 50 55 60 NOTA INFORMATIVA: Conforme a la reserva del art. 167.2 del Convenio de Patentes Europeas (CPE) y a la Disposición Transitoria del RD 2424/1986, de 10 de octubre, relativo a la aplicación del Convenio de Patente Europea, las patentes europeas que designen a España y solicitadas antes del 7-10-1992, no producirán ningún efecto en España en la medida en que confieran protección a productos quı́micos y farmacéuticos como tales. Esta información no prejuzga que la patente esté o no incluı́da en la mencionada reserva. 25 ES 2 111 248 T3 26 ES 2 111 248 T3 27 ES 2 111 248 T3 28 ES 2 111 248 T3 29 ES 2 111 248 T3 30