Showing posts with label reloj de ajedrez. Show all posts
Showing posts with label reloj de ajedrez. Show all posts

Wednesday, April 02, 2014

Un reloj de ajedrez hecho en México


Para quienes jugamos ajedrez en competencias, torneos, los relojes que se usan son una necesidad. Se trata de dos cronómetros que están encendidos y apagados alternativamente. Cuando un jugador está pensando su movimiento, el reloj de su lado está funcionando. Cuando el ajedrecista hace una jugada, presiona el botón encima de su reloj. Éste se detiene y se echa a andar el reloj del adversario. En general el ajedrez competitivo, serio, se juega a dos horas para cuarenta jugadas (ambos jugadores llevan en sendas planillas la anotación de la partida) y después hay que hacer 20 jugadas en una hora. Finalmente hay un tercer ciclo que es todo el resto de las jugadas en 15 minutos con incremento de 30 segundos por jugada. Cabe decir que esto es por jugador, por ende, una partida de ajedrez de torneo puede jugarse en unas siete horas, aproximadamente, máximo.

La tecnología de relojes de ajedrez ha cambiado considerablemente en los últimos años. Con el advenimiento de los relojes digitales, se ha podido implementar relojes para el juego ciencia que van decrementando el tiempo hasta llegar a 00:00. Sin embargo, a diferencia de los anteriores relojes de manecillas, en los electrónicos es posible que el sistema, cuando se oprime el botón del reloj, se le dé al jugador un bono en tiempo, incrementando la cantidad de tiempo disponible para pensar. Esta idea se le ocurrió a Bobby Fischer para evitar los apuros de tiempo a los que llegan muchas veces los jugadores después de la sexta hora. Sin embargo, hay ajedrecistas que irremediablemente terminan siempre apurados por el reloj. Para quienes no sepan de ajedrez, si uno no llega a hacer las jugadas solicitadas en el tiempo establecido, pierde la partida. Así de grave es el asunto.

Prototipo de mi reloj de ajedrez

Yo quise alguna vez hacer un reloj de ajedrez, aprovechando el uso de microcontroladores Pic y de hecho, había tomado un cursito para aprender a programarlos. A un amigo ingeniero electrónico le pedí me hiciese un prototipo. Le di las especificaciones y en un par de semanas me tuvo mi prototipo listo para ser programado. Le pedí que me incluyera la conexión al bootloader del Pic de manera que pudiese conectar todo el juguete a la computadora y programar el microcontrolador sin tener que quitarlo y ponerlo a la base del prototipo cada vez que cambiaba le programa. Empecé la programación del sistema y hallé que hay que entender bien las interrupciones del microcontrolador. Lo estuve programando en PicBasic, porque era el único compilador que tenía a mi alcance y desde luego, hace la tarea, pero no me termina de convencer nunca el tener que programar en la enésima versión del lenguaje Basic. De todas maneras, mi idea es terminar con este proyecto y ponerlo en hardware y software abierto (a quien le interese colaborar, escríbame a morsa@la-morsa.com)

Curiosamente, un día, un fuerte aficionado al ajedrez, que tiene una tienda especializada en el juego ciencia, quería diseñar su propio reloj de ajedrez. Platicamos y en dicha reunión había un buen ingeniero electrónico de la UNAM, al cual se le encomendó el diseño del reloj y de la programación. Yo colaboré mandándole un simulador de un reloj de ajedrez que hice en Delphi, cuando tenía mi prototipo, para ver cuál era la problemática que estaba enfentando. Quizás este buen ingeniero tomó cuenta de esto.



El asunto es que finalmente, meses después, salió la primera versión de un sólido reloj de ajedrez, la cual me parece muy bien hecho. Hay detalles, que desde luego se cambiarán cuando empiece a producirse más comercialmente y en serie. Por ejemplo, el botón de encendido/apagado, estará en la parte trasera, para evitar que alguien accidentalmente apague el reloj en medio de una competencia. Por lo demás, el reloj cuenta con diferentes modos: partidas a cinco minutos por jugador, a un minuto, con incrementos diversos e incluso, se pueden programar cinco modos diferentes para torneos específicos en donde no se contemple una programación previa.


Me gusta este proyecto por muchas razones: primero, porque está hecho por mexicanos, quienes han apostado a este nicho comercial del ajedrez; porque esto habla que cualquiera puede, con los conocimientos necesarios, programar los microcontroladores para que hagan las funciones que se deseén (de hecho, si no me equivoco, este reloj se escribió usando Pic C); y porque finalmente, se pueden abaratar los costos de este tipo de relojes que son cada vez más usados en las competencias de ajedrez en México. Muchas veces nos quejamos de que en unocero.com no hablamos de desarrollos hechos en México. Éste es un ejemplo de lo que puede hacerse en este país y competir sin menoscabo contra productos parecidos de Estados Unidos o Alemania.

Referencias:

ChessBoutique

Thursday, November 24, 2011

Proyecto con un microcontrolador Pic: un reloj de ajedrez


Los microcontroladores no son otra cosa que computadoras en miniatura. A diferencia de los microprocesadores, que requieren de todo un complejo sistema de electrónica para funcionar, el microcontrolador contiene todo lo que una moderna computadora necesita: puertos de entrada y salida, memoria interna, convertidores analógico-digitales, etc. Estos microcircuitos son parte de hornos de microondas, lavadoras, refrigeradores, reproductores de mp3, algunas cafeteras, etc. Son en cierta medida computadoras en miniatura para usos muy específicos. Ya he hablado de ello antes. Si buscan "microcontrolador" en este blog, podrán ver algunos artículos míos pasados al respecto).

Como los microcontroladores son computadoras en miniatura, éstas deben poderse programar. Para ello, se necesitan algunos elementos:

  • Una tarjeta (un circuito impreso que contenga al microcontrolador, botones, leds, pantalla de cristal líquido LCD, en la cual podemos ver  el funcionamiento del programa que estamos escribiendo.
  • Un editor de código con su correspondiente compilador (hay C, basic, e incluso Forth).
  • Una interfaz (que es una caja negra), que vía el USB conecta la tarjeta de desarrollo con la PC y los programas compilados se pueden pasar a la memoria del microcontrolador. Eso es lo que se llama un "programador de microcontroladores".

En mi caso, trabajé con una tarjeta con un microcontrolador Pic y usamos el Pic Basic Pro (PBP) como lenguaje de desarrollo. Cabe decir que algunos compiladores tienen costo. No todos son gratuitos, aunque existen interesantes alternativas en ese sentido.

Usando todos los elementos, es decir, creación del programa, compilado del mismo, uso del programador PicKit2 para copiar el código a la memoria del PIC, traslado del chip a la tarjeta de prácticas, cableado de las patas correspondientes del microcontrolador a los leds y al botón que usaremos para controlar el despliegue (encendido y apagado de LEDs), tenemos un programa que hace exactamente lo que le pedimos, como puede verse en este video, lo cual es un programa que a través de los leds de la tarjeta de prácticas, cuenta en binario encendiendo los foquitos leds al oprimir el botón.

Las capacidades de los microcontroladores lo hacen el candidato justo para una serie de proyectos de electrónica, en donde precisamente la parte del hardware puede obviarse. Por ejemplo, se me ocurrió que sería interesante hacer un reloj de ajedrez electrónico. Los relojes de ajedrez son dos cronómetros que llevan el control de tiempo para pensar las jugadas por cada jugador. Actualmente estos relojes electrónicos ya existen pero quizás su costo es elevado (unos 1000 pesos más o menos). Así, me di a la tarea de diseñar mi propio prototipo.

Le pedí a un ingeniero en electrónica que me hiciese el circuito impreso con los elementos que necesitaba: una serie de botones y una pantalla de cristal líquido. En el caso del prototipo, el “display” es de cuatro líneas. Si el proyecto tiene éxito y se sigue a una fase de comercialización, se tendría que poner en una pantalla más adecuada para la naturaleza del ajedrez (números más grandes, por ejemplo). Pero por el momento un prototipo no necesita de más cosas.

He escrito parte del software ya, pero hay muchos detalles que pulir. Lo importante aquí es que el proyecto se puede desarrollar de manera fácil y simple, porque finalmente es como programar una computadora -pero de uso específico- con limitaciones en capacidad de memoria, despliegue, etc. Se parece en ese sentido a programar un teléfono con iOS o Android, por ejemplo. Seguiremos informando de los avances de este proyecto.