# Problema con juego de simon dice usando un pic16f84a



## FOLKENX (Feb 3, 2009)

hola amigos, estoy tratando de hacer el clasico juego de memoria de simon dice o fabuloso fred con un pic16f84a, pero esta en chino, ya genere la secuencia aleatoria pero mi problema es al oprimir la secuencia en los botones no hallo como si por ejemplo aprieto mal la secuencia me encienda un led rojo de error y si la voy oprimiendo bien que me prenda un led verde de exito, estoy bloqueado en eso ojala me puedan dar orientacion gracias y hasta luego.


----------



## El nombre (Feb 3, 2009)

con varibles. Puedes hacerte una tabla y vas guardando indirectamente cuando sacas la secuencia aleatoria.


Ahora vas pulsando y comparando, (incrementas el valor de la tabla a comparar) si no es identica sales de la comparacion informaciónrmando del error. si aciertas continua.

Suerte


----------



## FOLKENX (Feb 3, 2009)

ok, gracias lo voy a intentar, lo que he hecho es esto:

movf     porta,w      ;leo el puerto a
sublw   b'00001000'   ;resto de acuerdo a mi secuencia el valor leido
btfss    status,z           ;veo si es negativo si lo es q prosiga si no q me de error hacia una subrutina
goto     error

y sigo asi hasta q se oprimen los 4 botones, pero no me sale como quiero, voy a probar como me mencionas, gracias y saludos.


----------



## Meta (Feb 3, 2009)

```
ARMADO Y PROGRAMACION DE UN JUEGO ELECTRONICO
Arme este juego en el cual, al comenzar, el microprocesador encenderá una de las cuatro lámparas y emitirá un tono. Luego Ud. presione un pulsador (panel) para que se encienda la luz anterior y otra lámpara en forma aleatoria, emitiendo otro sonido, el microprocesador repetirá el panel encendido y agregará otro. Ahora su trabajo será presionar dos paneles en el orden correcto. El número de paneles continuará aumentando hasta que usted no pueda recordar la secuencia, momento en el cual el juego electrónico emitirá un sonido diferente indicando la finalización del mismo. Este juego, en el que pueden participar una cantidad ilimitada de jugadores, se construye utilizando un PICAXE como cerebro y es tan sencillo que puede armarlo hasta un principiante.
INTRODUCCION

El Simon, fue uno de los primeros juegos electrónicos portables, hecho por la compañía MB en 1978. Era tan pesado que necesitaba una pila de 1.5V y una batería de 9V PP3 para hacerlos funcionar!

La idea detrás de Simon era bastante simple. Estaba basado en el viejo juego “Simon Dice”. El juego estaba hecho de una caja de plástico redonda con cuatro paneles de colores debajo de cada panel había un interruptor y una lamparita. Al comenzar el juego, el microprocesador encendía uno de los cuatro paneles y daría un tono. El juego consistía, entonces, presionar el panel que se encendía. ¡Demasiado Simple! Entonces Simon repetiría el panel encendido y agregaría otro. Ahora su trabajo era presionar dos paneles en el orden correcto. El número de paneles continuaría aumentando hasta que usted no pudiera recordar la secuencia, momento en el cual Simon hacía un sonido y finalizaba el juego.

En 1979 MB lanzó el Super Simon, el cual tenía dos sets de paneles, de manera que dos personas pudieran jugar una contra la otra. En 1980 se lanzó Pocket Simon, una versión más pequeña del juego original. También había un Simon con su caja transparente, de manera que se pudiera ver su electrónica por dentro.

Simon era muy caro, debido a que utilizaba un circuito complicado controlado por un microprocesador, y necesitaba baterías grandes que proveyeran energía a las lamparitas.

Ahora es posible reproducir el juego Simon, utilizando 4 LEDs y un microcontrolador de muy bajo costo, y sólo utiliza dos pequeñas pilas de 1.5V.

El juego propuesto puede tener 4 o 5 LEDs indicadores y un largo interruptor. También utiliza un resistor preset para proveer una entrada ajustable (por ejemplo: tiempo). Puede incluir otros sensores como: más interruptores, luces o sensores de temperatura. Puede agregar un buzzer piezoeléctrico para generar sonidos. Las características sobresalientes son:

   1.
      El diseño utiliza un microcontrolador PICAXE como su controlador
   2.
      Incluye LEDs de salida, un interruptor de entrada y un resistor de entrada preset
   3.
      Puede ser programado con el juego que usted diseñe

ALGUNAS COSAS PARA TENER EN CUENTA
1- ¿Cómo va a funcionar su juego?
Podría ser un simple reloj (timing) o un dispositivo “dice” utilizado como parte de un gran juego, o un juego completo por sí mismo.

2- ¿Qué color y tamaño de LEDs debe utilizar?
Los LEDS más comunes son los rojos, pero también puede usar otros colores y tamaños (por ejemplo: azul)

3- ¿Cómo activa el juego?
Normalmente, se utiliza un interruptor colocado en la caja, pero también podría conectar otros interruptores sobre plomos. Podría elegir utilizar otro tipo de sensores, por ejemplo, un sensor de luz (LDR) que pueda detectar cambios en el nivel de luz cuando usted coloque la mano sobre él.

Algunas veces, es útil encender o apagar más de un LED al mismo tiempo. Esto ahorra tiempo cuando utiliza comandos altos y bajos. El comando que hace esto, se llama “let pin=” tal como hemos visto en otros proyectos con PICAXE descriptos en ediciones anteriores (si no tiene dichos proyectos, bájelos de nuestra web sin cargo con la clave “picaxe”).
 
EL CIRCUITO DEL JUEGO ELECTRONICO
El proyecto del juego electrónico utiliza un microcontrolador PICAXE-18 con LED. También utiliza un interruptor para activar el LED.

En la figura 1 se describe el diagrama de bloques electrónico. Si desea puede agregar dos interruptores extras o sensores conectados a las salidas 6 y 7 (patas 11 y 12 del PICAXE-18).

En la figura 2 se describe el diagrama del juego electrónico.

Si prefiere el uso de una batería de 9V, en ese caso se requiere un regulador de voltaje en la posición RG1. Si utiliza una portapilas de 3V (recomendado) simplemente utilice un wire link (puente) que atraviese los dos orificios de salida de la posición RG1.

El PCB propuesto por la empresa propietaria de PICAXE está fabricado especialmente, con una película resistente a la soldadura para hacer el proceso de soldadura más sencillo. Esta película es la cubierta verde que cubre las pistas de manera que la soldadura no se pegue a las mismas. Para una construcción correcta el PCB se debe ensamblar y soldar muy cuidadosamente.

En la figura 3 se puede observar el diseño de la placa de circuito impreso

Consejos Utiles para el Principiante
Al soldar asegúrese que la punta del soldador esté caliente y limpia. Para verificar si está lo suficientemente caliente, trate de derretir un trozo de soldadura (estaño) sobre la punta. La soldadura debe derretirse casi instantáneamente. Luego limpie la soldadura pasando la punta del soldador por una esponja húmeda.

Recuerde que la soldadura sólo se pega a superficies calientes. Por lo tanto nunca la derrita sobre la punta y luego trate de tirar la misma sobre la unión a soldar, esto no funcionará ya que la unión estará fría y la soldadura no se pegará.

Para hacerlo correctamente, debe sostener en una mano el soldador y en la otra la soldadura. Por lo tanto, asegúrese que el tablero esté fijo a la mesa de manera que no se mueva (utilice una prensa ó pida a alguien que lo sujete). Para soldar recuerde:

   1.
      Limpie la punta de la soldadura sobre la esponja húmeda.

   2.
      Presione la punta del soldador contra el terminal sobre el PCB y la pata del componente a soldar. Cuente hasta 3 para darle tiempo de calentarse a la unión.

   3.
      Mantenga el soldador en posición y presione la soldadura contra la unión. Permita que se derrita suficiente soldadura para cubrir toda la unión.

   4.
      Retire primero la soldadura y luego el soldador.

   5.
      Permita que la soldadura se enfríe durante 5 segundos antes de mover el tablero.

Luego, tal como hemos dicho en cada uno de los proyectos descriptos en ediciones anteriores, se deben tener en cuenta una serie de consideraciones entre las que podemos mencionar:

   1.
      Comience siempre con los componentes más pequeños, como por ejemplo resistencias. Luego continúe con componentes más grandes como el conector del circuito integrado y termine con componentes altos tales como condensadores y transistores. No intente fijar todos los componentes juntos solamente dos o tres a la vez.

   2.
      Asegúrese siempre que los componentes estén bien montados (planos) sobre el tablero antes de soldarlos. Al utilizar componentes de patas largas tales como resistencias y LEDs, doble las patas de manera que el componente quede firmemente en posición antes de soldarlo.

   3.
      Asegúrese que el conector estéreo de descarga PICAXE quede firme y acomodado en posición antes de soldarlo.

   4.
      Asegúrese que todos aquellos componentes que sólo operan en un solo sentido (LEDs, diodos, transistores y condensadores) estén correctamente alineados antes de soldarlos (vea las marcas sobre el PCB).

   5.
      Los cables (alambres) del zumbador son muy delgados. Tenga cuidado de no sobrecalentarlos o de lo contrario puede que se derritan.

   6.
      Haga pasar siempre los cables de la caja de baterías por arriba y abajo de los agujeros antes de soldarlos. Esto ayuda a hacer una unión más fuerte, la cual es mucho menos propensa a soltarse.

   7.
      Con el juego electrónico los LEDs se deben montar levemente sobre el PCB, de manera que quepan en la caja. Pruebe las posiciones antes de soldar.

   8.
      Coloque el resistor de 2kohm (rojo rojo naranja dorado) y los cinco resistores de 10kohm en su posición (marrón negro naranja dorado). Dóbleles las patas para fijarlos en su posición y suelde.

   9.
      Coloque los cinco resistores de 120ohm (marrón rojo marrón dorado) y el resistor de 47kohm (amarillo violeta naranja dorado) y suelde. Doble las patas para fijar los resistores y suelde. Observe que si utiliza el microcontrolador PICAXE-18 A, no se requiere el resistor de 47kohm, y debería ser reemplazado por un wire link (puente).

  10.
      Use una pata del resistor offcut para hacer un puente en las posiciones LINK1 y LINK 2.

  11.
      Si está utilizando una batería 9V PP3, suelde un regulador 78L05 en la posición RG1. Si está utilizando una batería de 3V, no necesitará el regulador. En este caso use un puente para soldar los dos contactos en la posición RG1 (como se indica en el PCB).

  12.
      Utilizando alguno de los alambres cortados de las patas de las resistencias, haga un puente sobre las letras PX marcadas a un lado de las resistencias de 330ohm y luego suelde. (Ignore el agujero sobre los agujeros marcados CF)

  13.
      Coloque y presione en su posición el conector estéreo de descarga PICAXE sobre el tablero y asegúrese que quede fijo (Debe escuchar un “click”) de manera que quede nivelado sobre el tablero. Suelde los cinco contactos cuadrados metálicos (los cinco soportes plásticos redondos no tienen que soldarse). No se preocupe si la soldadura une dos o más contactos en cualquiera de los dos lados del conector, ya que supuestamente éstos deben estar unidos de todas maneras.

  14.
      Coloque y presione en posición el conector IC. Asegúrese que la muesca de uno de los extremos apunte hacia el conector. Dóblele las patas para fijarlo en posición y suelde.

  15.
      Suelde la fotorresistencia y los dos LEDs en sus respectivas posiciones. Asegúrese que el lado plano de uno de los lados del LED esté alineado con el lado plano marcado en el PCB.

  16.
      Suelde en su posición el interruptor (note que sólo encaja en un sentido). Si está utilizando cables, suelde uno de los cables en uno de los dos agujeros inferiores y el otro cable en uno de los dos agujeros superiores.

  17.
      Pase los cables de la batería hacia abajo a través del agujero grande cerca de las letras AXE y luego páselos hacia arriba a través del agujero grande cerca del número.

  18.
      Suelde el cable negro en el agujero marcado 0V y el cable rojo en el agujero marcado V+.

  19.
      Con una cinta adhesiva de doble contacto pegue el zumbador (por el lado de bronce) al PCB. Pase los cables del mismo hacia abajo por el agujero bajo LED1 y luego hacia arriba a través del agujero marcado PZ. Suelde el cable rojo en el agujero inferior y el cable negro en el agujero superior. No importa si la junta soldada del cable rojo se une con el pin5 del conector IC ya que éstas, se supone, deben unirse de todas maneras. Sin embargo, el cable negro NO debe tocar el pin6 del conector IC.

  20.
      Revise cuidadosamente el tablero para comprobar que todas las uniones soldadas están bien hechas y que no hay ningún puente de soldadura creado accidentalmente.

  21.
      Inserte el microcontrolador en el conector, asegurándose que el pin1 esté de frente al conector estéreo.

Cuando haya armado el circuito, utilizando la placa PCB mostrada en la figura 3, debe realizar las siguientes verificaciones:

Paso 1 – Verifique las uniones soldadas
Verifique que todas las uniones estén conectadas tanto al terminal como al cable, y que el cable esté sujeto firmemente. También verifique que la soldadura no haga accidentalmente puentes entre terminales adyacentes. Esto es mucho más probable en los LEDs, la fotorresistencia y el zumbador. En el conector estéreo los terminales cuadrados a cada lado pueden unirse sin ninguna consecuencia, ya que de todas formas están unidos por una pista en el tablero. Sin embargo, éstos no deben unirse al agujero redondo central.

Paso 2 – Verifique los componentes

   1.
      Verifique que el cable negro de la batería esté en el agujero marcado 0V y que el cable rojo esté en el agujero marcado V+.

   2.
      Verifique que el chip PICAXE-08 esté insertado correctamente en el conector o base, con la muesca (que muestra el pin1) apuntando hacia el conector estéreo.

   3.
      Verifique el lado plano del LED esté conectado al agujero correcto del PCB.

   4.
      Asegúrese de no haber olvidado unir mediante un alambre los agujeros marcados PX en el extremo inferior izquierdo del tablero.

   5.
      Asegúrese de pegar el lado de bronce del zumbador al tablero con cinta adhesiva de doble contacto.

   6.
      Verifique que el conector esté soldado correctamente, incluyendo el terminal cuadrado central, el cual a menudo es olvidado por equivocación.

Paso 3 – Conecte la batería
Verifique que las 3 pilas AAestén colocadas correctamente dentro de la caja de baterías. Conecte la caja de baterías al cable de baterías y ponga su dedo sobre el microcontrolador PICAXE. Si comienza a calentarse desconecte la batería inmediatamente ya que debe haber algún problema, lo más seguro es que el chip o los cables de la batería estén conectados en sentido inverso.

Paso 4 – Descargue un programa para probar el LED 0
Conecte el cable a su ordenador y al conector PICAXE en el PCB.

Nota: Si nunca ha trabajado con PICAXE, le comentamos que es muy sencillo, que requiere un cable de solo 3 hilos y que hacer programas para personalizar su juego es muy fácil. En Saber Electrónica Nº 211 publicamos el proyecto de una mascota electrónica y explicamos paso a paso cómo trabajar con PICAXE. Ud. Puede bajar esa nota de nuestra web: www- ,welectronica.com.ar, haciendo clic en el ícono password e ingresando la clave: PICAXE. También le comentamos que este proyecto está explicado (junto a varios montajes) en el tomo 8 de la colección Club Saber Electrónica, que actualmente se encuentra en venta en los quioscos de Argentina (figura 4). Dicho libro, titulado: “Proyectos con Microcontroladores PIC y PICAXE” contiene todo lo necesario para que Ud. aprenda a utilizar microcontroladores y a hacer sus propios programas sin problema.

Siguiendo con nuestro proyecto, asegúrese que el conector del cable quede completamente dentro del conector del PCB.

Debe asegurarse que el software esté en el modo PICAXE-18 y que haya elegido el puerto serie correcto.

Puede probar el funcionamiento de cada LED, para ello dibuje el organigrama de la figura 5 y obtenga el código BASIC.

El LED debe titilar a medida que se descarga el programa. Al terminar la descarga el LED deberá encenderse y apagarse cada segundo. Si el LED no hace esto verifique que esté conectado correctamente y que las resistencias de 330ohm estén la posición correcta en el PCB.

Si el programa no se descarga verifique que la resistencia de 22kohm, la de 10kohm y el conector IC estén soldados correctamente. Utilice un voltímetro para verificar si hay 4.5V entre las patas superiores (1 y 8) del microcontrolador. Controle que el cable esté firmemente unido al conector y que dentro del software se haya elegido el puerto serie correcto.

Paso 5 – Pruebe el otro LED
Repita el programa del paso 4, pero utilice high 1 y low 1 en vez de high 0 y low 0. Luego repítalo en la salida 2, 3 y 4. Esto probará cada LED.

Paso 6 - Pruebe el Interruptor
El Led debe encender cuando se presiona el interruptor. Si no lo hace, verifique el interruptor y si el resistor de 10kohm está correctamente soldado.
 
main:
  	if pin2 = 1 then LEDon
low 0
goto main
LED0n:
  	high 0
goto main
 
Paso 7 - Prueba del preset
El LED debe encender y apagar cuando se gira el preset hacia delante o hacia atrás si realiza la programación con la rutina que mostramos en la figura 6.

Si pasó todas estas pruebas con éxito, ¡felicitaciones! ya que ha construido y ensamblado correctamente su juego electrónico. Ya está en condiciones de desarrollar programas para su juego electrónico.

Le recomendamos que realice sus propios programas y se divierta en la medida que va aprendiendo nuevas rutinas de programación.

Fuente:
[url]http://www.webelectronica.com.ar/news25/nota02.htm[/url]
```

Fuente:
http://www-2.dc.uba.ar/materias/oc1verano/2006/download/enunciadotp3.pdf

*Si quieres jugar.*
http://www.picharras.net/juegos/juegos-clasicos/simon.html


Saludos.


EDITO:





Fuente:
http://www.tolaemon.com/proyectos/ssimon.htm

Saludos.


----------



## FOLKENX (Feb 3, 2009)

mil gracias por la información Meta, tambien he trabajado con los picaxe, pero disculpa mi ignorancia pero no entiendo el diagrama a bloques para el picaxe, segun entiendo lee la variacion analogica de una ldr y dependiendo de eso activa en low y en high dos salidas pero como se relaciona con el metodo del simon, gracias nuevamente esta muy bueno lo que posteaste, saludos.


----------



## cliver91 (Jul 3, 2009)

Hola, yo estoy intentando hacer el mismo juego 
Como hiciste la secuencia aleatoria? tengo una imagen en general de cuales deben ser los pasos del programa, pero nose como puedo hacer que el prog me seleccione solo una de las cuatro luces en forma aleatoria...

Si podes postear la subrutina estaria muy agradecido 

Gracias.


----------



## FOLKENX (Jul 15, 2009)

hola cliver91, mira la secuencia aleatoria la hize usando la secuencia del programa es decir mientras corre el programa cada instruccion que va realizando a la velocidad del oscilador me detiene en un caso determinado que le puse para correr una secuencia de luces que es lo que hace el simon, es decir cuando aprieto el boton inicio se detiene en uno de los casos que puse que son como 50 una vez hecho esto vuelve a correr el programa y se vuelve a detener en otro caso o el mismo cada vez que aprieto el boton inicio.

asi lo plantee yo el programa difiere un poco del original simon, de hecho tiempo despues encontre en la revista saber electronica el diagrama electronico y el programa pero para un picaxe 18-A, la revista es saber electronica año 19, no.07.  de mexico, si puedo escaneo el programa y el diagrama, por que por falta de tiempo lo deje e hize otros proyectos y este lo deje inconcluso, bueno espero te sirva algo hasta luego saludos.


----------



## frederyps (Nov 16, 2010)

necesito el programa en lenguaje ensamblador


----------

