Juego electrónico de Conector Borrás

Quería hacer el juego del Conector Borrás, por ejemplo un mapa con los países de Europa dibujados, y una lista de las capitales. Cuando conectas el país con la capital, se enciende una luz. Esta es la versión fácil. Quiero hacerlo un poco más difícil: luz verde y efecto de sonido para el acierto; luz roja y otro efecto de sonido para fallo. Supongamos que son unas 20 preguntas.

No sé si hacerlo con un circuito puramente combinacional, con puertas lógicas; o bien utilizar un microcontrolador (sería un ATmel168), con un expansor de puertos de entrada (MCP23017), y poner toda la lógica en el software. Idealmente sería hacer un circuito combinacional, pero creo que la cosa se complica (cuando no conectas nada no se enciende nada; sólo cuando conectas los dos cables tiene que encenderse la luz verde o roja).

He estado mirando por Google a ver si alguien lo ha hecho, pero no lo encuentro (de hecho no sé cómo se llama este juego en inglés, me estrañaría que no esté comercializado, es un clásico).

Gracias
 
Sin compliques con compuertas y tabla de la verdad, verdadero (1) para acierto y falso (0) para error, para el sonido con 555 de 2 tonos y listo, si es para algo didactico lo mas viable es que este sea lo mas simple posible y economico, asi podra realizar varios juegos y obsequiarlos.

images
 
Última edición:
La version tipica y sumamente vieja de este juego es conectar la pregunta y la respuesta correcta en forma electrica, el problema con este enfoque es que las respuestas correctas siempre estan en el mismo lugar y cualquier chico aprende eso rapidamente.
 
Con un microcontrolador y un poco de idea sólo hacen falta 2 pines de I/O para todo el juego, y se pueden hacer plantillas con código variable para que las respuestas correctas no sean siempre las mismas. Una de las I/O, controlara tanto los leds como los pitiditos (los leds se iluminaran por pulsos cuadrados del audio pero al ir a más de 50Hz, no veras parpadeo. Para iluminar ambos leds con una I/O, conectas los leds en antiparalelo hacia un divisor resistivo. De esa forma, si quieres encender un LED, activas nivel alto o nivel bajo para encender uno u otro, alternas entre alto o bajo para encender los dos, o pones la I/O como entrada (alta impedancia) para apagar ambos. Igualmente puedes alternar ente uno de los niveles y el modo input para mantener un sólo LED encendido y además generar una onda cuadrada de la frecuencia que quieras o una combinación de ellas para hacer distintos tonos o melodías, esta señal la recoges directamente en el divisor resistivo a traves de un condensador de acople hacia un pequeño amplificador (LM386) que saque la melodía por un sencillo altavoz de 0.5W de los de torre de PC, incluso el amplificador se puede sustituir por un simple transistor de media potencia, como un BC337.

Una vez solucionado el audio y el "vídeo", vamos a los controles:

El juego no deja de ser simplemente una matriz de filas y columnas. Pongamos que tienes 10 filas y 10 columnas, entonces tienes 100 combinaciones posibles (como en un teclado matricial), digo 100 por no decir que tienes otra dimensión más en la matriz y entonces tendrías 1000 combinaciones.

El juego para cada plantilla tiene varias posiciones que son correctas, pongamos que las filas las nombramos de la A a la J, y las columnas del 0 al 9, pues podías tener para una plantilla en concreto las combinaciones A3,B7,C1,D5,E0,F1,G8,H8,I6,J4, como correctas y el resto como erróneas, y la plantilla siguiente que la combinación correcta sea distinta.

Para implementar la matriz con sólo un pin I/Ohace falta que en esa entrada dispongamos de un comparador interno en el micro. Hacemos una matriz compuesta por resistencias en las filas que sean de valores 1k, 1,5k, 2,2k, 2,7k, 3,3k... Y así hasta llegar a los 8,2k o hasta las filas que quieras, e implementas las columnas con los mismos valores que las filas pero multiplicados por el máximo de resistencia de la filas, por ejemplo 10k, 22K, 33k, 47k... De esa forma cualquier combinación de resistencias en serie de una fila y una columna va a dar un valor único. La matriz entera se puede considerar como una resistencia variable.

En nuestro microcontrolador colocamos nuestra resistencia variable entre el pin de I/O y masa, y en paralelo a un condensador, por ejemplo de 100nF. La rutina es sacar un 1 por la salida durante unos milisegundos, e inmediatamente cambiar a entrada analógica y temporizar la descarga del condensador a través de la resistencia variable. Cada combinación tendrá una ventana de temporización unica,. Para evitar el efecto rebotes, lee varias veces, pongamos 3 o más, y toma el valor correcto cuando la lectura sea estable.

Cuando no hay ningun a combinación la resistencia de la matriz será infinita, así que puedes aprovechar esto para colocar en paralelo a la matriz una resistencia de 100K,220K,330K... Distinta en cada plantilla y de esa forma identificas que plantilla se esta usando en el juego actualmente.

Como sólo necesitas 2 I/O, cualquier microcontrolador te sirve, el pic12Fxx, o el ATtinny más económico y simplón lo puedes utilizar, siempre que tenga ucomparador interno.
 
Gracias, he estado mirando más cosas. La parte de encender la luz y el audio no me preocupa. Pero me gustaría utilizar una bombilla más que leds. Creo que hay bombillas de 12V, y estaría bien utilizar un solo transformador de 12V/2A para alimentar todo el conjunto.

Estaba pensando en unas 20 preguntas. Haciendo un array, esto dispararía el número de resistencias (20x20=400), y creo que podría ser un caos.

Creo que mejor sería un R-2R ladder (algo como https://johnboxall.wordpress.com/2012/02/29/tutorial-analog-input-for-multiple-buttons-part-two-2/). Entonces sería hacer 2 ladders, y utilizar dos pines analógicos del ATMega168, y que la plantilla de soluciones esté en el software. De esta manera, cambiando el software se puede cambiar las combinaciones.

No estoy pensando un juego donde puedas cambiar la plantilla. Más bien estoy pensando un mueble de madera currado (es un regalo), y si las preguntas se aprenden fácil da igual, más bien pienso en algo decorativo.
 
Gracias, he estado mirando más cosas. La parte de encender la luz y el audio no me preocupa. Pero me gustaría utilizar una bombilla más que leds. Creo que hay bombillas de 12V, y estaría bien utilizar un solo transformador de 12V/2A para alimentar todo el conjunto.

Estaba pensando en unas 20 preguntas. Haciendo un array, esto dispararía el número de resistencias (20x20=400), y creo que podría ser un caos.

Creo que mejor sería un R-2R ladder (algo como https://johnboxall.wordpress.com/2012/02/29/tutorial-analog-input-for-multiple-buttons-part-two-2/). Entonces sería hacer 2 ladders, y utilizar dos pines analógicos del ATMega168, y que la plantilla de soluciones esté en el software. De esta manera, cambiando el software se puede cambiar las combinaciones.

No estoy pensando un juego donde puedas cambiar la plantilla. Más bien estoy pensando un mueble de madera currado (es un regalo), y si las preguntas se aprenden fácil da igual, más bien pienso en algo decorativo.
Si es algo decorativo no necesitas nada complicado, solo cablear cada pregunta con su respuesta
 
Atrás
Arriba