Autor Tema: Reloj digital de Ajedrez con LCD (finalizado)  (Leído 18331 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado mtristan

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 395
Reloj digital de Ajedrez con LCD (finalizado)
« en: 24 de Octubre de 2009, 13:01:52 »
.

Después de trabajosos meses de programación (nunca me decidía a terminarlo), he aquí mi primer contribución a los proyectos del foro. Se trata de un reloj de ajedrez bastante completo (quería que no tuviera nada que envidiarle a ningún reloj comercial). Sus características:

- Tiempo inicial de 0 a 9hs 59min y 59seg
- Posibilidad de iniciar con tiempos diferentes para cada jugador
- Posibilidad de agregar tiempo luego de cada jugada en dos modalidades:
     Tiempo adicional fijo: de 0 a 9min 59seg.
     Tiempo adicional relativo: se agrega el tiempo que tardó el otro jugador en su turno anterior.
- Posibilidad de usar tiempo de demora de 0 a 59seg entre que inicia nuestro turno y el reloj comienza a descontarnos tiempo.
- Límite de jugadas de 0 a 999.
- Posibilidad de usar tiempo adicional y tiempo de demora a partir de un determinado número de jugadas mínimas (las jugadas para tiempo adicional son independientes de las de demora)
- Guarda hasta 5 configuraciones de tiempo diferentes.
- Posibilidad de pausar el juego y modificar el tiempo de cualquiera de los jugadores individualmente
- Menú de configuración fácil de entender y usar

Y lo mejor: mínima cantidad de componentes: un 16F628A, un LCD alfanumérico 16x02 y tres pulsadores con resistencias pull-up.
En mis pruebas utilizo un LCD que tal vez no sea del agrado de muchos, ya que no he visto que casi nadie lo use en este foro, el Winstar WH1602. Aunque por supuesto cualquier otro puede ser usado, siempre que se modifique correctamente el archivo de subrutinas que acompaña al programa principal (todo adjunto a este mensaje).

No tengo mi cámara conmigo, pero esta tarde o mañana subiré alguna foto del prototipo (en protoboard por el momento) y algunas intrucciones de uso para el que quiera ponerse manos a la obra (no pude esperar para subir el proyecto, mil perdones  :angel:)
¡Hasta entonces!

When you see a good move, look for a better one (Emanuel Lasker)

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1694
Re: Reloj digital de Ajedrez con LCD (finalizado)
« Respuesta #1 en: 24 de Octubre de 2009, 13:09:27 »
anda gran trabajo en ASM...a la espera de un videillo... :-/ :-/
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 17909
    • MicroPIC
Re: Reloj digital de Ajedrez con LCD (finalizado)
« Respuesta #2 en: 24 de Octubre de 2009, 13:10:47 »
A ver esas fotos. Enhorabuena y gracias por compartirlo
Un saludo desde Sevilla, España.
Visita MicroPIC                                                                                        ɔ!doɹɔ!ɯ ɐʇ!s!ʌ

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Reloj digital de Ajedrez con LCD (finalizado)
« Respuesta #3 en: 24 de Octubre de 2009, 13:59:15 »
suena muy interesante uno más a la cola para ver el video y fotos

felicidades por el trabajo
.

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Reloj digital de Ajedrez con LCD (finalizado)
« Respuesta #4 en: 24 de Octubre de 2009, 18:05:08 »
 :-/ Felicidades! Y en ASM !!!  :mrgreen:


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado mtristan

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 395
Re: Reloj digital de Ajedrez con LCD (finalizado)
« Respuesta #5 en: 25 de Octubre de 2009, 20:01:37 »
.

Pues he aquí una foto de cómo quedó:

(Los pulsadores negros corresponden a JD y JI. El rojo a OK. El LED verde me gusta ponerlo cada vez que uso el protoboard para asegurarme que está conectada la alimentación)

Cada vez que se energiza el reloj, el LCD se inicializa y muestra la primer pregunta ¿Iniciar iguales?:


Si se presiona el pulsador JI (del lado de la opción SI) nos mostrará lo siguiente:


Los números de la primer línea son los que iremos cambiando hasta llegar al valor numérico deseado, corresponden al formato h:mm:ss (horas, minutos y segundos). En la segunda línea se muestra una flecha apuntando hacia arriba, indicando el dígito que se está modificando en ese momento. Para esto pulsamos JD y JI para incrementar o decrementar el númeo sobre la flecha. Una vez llegado al número buscado, pulsamos el botón OK y la flecha se mueve hacia la izquierda; ahora modificamos el nuevo número sobre la flecha. Si llegamos al último número de la izquierda y pulsamos OK, la flecha va a parar al primero de la derecha. Si al momento de la pregunta se eligió la opción NO, tendremos que hacer esto 2 veces, una para cada jugador. El display va a mostrar una flecha a la derecha o a la izquierda según estemos ingresando el tiempo para el jugador de la derecha o la izquierda.


Una vez llegado al tiempo inicial deseado, mantenemos pulsado OK y apretamos JI o JD (cualquiera de los dos) y pasamos a la pregunta siguiente: ¿Tiempo adicional?
Si elegimos NO, pasamos a la próxima pregunta. Si elegimos sí, nos dará a elegir entre las dos modalidades posibles: relativo (REL) o fijo (FIJO). Elegimos fijo y aparecerá algo similar a lo que mostró a la hora de ingresar el tiempo inicial, solo que en el formato m:ss. El modo de modificar este tiempo es el mismo que en el paso anterior. Ahora nos pedirá el mínimo de jugadas necesarias para que el reloj comienenze a usar el tiempo adicional; mostrará LUEGO DE J 000.


Modificamos los números 000 y el tiempo inicial se activará "luego de la jugada" que hayamos ingresado.


Ahora la siguiente pregunta será ¿Tiempo de demora? Si elegimos NO, pasamos a la próxima pregunta. Si elegimos SI, ingresamos los segundos de demora que queramos y las jugadas mínimas para que se activen.
Siguiente pregunta: ¿Jugadas máximas? Elegimos que NO y pasamos a la siguiente pregunta (en realidad seteamos también en 999 el número de jugadas máximas). Elegimos SI e ingresamos el número de jugadas máximas (vale la pena aclarar que el número que seleccionemos será el número máximo "inclusive" de jugadas máximas).
Siguiente pregunta: ¿Guardar configuración?. Elegimos NO y pasamos a la pantalla principal del juego (por fin). Elegimos SI y pedirá ingresar el número de posición en el cual guardamos la configuración.
Ahora sí: la pantalla principal del juego:


En la línea superior muestra los tiempo actuales de cada jugador. En la inferioir (de izquierda a derecha) el tiempo adicional seleccionado, las jugadas totales (se inician en 000) y el tiempo de demora seleccionado. El signo de exclamación al lado de los tiempos adicional y de demora indica que aún no se alcanzaron las jugadas mínimas para que se activen; desaparecen cuando las se llega a tales jugadas.

Para pausar el juego en cualquier momento, pulsamos OK y aparecerá en el centro de la línea superior la letra P acompañada de una flecha que indica cuál jugador estaba en su turno antes de entrar en modo pausa. Para salir de este modo, pulsamos OK nuevamente y sigue descontando al jugador al cual apunta la flecha. Para modificar el tiempo de cualquier jugador en modo pausa, presionamos el botón JD o JI, para modificar al jugador derecho o izquierdo respectivamente.


Por último, para cargar una configuración guardada anteriormente, mantenemos pulsado alguno de los pulsadores JI o JD (cualquiera de ellos) antes de energizar el reloj y lo sostenemos mientras lo energizamos hasta que el display pida la posición de la cual se quiere cargar. Luego de esto, se pasa directamente a la pantalla principal de juego.

.

Espero que haya gustado y que alguien se interese en hacerlo  :mrgreen:. Estoy a disposición para cualquier consulta.
¡Saludos!

When you see a good move, look for a better one (Emanuel Lasker)

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1694
Re: Reloj digital de Ajedrez con LCD (finalizado)
« Respuesta #6 en: 25 de Octubre de 2009, 22:41:31 »
 :-/ :-/ :-/ :-/ :-/ :-/ :-/  gran trabajo ...El ASM de lejitos :2]
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3578
    • Impresiones en 3D
Re: Reloj digital de Ajedrez con LCD (finalizado)
« Respuesta #7 en: 26 de Octubre de 2009, 13:12:49 »
Muy bien, felicitaciones. Te quedó excelente  :-/ :-/ :-/
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado mtristan

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 395
Re: Reloj digital de Ajedrez con LCD (finalizado)
« Respuesta #8 en: 04 de Noviembre de 2009, 15:43:44 »
.

Muchas gracias por sus comentarios alagadores  :oops: jaja.
La verdad el desafío no fue hacerlo en ASM, ¡Sino hacerlo sin ICSP ni simulador! Quién sabe cuántas veces lo saqué del protoboard, lo puse en el programador, lo devolví al protoboard, lo saqué devuelta, lo programé de vuelta...

When you see a good move, look for a better one (Emanuel Lasker)

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7881
Re: Reloj digital de Ajedrez con LCD (finalizado)
« Respuesta #9 en: 04 de Noviembre de 2009, 16:25:43 »
Muy buen aporte, y te felicito por la claridad de la programación y los comentarios !!
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado serch

  • PIC10
  • *
  • Mensajes: 2
Re: Reloj digital de Ajedrez con LCD (finalizado)
« Respuesta #10 en: 03 de Diciembre de 2009, 15:20:35 »
Hola Estoy viendo tu reloj  yo tambien juego ajedrez y siempre he querido hacer un reloj.....

No veo el equivalente a la bandera cuando se va a acabar el tiempo para que el jugador que este en este problema se apure
y no pierda por tiempo

Esta señalado en el LCD??? :?

Sergio

Gracias por compartir

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Reloj digital de Ajedrez con LCD (finalizado)
« Respuesta #11 en: 03 de Diciembre de 2009, 15:33:18 »
Muy bueno el relojito, hay de todo en el foro desde relojes para ajedrez hasta relojes cariñosos.

Saludos
El papel lo aguanta todo

Desconectado Drod

  • PIC16
  • ***
  • Mensajes: 136
Re: Reloj digital de Ajedrez con LCD (finalizado)
« Respuesta #12 en: 03 de Diciembre de 2009, 15:43:13 »
Muy bueno el reloj, y bueno programacion!

jajajajajajjaajjajjaja!!!! Reloj cariñoso!!! No habia visto!!! jajaja!!!


Desconectado mtristan

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 395
Re: Reloj digital de Ajedrez con LCD (finalizado)
« Respuesta #13 en: 04 de Diciembre de 2009, 19:26:27 »
.

Por desgracia no pude incluir todo lo que me hubiese gustado en el reloj  :sad:, debido a un tema de memoria del pic (no recuerdo bien los números, pero no me sobraron más de 20 bytes de memoria de programa). Incluso tuve que quitar pedazos y rehacer todo nuevamente para que me entrara.
Sería interesante poner un aviso (yo pensaba en hacer titilar el backlight, por ej) cuando el tiempo restante esté debajo de un cierto límite, y habilitar la modificación de los tiempos de retraso y demora durante las pausas, entre otras cosas . Pero para eso habría que poner otro microcontrolador, cosa que de momento no está en mis planes, pero animo a quien se anime y ofrezco mi ayuda si es necesario  ;-).



When you see a good move, look for a better one (Emanuel Lasker)

Desconectado mtristan

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 395
Re: Reloj digital de Ajedrez con LCD (finalizado)
« Respuesta #14 en: 08 de Diciembre de 2009, 17:39:54 »
.

Acá dejo un esquemático del reloj.


Recuerdo al interesado que la disposición de los pines del Puerto A puede variar a su gusto, solo basta con modificar los números que aparecen debajo del comentario PORTA I/O, en el inicio del programa.


When you see a good move, look for a better one (Emanuel Lasker)


 

anything