Foros


ZRound - Cronometraje de carreras - Lap Counter :: Foros :: Documentación
<< Tema anterior | Tema siguiente >>   

Precisión del ZRound

Autor Mensaje
Frankie
L nov 25 2006, 02:18EL
Miembro registrado #210
Unido: R nov 24 2006, 05:55PL
Mensajes: 3
Hola, en primer lugar felicitar al autor del software ZRound. Me parece que tiene una calidad y un acabado profesional, o sea, que bien podría ser de pago. Muchas gracias por compartirlo. Mi pregunta tiene que ver con la precisión del cuentavueltas, es decir, ¿con qué frecuencia lee el puerto paralelo (caso del slot) el ZRound? ¿Se obtiene una precisión "real" de milésimas de segundo como se representa en la aplicación? Todo esto lo digo porque quiero montar en mi circuito un puente de infrarrojos ds y adaptarlo al pc con el ZRound instalado y me importa mucho la precisión del sistema. Muchas gracias por la respuesta.
Volver arriba
Jesús
L nov 25 2006, 11:26EL

Unido: P juuni 04 2006, 11:43PL
Mensajes: 202
Gracias Frankie. Te detallo el funcionamiento del modulo de detección de slot.

El programa levanta un hilo que gestiona el cronómetro durante la carrera (se usa el contador de alta resolución del sistema mediante la función QueryPerformanceCounter) y en el que se ejecuta un bucle infinito con estos pasos en cada ciclo:

- Se obtiene el tiempo del sistema

- Se hace la lectura del puerto paralelo. Para todas las pistas la referencia de tiempo es la del punto anterior. En el modo ECP solo se hace una lectura, mientras que en el modo SPP es necesaria una escritura y dos lecturas.

- Se encola un mensaje con la información de la pista detectada y el tiempo del crono para que sea tratado por la aplicación. De esta forma, los tiempos de detección siempre son los obtenidos en el momento del muestreo y no dependen de en qué momento la aplicación haya podido procesar el mensaje. Solo se envía este mensaje al detectar el cambio de estado del pin por lo que no se generará una nueva detección hasta que no se desactive (de no ser así se estarían generando mensajes continuamente mientras el pulso esté activo en cada ciclo de muestreo)

- Opcionalmente se hace una pausa (configurable en el programa)

En el hilo principal de la aplicación irá procesando los mensajes del módulo de detección para ir mostrando los tiempos en pantalla o por voz, realizando las clasificaciones, anotando logs, etc.

Respecto a la resolución del crono, ésta depende de la arquitectura del PC y el sistema operativo. Como he comentado anteriormente también depende del modo de funcionamiento del puerto paralelo ofreciendo mejor rendimiento el modo ECP (en mis pruebas pero puede variar en función del sistema).

Con nivel de pausa a 0 (sin pausa entre muestras) los tiempos obtenidos son:

PIII - 733MHz- Windows 2000
- Modo ECP
---> Tiempo de trabajo: 21.037 ms
---> Muestras: 856.489
---> Tiempo medio por ciclo: 25 microsegundos (0,025ms)

- Modo SPP
---> Tiempo de trabajo: 22.947 ms
---> Muestras: 247.260
---> Tiempo medio por ciclo: 93 microsegundos (0,093ms)

Centrino -1400MHz- Windows XP
- Modo ECP
---> Tiempo de trabajo: 20.992 ms
---> Muestras: 4.788.277
---> Tiempo medio por ciclo: 4 microsegundos (0,004ms)

- Modo SPP
---> Tiempo de trabajo: 22.921 ms
---> Muestras: 1.684.316
---> Tiempo medio por ciclo: 14 microsegundos (0,014ms)

Como ves, eliminando la pausa entre muestras los tiempos para cada muestra son inferiores al milisegundo por lo que deberían ser suficientemente fiables.

Usando una pausa los tiempos medios por ciclo suben al orden de los milisegundos. En el programa de pruebas "slottest" no vuelco el tiempo medio por ciclo pero si se ven las muestras por segundo. Con él se podrá verificar el funcionamiento del sistema de cronometraje y la bondad de los tiempos. Es cierto que la pausa hace que la precisión real suba a centésimas de segundo pero he querido dejar esa posibilidad para que cada uno elija la precisión que desee a cambio de mayores prestaciones, en particular, disponer de un sistema de voz para que el sistema te cante las vueltas rápidas, las clasificaciones, etc.

No se si podría hacerse alguna otra mejora al programa pero creo que la construcción ofrece tiempos fiables (sobretodo si la pausa entre muestras es 0) y robusta. Cualquier proposición en este sentido será MUY BIEN recibida.

El instalador de ZRound deja en la carpeta del programa una aplicación que he hecho para verificar el sistema de detección (ver los pines en los que hay detección, tiempos, muestras por segundo, etc). Puedes usarlo para ver si el sistema se ajusta a tus necesidades.

Un saludo,

Jesús.
Volver arriba
Frankie
L nov 25 2006, 12:38PL
Miembro registrado #210
Unido: R nov 24 2006, 05:55PL
Mensajes: 3
Muchas gracias Jesús por tu pronta y detallada respuesta. Ahora tengo una idea mucho más aproximada del funcionamiento del sistema. Si no he entendido mal poniendo a 0 la pausa conseguimos sin problemas superar la precisión de milésimas de segundo (yo tengo un AMD Athlon 2400+ con 1 GB de RAM), aunque probablemente no funcione el sistema de alertas por voz. Si pongo la pausa a 1 tendré voz pero la precisión sería de centésimas de segundo. Bueno, me parece que está muy bien dejar la opción al usuario. Supongo que hasta que no haya ordenadores más rápidos no podremos tener las dos opciones funcionando simultáneamente. Muchas gracias otra vez Jesús.
Volver arriba
Jesús
L nov 25 2006, 01:50PL

Unido: P juuni 04 2006, 11:43PL
Mensajes: 202
Hay solución para los circuitos donde la precisión y fiabilidad son prioritarios y en los que se quiere aprovechar el sistema de voz.

Se puede activar la monitorización remota en ZRound (pestaña Remoto de la ventana de configuración) para poder conectar el ZViewer (menú archivo/conectar ...). ZViewer pedirá la dirección del servidor ZRound y se conectará para seguir desde otro PC la carrera en tiempo real a través de la red. Se muestra la clasificación de carrera con tiempos y vueltas y en otra página está disponible el vuelta a vuelta; todo con letras "grandes" para facilitar la lectura. ZViewer también te permite activar el sistema de voz en ese PC, que debe estar "desactivado" en ZRound para que sea ZViewer el que hable.

La dirección se expresa con la sintáxis estandard "servidor:puerto", donde:
servidor es el nombre del PC (o dirección IP) de ZRound
puerto es el puerto utilizado por ZRound para la monitorización. Si no se indica la parte ":puerto" se usará por defecto el 5000. Ese valor se establece en la página de configuración "remoto" de ZRound.

Volver arriba
Frankie
L nov 25 2006, 03:34PL
Miembro registrado #210
Unido: R nov 24 2006, 05:55PL
Mensajes: 3
Qué bueno! Te entiendo perfectamente. Un ordenador se dedica exclusivamente al cronometraje mientras pasa la información por red a otro que visualiza resultados y (como éste tiene menos ocupada la cpu) usa el sistema de voz. Bueno pues a ver si más adelante me agencio un portátil y con la intranet por wifi me puede salir el invento. De momento estoy muy contento con las pruebas que he hecho con tu programa. Gracias, Jesús.
Volver arriba
Moderadores: Jesús, jesus

Saltar:     Volver arriba

Sindicalizar este hilo: rss 0.92 Sindicalizar este hilo: rss 2.0 Sindicalizar este hilo: RDF
Powered by e107 Forum System