<img src="https://queue.simpleanalyticscdn.com/noscript.gif?collect-dnt=true" alt="" referrerpolicy="-when-downgrade"> Simon – El juego (Simon Says)
NeoTeo
Mario

Simon – El juego (Simon Says)

Simon – El juego (Simon Says)

¿Te animas a revivir la época dorada de los videojuegos y a construir tu propia réplica del legendario Simon? Descubre cómo un clásico que puso a prueba la memoria se transforma en un desafío apasionante que no querrás dejar pasar...

Muchos años antes de que existieran las consolas portátiles de videojuegos tal como hoy las conocemos, vio la luz un juego que marcó toda una época y una generación con sus sonidos “robóticos” y luces psicodélicas. Conocido de muchas maneras y con diversos nombres según el país donde se fabrique, el Simon fue uno de los precursores en la incipiente industria de los videojuegos, allá por el año 1978. Como regalo de Navidad, no te vamos a hablar de su historia y legado sino que vamos a ayudarte a construir una réplica muy particular de esta maravilla que marcó un antes y un después en la historia de los juegos. Con varios niveles de dificultad para hacerlo más interesante y para proponer un verdadero desafío a tu capacidad de memoria visual y auditiva, podrías pasar horas enteras jugando con este sencillo aparatito. Una máquina que pone a prueba tus condiciones de memorizar. ¿Te animas?

Inspirado en el primitivo juego Touch Me de Atari (1974), Ralph Baer diseñó para la compañía Milton-Bradley (1978) una consola circular de juego que encendía luces y emitía sonidos que el jugador debía repetir en la misma secuencia que el juego entregaba, pulsando grandes teclas de colores. La esencia del juego se centraba en la capacidad del jugador de retener en su memoria la secuencia de luces que se encendían una tras otra y luego repetirlas en forma correcta y ordenada. Acertar todas las pulsaciones provocaba un avance en el juego donde se agregaba un sonido y un nuevo color a pulsar en el siguiente movimiento. Equivocarse de tecla durante la rutina provocaba un sonido muy particular y desagradable que indicaba la derrota y el fin de la partida. Parece muy sencillo, muy elemental, muy básico y hasta aburrido o monótono. Sin embargo, este juego se mantiene vigente luego de más de treinta años de haber salido al mercado. Lo encontrarás en cualquier portal de ventas por Internet con diversos nombres, pero todos los anunciantes apuntan al mismo objetivo: poner a prueba tu capacidad de memorizar eventos.

Simon – El juego (Simon Says)
Circuito propuesto para el Simon

El circuito Mediante la utilización de un PIC 16F88, cuatro pulsadores, cuatro diodos LEDs de colores distintos entre sí y un pequeño puñado de componentes rios podrás dar vida a este interesante juguete que seguramente entusiasmará a más de uno en la familia. Teniendo la precaución de no confundir la correspondencia entre pulsadores y LEDs, el circuito no presentará mayores complicaciones de montaje más allá del tamaño que se le quiera dar al juego terminado. Es decir, mientras respetes la correspondencia entre LED1 y SW1, LED2 y SW2, LED3 y SW3 y LED4 y SW4, el circuito funcionará a la primera y sin inconvenientes.

Como puedes ver en el circuito, las entradas de los pulsadores en el microcontrolador serán activas en estado alto, mientras que las salidas de los indicadores luminosos serán activas en estado bajo. Debes tener especial cuidado de no invertir la polaridad de los diodos LEDs al ensamblar el circuito, ya que luego de un par de horas de trabajo de armado descubrirás un LED al revés y tendrás que desarmar gran parte de lo ya realizado, lo que puede ser una tarea muy fastidiosa. Por eso, es conveniente prestar mucha atención al insertar los diodos en la placa. Otro de los cuidados que debes tener es al programar el PIC: debes observar que el fuse LVP se encuentre desactivado. Si utilizas WinPIC800, al igual que nosotros, será muy sencillo desmarcar el casillero correspondiente. Si no realizas este ajuste, no obtendrás salida de audio a través del pin RB3 (¡Gracias Ariel!).

Simon – El juego (Simon Says)
Un gabinete, algunos pulsadores, una placa, LEDs y muchas ganas de crear.

Para el sistema de audio, debes tener en claro que no podrás utilizar un parlante común de 4 u 8 Ohms sino que necesitarás un buzzer capacitivo, como verás en las imágenes más abajo. Esto es muy importante de destacar ya que conectar un parlante convencional en forma directa a la salida de uno de los puertos del microcontrolador podría destruir la salida por excesiva circulación de corriente a través de la bobina móvil del parlante.

Nosotros hemos utilizado en el montaje ejemplo un gabinete de pastillas de menta de dos centímetros y medio de alto donde albergaremos todo el desarrollo. Además, como perla destacada en el artículo, utilizaremos una técnica quizá novedosa para ti que puede servirte para futuros diseños donde debas conjugar la presencia de pulsadores e indicadores luminosos. Como puedes ver en las imágenes, el LED correspondiente a cada color se coloca entre dos pulsadores apoyando con los bordes de su base, un poco en un pulsador y otro poco en el contiguo. Ambos pulsadores estarán conectados en paralelo, por lo tanto, al efectuar presión sobre el cuerpo del LED, en forma obligatoria al menos uno de los dos pulsadores se activará dando lugar a un evento de acción de tecla.

Simon – El juego (Simon Says)
El LED apoya sobre los pulsadores y actuará mecánicamente sobre ellos
Simon – El juego (Simon Says)
Los terminales del lado inferior deben mecanizarse para impedir que el LED se salga de su posición (clic para ampliar)

Para lograr que el LED quede ubicado en su posición y no se “caiga” o se salga de la placa se le efectúa un moldeado a sus pines de conexión para impedir el movimiento hacia arriba. De esta forma, el LED sólo podrá bajar y activar el/los pulsadores sin salir de su posición. Si bien es una forma de optimizar espacios, la complicación viene por el lado de las conexiones del LED al circuito que deberá realizarse con pequeños cables para lograr una conexión flexible y activa. Si quisiéramos evitar este método y soldar en forma directa al impreso los terminales de los LEDs, el accionamiento de los botones sería muy duro y, tarde o temprano, las soldaduras o los pines del LED terminarían rompiéndose (gracias a Murphy, sucederá temprano y en plena demostración de nuestra creación).

Simon – El juego (Simon Says)
Los agujeros de los LEDs deben permitir un movimiento cómodo al presionarlos
Simon – El juego (Simon Says)
Cuatro tornillos bastarán para soportar jugadores "efusivos"
Simon – El juego (Simon Says)
El montaje mecánico es fundamental para una construcción duradera

Una vez que los cuatro LEDs se encuentren montados en posición correcta y con sus pines acomodados de manera tal que no se salga el indicador luminoso de la placa, podemos comenzar a agujerear el gabinete seleccionado para el montaje, disponer del anclaje eficaz y firme de la placa de botones y comenzar a construir el circuito. Esto es para aquellos que decidan utilizar, como en nuestro caso, una placa universal para prototipos. Si en cambio tú deseas construir un PCB dedicado a la aplicación del juego, con montar los componentes ya será suficiente y podrás comenzar a disponer su armado definitivo dentro del gabinete.

Simon – El juego (Simon Says)
El PIC debe caber justo en el tamaño previsto para la placa
Simon – El juego (Simon Says)
Debes ser cuidadoso de no rayar y arruinar el frente del gabinete durante el montaje

Debes ser consciente que a medida que avances con la instalación de los cables de conexión dentro del gabinete, el espacio comenzará a reducirse en forma drástica y muy rápida. Deberás extremar los cuidados en esta parte del diseño para no perder el tiempo con construcciones que llegan a un punto en que ites que te quedas sin espacio cuando ya has hecho más de la mitad del trabajo. Si no estás seguro de la posibilidad de conexión de todos los componentes, será mejor que en el inicio ya busques un gabinete de mayor tamaño. La parte más delicada y crítica llega cuando se debe montar el microcontrolador con su correspondiente capacitor de desacoplo de 100nF entre los terminales de alimentación, el cristal de 10Mhz y los capacitores cerámicos de 33pF. Una vez superada esa etapa, sólo restará sujetar el porta-pilas a la tapa trasera y la llave de encendido de la unidad. Luego deberás encontrar la ubicación más práctica para el buzzer y, si es necesario, proveer al gabinete de pequeños orificios para que el sonido pueda ser escuchado claramente por el jugador.

Simon – El juego (Simon Says)
Aquí puedes ver el tipo de buzzer que se necesita para el sonido
Simon – El juego (Simon Says)
Aspecto final con la llave de encendido y el portapilas en la parte posterior

La dinámica del juego logrado es muy sencilla y la podrás observar en el video que te dejamos más adelante. Al encender el aparato, queda activada en forma permanente la salida del primer pulsador, encendiendo el LED correspondiente. Esta situación indica cuál es el primer indicador luminoso. Además, puedes iniciar el juego desde la rutina más fácil o con menor velocidad en la secuencia. En sentido de las agujas del reloj, nosotros hemos dispuesto el resto de los pulsadores en orden ascendente. Es decir, el último será la rutina más rápida y más difícil del juego. Entonces, al conectar la llave principal, se inicia el juego con el LED1 encendido en forma permanente invitando a jugar en el nivel más sencillo. Al pulsarlo, destellan todas las luces (las cuatro) indicando el inicio del juego para luego comenzar con la partida.

Conclusión El Simon es un juego puramente educativo y de gimnasia mental que sólo ha sido superado por el Tetris en cuanto a ejercitación de la mente. Si nos desviamos a otros tipos de juegos más relacionados con el ocio banal, este juguete podría resultar algo aburrido como mencionamos al principio. Si lo tuyo en cambio es el desafío de conocer los alcances de concentración y memorización que puedes lograr, el Simon (que nunca morirá) puede brindarte muchas horas de buena diversión acompañada de un ejercicio mental muy saludable. Queremos agradecer al amigo José María Asensio que gentilmente nos ha facilitado el código fuente del programa que dejamos al final del artículo para que puedas descargar y programar el PIC que te permitirá armar este bonito juego.

:

Codigo fuente - Simon

Etiquetas

#Tutoriales
avatar

Buenas mario:

por lo que veo tienes que entrenar con el juego, si... :D
Me ha parecido un ejemplo muy interesante, sobretodo como haces para usar el led encima de los pulsadores. Podrias poner una foto en otro angulo, para ver como estan dobladas las patillas del led? en la de la izquierda se ve parte, pero no se distingue bien con la soldadura que hay cerca.

Como siempre, un muy buen trabajo, siempre consigues que nos interese la electronica cada dia mas.

avatar
avatar

Excelente proyecto, con razon sigue vigente el jueguito.
Tengo una duda el parlante puede ser piezoelectrico?, es muy
similar al del proyecto.

Saludos desde Chile!!

avatar
avatar

Buenas tardes desde México, una duda, es necesario tener algun conocimiento especial para armar uno de estos, es que me intereso el proyecto, pero pues ni idea de como proseguir.

avatar
avatar

en el video, justo cuando se va empezar a jugar (1:30), en el banner publicitario de neoteo aparece "¿quieres jugar?"

avatar
avatar

Una pequeña correción

"Simon Says" se pronuncia "Saimon ses" (la y de "says" no se pronuncia en la tercera persona en singular)

avatar
avatar

Según creo yo, si recuerdo bien, la dificultad del Simon dependía de dos factores que podíamos controlar a nuestro antojo. Uno era la dificultad al momento de entregar las secuencias y el otro era la velocidad.

avatar
avatar

Hola Mario:
Seria muy bueno tambien que hagas un medidor de resistencias altas, como lo hiciste con el medidor de capacitores que tenia rango automatico y media altos capacitores.
Porque el valor maximo que tienen los multimetros que venden en mi ciudad son de 20Mohm nada mas y yo tengo resistencias de 100Mohm y mas altas y no las puedo medir.
Me encanta neo teo porque de aqui saco los proyectos y los armo a la mayoria.
Saludos a todos.

avatar
avatar

El mismo codigo podria ser usado para el PIC 18F452? Saludos.

avatar
avatar

Hola Mario:

Este es un genial retronovedoso articulo, combinas un juego muy divertido de hace mucho tiempo con tecnologia que nos enseñas actualmente, de verdad que es genial. Lo que mas nos anima cuando leemos tus articulos, es que tu mismo haces las cosas, las pruebas "aunque no seas muy prolijo con Simon, jeeje :)" y compruebas que funciona, asi que haces que queramos hacer cada proyecto que publicas.

Un gran abrazo desde Colombia

avatar
avatar

Hola ! no conozco nada de electronica pero soy programador y me interesa mucho meterle a la electronica, pero siempre he tenido una pregunta, como se carga un software dentro del hardware que nosotros mismo creamos?
Saludos !

avatar
avatar

Dos preguntas nomás...
¿Puedo usar un PIC 16F84 en vez del 88?
Por lo que tengo entendido se programa igual asique el programa sirve, ¿no?

avatar
avatar

Disculpe MArio SAcco, pero no entiendo cómo has hecho la soldadura de los cables. Si alguien sabe cómo es que me escriba a mi correo, porfavor

avatar
avatar

hola mario yo desactive el fuse lvp desde el winpic 800 pero cuando lo pruebo al programa desde el proteus no tengo ninguna respuesta el portb,3 esta siempre en 0.
perdona por las molestias es que me gusto mucho el circuito y me decidi a hacerlo y la verdad que con sonido se ve mucho mejor.
saludos

avatar
avatar

ya solucione el problema.
muchas gracias por el circuito

avatar
avatar

Señor Mario ,Mi nombre es jhonny y escribo desde Colombia, hace varios meses vengo informándome con sus artículos y esta semana ví este y me despertó el interés por hacerme uno , lo desarrollé en el pic basic pro pues no comprendo muy bien el C ,y el resultado , aunque no el mismo, si es muy parecido y quiciera compartirlo con ud. Tambié quiciera preguntarle si es posible simular palabras en vez de sonidos y como.

cmcon = 7

x var byte
y var byte
z var byte
paso var byte
dato var byte
reg0 var byte
reg1 var byte
reg2 var byte
reg3 var byte
reg4 var byte
reg5 var byte
reg6 var byte
reg7 var byte
reg8 var byte

trisa = %11111111
trisb = %00000000


sound portb.7,[105,10,115,10,120,10,121,10,122,10,124,10,130,10]
prueba :
for x = 1 to 3
portb = %1111
pause 400 : sound portb.7,[125,8,123,8,120,8,110,8,108,8,105,8] 'envia la frecuencia 125 (125 * 78.74Hz) durante 14 ms
'y la frecuencia 123 durante 15 ms
portb = %0000
pause 400
next x

paso = 0

ini :
pause 1000
for y = 0 to paso
lookup y,[1,4,2,4,8,4,8,2,1],dato
portb = dato
pause 300
portb =%0000
pause 100
next

paso = paso + 1


reg0 = 1
reg1 = 4
reg2 = 2
reg3 = 4
reg4 = 8
reg5 = 4
reg6 = 8
reg7 = 2
reg8 = 1


siga0:
goto ptecla0

'---------------------- rutinas de muestreo -------------------------


mostrar0:

z = 0
portb = reg0 : sound portb.7,[105,9,120,9]
pause 100
portb = %0000
z = z+1 'con esta var hacemos comparacion con paso para que siga la secuencia
if paso != z then goto ptecla1
goto ini


mostrar1:
portb = reg1 : sound portb.7,[105,10,120,10]
pause 100
portb = %0000
z = z+1
if paso != z then goto ptecla2
goto ini


mostrar2:
portb = reg2 : sound portb.7,[105,10,120,10]
pause 100
portb = %0000
z = z+1
if paso != z then goto ptecla3
goto ini


mostrar3:
portb = reg3 : sound portb.7,[105,9,120,10]
pause 100
portb = %0000
z =z+1
if paso != z then goto ptecla4
goto ini


mostrar4:
portb = reg4 : sound portb.7,[105,14,120,15]
pause 100
portb = %0000
z = z+1
if paso != z then goto ptecla5
goto ini



mostrar5:
portb = reg5 : sound portb.7,[105,14,120,15]
pause 100
portb = %0000
z = z+1
if paso != z then goto ptecla6
goto ini


mostrar6:
portb = reg6 : sound portb.7,[105,14,120,15]
pause 100
portb = %0000
z = z+1
if paso != z then goto ptecla7
goto ini


mostrar7:
portb = reg7 : sound portb.7,[105,14,120,15]
pause 100
portb = %0000
z =z+1
if paso != z then goto ptecla8
goto ini


mostrar8:
portb = reg8 : sound portb.7,[105,14,120,15]
pause 100
portb = %0000
z = z+1
if paso != z then goto prueba
goto ini















'---------------------------- antirrebote y pregunta si el dato introducido es correcto o no ---------------
preg0: pause 5
ptecla0:
if porta = %1111 then goto preg0
'pause 100
if porta = %1110 then :goto mostrar0
goto prueba



preg1: pause 5
ptecla1:
if porta = %1111 then goto preg1
'pause 100
if porta = %1011 then : goto mostrar1
goto prueba


preg2: pause 5
ptecla2:
if porta = %1111 then goto preg2
'pause 100
if porta = %1101 then : goto mostrar2
goto prueba


preg3: pause 5
ptecla3:
if porta = %1111 then goto preg3
'pause 100
if porta = %1011 then : goto mostrar3
goto prueba


preg4: pause 5
ptecla4:
if porta = %1111 then goto preg4
'pause 100
if porta = %0111 then : goto mostrar4
goto prueba






preg5: pause 5
ptecla5:
if porta = %1111 then goto preg5
'pause 100
if porta = %1011 then : goto mostrar5
goto prueba


preg6: pause 5
ptecla6:
if porta = %1111 then goto preg6
'pause 100
if porta = %0111 then : goto mostrar6
goto prueba


preg7: pause 5
ptecla7:
if porta = %1111 then goto preg7
'pause 100
if porta = %1101 then : goto mostrar7
goto prueba


preg8: pause 5
ptecla8:
if porta = %1111 then goto preg8
'pause 100
if porta = %1110 then : goto mostrar8
goto prueba


goto ini

end


avatar
avatar

Hola Sñr. Mario, me ha parecido muy interesante tu idea, y estoy intentando montarlo en casa, solo que no encuentro el PIc 16f88 ni el programa a usar... Sería tan amable de echarme una manita? ^^
Puedo conseguir el 16f628A, por si se puede utilizar.
Un saludo!

avatar
avatar

Hola Mario, te envio este mensaje porque me ha gustado tu articulo de el simon:
http://neoteo.serieya.com/simon-el-juego-simon-says
y he decidido montarlo pero tengo unos problemitas, el PIC que utilizas me es imposible conseguirlo y sin embargo he encontrado uno parecido pero no se si me puede valer, es el 16F628.

Gracias y saludos

avatar
avatar

LA VERDAD QUE LO PUDE HACER CON UN PIC 16F84A QUE HABIA COMPRADO
LO QUE SI ME INTERESARIA APRENDER APROGRAMAR POR QU HASTA HORA LO QUE HAGO ES BAJARLO DE LARED Y PROGRAMARLO PERO ME QUIERO INICILIZAR EN ESTO Y NECESITARIA QUE ALGUIEN ME UNA MANITO DE QUE LENGUAJE ME HACE FALTA PARA PODER ENTENDER ESTO SUPONGO QUE ES EL BAISIC PERO NO ENCUENTRO UN TUTO PARA PODER APRENDER DESDE CERO IGUAL QUIERO FLICITAR A USTEDES Y A LA PAGINA SON UNOS CRANEOS Y MUCHOS SALUDOS A TODOS

avatar
avatar

hola que tal mario quisiera saber cuantas velocidades tiene este juego y que caracteristicas tiene por que me ha interesado hacer este proyecto una cosa mas el codigo fuente del pic esta ok o se tiene que hacer algun ajuste en el programa de ante mano gracias y espero tu respuesta.

avatar
avatar

hola que tal mario quisiera saber cuantas velocidades tiene este juego y que caracteristicas tiene por que me ha interesado hacer este proyecto una cosa mas el codigo fuente del pic esta ok o se tiene que hacer algun ajuste en el programa de ante mano gracias y espero tu respuesta.

avatar
avatar

hola, la verdad tengo tiempo tratando de armar un proyecto y tu lo acabas de resumir en poco tiempo... ja ja ja, mis preguntas o mas bien la ayuda que te pido son las siguientes, quisiera realizar este juego primero no pequeño, lo quiero para una clase con pequeñines entonces seria mas motivante algo mas grande para ellos (he pensado usar botones como de las maquinitas que traen incluida la luz), y me gustaría poder agregar mas botones ( mas o menos 16 a 20) como puedo lograr esto?, te agradecería me pudieras orientar, gracias de antemano por cierto lo que haces es colosal felicidades y sigue asi.

avatar
avatar

hola una duda es q dijiste algo q se debe activar una casilla para q el buzzer pueda sonar ¿eso es se debe activar en el codigo fuente? es q uso el pic c compiler solo quisiera saber donde

avatar
avatar

que tengo que RB3 me funcione como salida al buzzer es que uso un programador "master prog"

avatar
avatar

hola que tal mario desde peru es un grandioso proyecto el simon que hiciste queria preguntarte que caracteristicas tiene ese proyecto y a la ves pruguntarte si el programa esta ok o se tiene que agregar algun dato finalmente me despido con un fuerte abrazo y sigue subiendo proyectos como los que tienes.gracias

avatar
avatar

ayuda porfavor porque cuando le hago la modificacion
#include
#use delay(clock=4000000)
#use fast_io(A)
#use fast_io(B)
#fuses INTRC,NOWDT,NOPUT

el juego me va lento ya no se escucha ni se ve como en el video estoy desesperado agradecere la ayuda

avatar
avatar

Hola que tal mario estoy en el proceso de elaboracion del prototipo pero a la hora de pasar a lo siguiente que es montar el microcontrolador con su correspondiente capacitor de desacoplo de 100nF entre los terminales de alimentacion no he podido ya que tengo muy pocos conocimientos y en la imagen no se distingue bien, Si me pudiera enviar una guia mas completa te lo agradeceria :)

avatar
avatar

mira ese microcontrolar es PIC16F88 por que no logro conseguirlo
o si sabes algun reemplazo de el.

avatar
avatar

Hola a todos, me interesa mucho este tutorial, porqe pretendo hacer un juego parecido para un proyecto escolar, pero quiero incrementar el número de opciones al doble (de 4 a 8 o 10)apenas estoy comenzando con este proyecto y estoy investigando mucho, cualquier aportación o sugerencia la agradeceré y me pongo a sus órdenes.

Por último me gustaría qe alguien tuviera el tiempo y la amabilidad de compartirme el código a mi correo, puesto que ya intenté bajarlo pero no sé porqé no se puede... jejej o qé stoy haciendo mal.
Gracias de antemano
Alexa de Mex

avatar
avatar

disculpa tengo una duda esque yo solo se programar en mplap hay alguna forma de pasarlo de c a mplap

avatar
avatar

buenas, fijese que yo ya descargue el codigo fuente que tienen en este apartado del juego simon says, pero cuando lo compilo en MikroC este me tira varios errores, los cuales dicen "Undeclared identifier [output_low] in expression" entonces no me deja compilarlo, sera que me puede ayudar por favor, quiero armar ese juego

avatar
avatar

Sera posible reponer la imagen del Circuito del juego?

avatar
avatar

Hola, Me llamo Brian, estoy utilizando tu proyecto como muestra para la exposicion de mi escuela, me parece muy bueno y se me ocurrio agregarles laser, funcionara?

avatar
avatar

Hola Buenas tardes Tu proyecto me parece formidable y entretenido Mi pregunta es si tienes opción de mandarme un pic preprogramado y te cubro los gastos, la razón es porque no tengo una persona que me lo pueda grabar y adquirir un grabador para un solo circuito no me es costeable Sin más por el momento y quedó de ti para tu respuesta agradeciendo de antemano tu atencion Cesar Montoya

avatar

Debes iniciar sesión para publicar un comentario.