Marcador Electronico para Padel/Tennis (Scoreboard)

Debido a diferencias de opinion con unos amigos cuando jugamos al padel, he decido montar un Scoreboard o Marcador Digital para padel/tennis.

Mi idea para el hardware es la siguiente:

Como siempre empezare a hacer el montaje en un breadboard, mi intencion es tener el software antes de lanzarme con el hardware para lo cual utilizare una breadboard con cuatro pulsadores y el serial como pantalla para ver los resultados.

2 pulsadores para cada equipo, optare por wireless cuando ya tenga todo funcionando. Un pulsador da puntos (+) y el otro quita(-).

La pantalla debera mostrar 5 columnas y dos filas, seguro que hare todo con leds.

columna 1 =set 1
columna 2 =set 2
columna 3 = set 3
columna 5y4 = puntos que se juegan.

Bueno por el momento esto es lo que tengo, espero vuestras opiniones y sugerencias que me vendran muy bien en especial el tema de la programacion. Ire editantando este post con mis desarrollos.

Saludos.

Edit1

Antes de empezar a programar le he dado unas cuantas vueltas para ser exacto muchas vueltas.

Finalmente os presento mi razonamiento inicial:

Para comenzar necesitare ver los puntajes como 0, 15, 30 y 40 dado que no son proporcionales los pondre como text strings.
Internamente representaremos los puntajes como dos variables (0, 0) osea "0 - 0", (1 ,0) osea "15 - 0", (1 , 3) osea "15 - 40"

Ahora viene la parte dificil que es manejar el tema de Ventaja/Deuce. Cambiaremos de dos variables a una; -1 es ventaja para el Player1, +1 es ventaja para el Player2 y 0 significa Deuce.

Hay dos maneras de ganar el juego, el primer modo seria si uno de los Players llega a 4 y el otro es 2 o menos (60 -30), el segundo modo es cuando el valor es o -2 o +2

El cambio del primer modo a "Ventaja/Deuce" ocurre cuando el puntaje es (3 ,3) (40-40)

Para introducir los puntos usare 4 pulsadores:

  • Pulsador 1 = Añade puntos al player1
  • Pulsador 2 = Quita puntos al player1
  • Pulsador 3 = Añade puntos al player2
  • Pulsador 4 = Quita puntos al player2

Bueno ahora que tengo la idea me toca programar y la verdad que cualquier ayuda me vendra genial.

gracias.

Edit2

Acabo de terminar la primera parte que es el manejo de los puntos cuando un Jugador consigue ganar un juego la variable "set" aumente en uno.

Tengo un monton de "if"s supongo el codigo se podra simplificar un poco pero al menos me funciona. Pronto lo posteare

Unos ejemplos del output en el serial:
puntos--set1--set2-set3


JG--0--0--0
00--0--0--0


Juego Player1

40--2--0--0
40--0--0--0


40--2--0--0
40--0--0--0


Ventaja Player2
Ventaja Player2
Ventaja Player2
Ventaja Player2
Ventaja Player2
Deuce
Deuce
Deuce
Deuce
Deuce
Deuce
Ventaja Player1
Ventaja Player1
Ventaja Player1
Juego Player1
0--0
00--2--0--0
00--0--0--0


Edit 3

Por si alguien esta interesado en analizar el codigo lo podeis encontrar en el siguiente link :

Mi consejo es que desarrolles al mismo tiempo el programa y el hardware en protoboard, así puedes ir probando el programa a medida que lo vas haciendo.

Lo desarrollas por pasos, primero que lea los pulsadores y controlas las salidas, luego los envíos a la pantallas, etc...

Si falla depuras con el monitor serie.

Quizá sea más laborioso, pero es más sencillo probar trozos pequeños de código en los que pueden fallar pocas cosas que tener un programa largo darle marcha, que no vaya y ponerte a buscar el por que.

Un saludo.

@josemanu

Eso es lo que he hecho; Tengo 4 pulsadores, 2 para cada jugador uno aumenta y otro disminuye y el display se muestra en el monitor de serie.

Por el momento lo de los puntos funciona correctamente. Me queda pendiente programar que cuando se gane un set salte al siguiente:

Tengo 2 variables que almacenan el puntaje de ambos jugadores(int=score0 ; int score1), no estoy seguro si deberia añadir este tipo de variables para cada set.

¿Por que no? seguro que se puede hacer sin ellas y con ellas, solo tienes que buscar la forma en que sea más sencillo para ti como programador.

Podrías usar vectores, ya que se te simplificaría mucho el código

como forma de evitar 'trampas'.

que te parece que el equipo contrario tenga el pulsador de sumar puntos del otro equipo.
y que el pulsador de quitar puntos este en el lado del equipo al cual se quitan.

ademas, se puede añadir un altavoz que emita un sonido en concreto al sumar un punto (pulsar el boton) y otro sonido distinto al restar un punto.
si le añades un delay o un debounce largo, evitaras que un equipo sume o quite puntos aprentando varias veces muy rapido.

¿Qué sentido tiene el botón para disminuir puntuación?

@Chiva
El boton de disminución de puntos es por si acaso, con la calentura del partido algun jugador podria apretar dos veces, habia pensado que para el modelo real podria usar un pulsador mas pequeño para este el de disminución.

s2

Yo le pondría un límite de 1 pulsación por cada 5 segundos para evitar eso, aunque si que vendría bien tener un interruptor por si se marca el tanto quien no le toca.

Gracias a todos por las ideas y sugerencias, a ver si aprovecho el lunes para avanzar un poco mas.

buen puente!!

Le podrias poner un solo boton de borrado del ultimo registro... o incluso eliminar los dos botones de borrado y detectar pulsaciones largas de los mismos pulsadores, me explico un poco mejor...

Boton 1: Pulsacion corta = Sumar un punto Jugador 1
Pulsacion larga (2 segundos) = Borrar punto Jugador 1

Boton 2: Pulsacion corta: Sumar un punto Jugador 2
Pulsacion larga: (2 segundos) = Borrar punto Jugador 2

Asi simplificas mas....

Muy buena idea Imagina !!

Mas que buena; excelente idea!!!!! gracias.

Edit 4

uhhhhhh!!! mirad que pepino me acabo de pillar por 17 USD.

  • Size: 241.30 (L) × 147.32 (W) × 24.42(H) ±0.2mm
  • HT1632C-based 32*16 LED dot-matrix info board
  • Light-emitting diameter: 5mm
  • Available light-emitting color: red, green and yellow (two boards connected in series)

El codigo ya lo tengo hecho incluido el tema de sets.

En cuanto me llegue el cacharro lo enchufo a arduino y os ire contando el resultado(video).

Los de Sure Electronics suelen tener cacharrillos interesantes a buen precio, me parece que alguien del foro ya probó una panel de esos, aunque no recuerdo quién.
¿Se verá bien en el exterior?

que pasada de panel !! y por 17 dolares, impresionante, ...mi cabeza empieza a pensar en usos posibles para justificar comprar uno jejejeje (y pensar que mi lcd 20x4 me costo 24 euros. como para no hacerlo. (esta claro que son funciones completamente distintas)

como te comunicas con el panel? es complicado?

ya estas poniendo el video....