Videojuegos con PIC 16F628A (DIY)

Todo tiempo pasado fue mejor”. Esa es una mentira tan grande como afirmar que en este artículo vamos a entregarte un circuito para jugar Modern Warfare 2 luego de programar un pequeño microcontrolador. Sin embargo, y en esto podemos coincidir algunos, todo tiempo pasado tiene su gloria, su recuerdo emocionante y su felicidad que por muchos años que pasen seguirán allí hasta el último día. Los videojuegos que hoy te traemos tienen la gloria y el fuego sagrado que marcó a la generación de tus padres (o la tuya, ¿porqué no?). Dos iconos que no pueden faltar entre tus construcciones, entre las cosas que con orgullo puedas decir: “a ese videojuego lo armé yo”. A partir de esas palabras, tú también serás parte de esa historia.

Desde niños siempre hemos buscado el entretenimiento y la distracción cuando deseábamos pasar un rato agradable y divertido. Desde jugar con pequeñas piedras hasta con agua. Jugar a ser mecánicos, corredores de coches, pilotos de avión o astronautas son algunas de las infinitas formas que siempre hemos sabido encontrar para pasar un rato distendido y alegre. Apuesto incluso, que has llegado a jugar con tu propia sombra en más de una oportunidad, cuando no tenías otros recursos a mano. Jugar pasa por la naturaleza del ser humano y quién no sabe jugar, no sabe ser feliz.

El juego es uno de los derechos fundamentales de un niño

Para construir los juegos que hoy te acercamos no hace falta nada que no hayamos hecho hasta ahora. Vamos a utilizar nuevamente el versátil PIC 16F628A, tal como hicimos en el artículo anterior, pero ahora con la posibilidad de jugar contra un adversario en uno de los juegos. Ese rival puede ser otro jugador o el mismo programa grabado en el PIC, selección que podrás realizar antes de comenzar la partida. Pero eso será en el segundo juego, antes comenzaremos con una de las delicias que todos hemos jugado alguna vez. No importa cuántos años tengas, si alguna vez has pasado al menos cerca de algún videojuego, seguro has jugado alguna partida de Tetris. No debe existir persona en el mundo, interesada en los videojuegos, que no haya experimentado al menos un par de días este rompecabezas (puzzle) animado en vídeo.

Tetris, un rompecabezas que ha recorrido el mundo entero

Y esto nos lleva a ingresar en la naturaleza del ser humano nuevamente. Encajar las piezas, girarlas y colocarlas sin dejar espacios vacíos, armar el rompecabezas de la vida. No permitir que el desorden pueda vencernos y el muro nos cubra la puerta de salida a una instancia superior. Sin duda alguna, Wikipedia refleja de manera fiel la sensación que invadía a los jugadores de videojuegos de salón (“gamers”) de las décadas del ’80 y del ’90. Tetris fue junto con Pac-Man de Namco, Super Mario Bros de Nintendo y Space Invaders de Taito Co y Midway, uno de los videojuegos más conocidos, populares y “taquilleros” de esa época. Luego viene el resto. Sí, también ése que estás pensando, pero después. Ni juntos, ni antes sino después.

El nombre "Tetris" deriva del prefijo "tetra", que significa "cuatro", y hace referencia a la cantidad de cuadros que componen las piezas que sin poder impedirlo caen y debemos hacerlas girar en el pleno descenso, de manera apropiada, para que al apoyar en la grupo que se va formando en el piso, encastren todas entre sí. A pesar de ser Alexey Pajitnov quien desarrolla el programa en Junio de 1984 mientras trabajaba en la Academia de Ciencias de Moscú, el juego no alcanzó popularidad hasta que un joven de 16 años, Vadim Gerasimov, transforma el código original en un programa que pueda funcionar en un ordenador IBM. A partir de allí, Tetris corrió como reguero de pólvora por todo el mundo y los programadores realizaron innumerables versiones para toda clase de consolas y ordenadores de la época. Apple II, Commodore 64, Atari ST y Sinclair ZX Spectrum entre otras.

Alexey Pajitnov, el creador de Tetris

La llegada al público en forma masiva se produce cuando Nintendo le gana la pulseada a Atari, obtiene los derechos del juego y lo incorpora como buque insignia dentro de su novedosa consola portátil GameBoy. Este binomio (Tetris – GameBoy) logró una popularidad explosiva y millonaria, por supuesto. Ambos lograron la llegada a la gente de manera conjunta, tal como lo han hecho DonKey Kong y Coleco, Mario Bros y Nintendo, Sonic y SEGA, como tantos otros personajes y consolas que no pueden dejar de ser recordadas en conjunto, como dúos que el público ha inmortalizado con su elección. Finalmente en 1991, Alexey Pajitnov emigra a Estados Unidos y recupera los derechos de autor de su magnífica obra y funda en 1996 la Tetris Company, junto a Henk Rogers (Nintendo), empresa que es la que hoy se encarga de administrar las licencias del juego en todo el mundo.

El juego que te proponemos construir hoy no entrega una imagen multicolor como las versiones que seguro has conocido y jugado, sino que es en blanco y negro y se puede disfrutar sin problemas en cualquier televisor NTSC moderno. El diseñador de esta versión de Tetris para PIC, Rickard Gunée, ha hecho un gran trabajo aprovechando los recursos disponibles del microcontrolador permitiendo obtener de él toda una consola apta para ser utilizada por varios juegos. Hasta ahora los únicos conocidos son los que aquí te presentamos y que figuran (entre otros) en su página web. En ella podrás encontrar además las versiones para PIC 16F84A y para el sistema de televisión de 625 líneas/50 ciclos, en el caso que para ti sea necesario. Al final del artículo te hemos dejado el enlace a su sitio web. En este interesante espacio (que está en inglés) encontrarás instrucciones de toda índole con importantes y útiles datos de ayuda.

Circuito propuesto para Tetris y Pong con 16F628A

Entre las bondades del juego podemos destacar la suavidad de movimientos al desplazar las piezas a un lado a otro y la velocidad de respuesta casi inmediata de los comandos ejecutados a través de los pulsadores. Este fenómeno habla a las claras del gran trabajo realizado por el programador. Como podrás ver, nosotros no hemos hecho un PCB dedicado para esta plataforma de juegos y la hemos montado de manera íntegra sobre un protoboard. Un montaje con este tipo de técnica nos resulta muy útil para demostrarte que las conexiones, si bien deben mantener orden y prolijidad, no son críticas al extremo de impedir utilizar cables que se crucen entre sí y/o componentes reciclados de otras aplicaciones. Esto es muy importante para aquellos que sienten temor de embarcarse en un montaje de dudoso funcionamiento. Como siempre, en NeoTeo te mostramos nuestro circuito funcionando. Eso es el espaldarazo para demostrarte que sólo debes confiar en ti mismo y en tus ganas de lograr el objetivo. Luego, con la guía de las imágenes, el resultado llega solo. Aquí está: Tetris, un mojón que jamás puede ser ignorado dentro de la historia de los videojuegos.

El segundo juego que hemos seleccionado para que te diviertas, juegues y experimentes durante esta semana tiene una historia tan rica e intensa como fue el caso del Tetris. Esta historia habla de un hombre que tuvo una visión que cambiaría para siempre la forma en que las generaciones jóvenes encontraran diversión en el futuro. Muchos se atreven a considerarlo el padre de las consolas de videojuegos al recordar su caja marrón. Estamos hablando de Ralph Baer, el creador del juego que desarrollaremos ahora: el Pong. La historia del Baer, el Pong, el origen de las consolas Atari y todos los detalles que intervinieron para que este hecho se transforme en una realidad fue escrita por nuestro amigo Max. Es por esto que no abundaremos en información histórica sino que nos abocaremos a los detalles de construcción de este sublime juego pero antes queremos mostrarte este curioso e histórico video que encontramos en la web. Observa a este par de “gamers”  demostrando el funcionamiento de algo que serviría para entretener a la familia. Detalle: el presentador de anteojos es Ralph Baer.

Quizás tengas la edad suficiente como para no haber conocido el Pong pero ahora tienes la oportunidad de disfrutar y ver de qué se trataba esta fiebre que sacudió a todo un mundo joven, ávido de nuevas formas de entretenimiento. Sólo debes ubicarte en tiempo y espacio de comprender que hasta el momento en que llega Pong a los hogares, sólo se conocían los flippers o pinballs que habitaban en las salas de máquinas recreativas. Ruidosas y enormes construcciones que hacían impensado el entretenimiento en el hogar de la mano de la floreciente electrónica de consumo que invadió al mundo, luego de la segunda guerra mundial. Es por ésto que un artefacto barato, simple y que pudiera ser comprado por cualquier persona para utilizarlo en su casa con su familia, no podía dejar de ser un suceso extraordinario para aquella época. Un suceso que nunca pierde vigencia, ni siquiera para su aplicación en publicidades.

En esta construcción, se utilizan todos los recursos de hardware del 16F628A, es decir, aquí se pueden utilizar los dos mandos para jugar partidas entre dos personas que es donde el juego se pone interesante de verdad. El software que disponemos para el PIC nos brinda la posibilidad de seleccionar diversos modos de juego que podemos elegir con los comandos de jugador 1. Esto es, ver jugar al software una partida por sí mismo a modo de demostración, jugar contra el software o seleccionar la posibilidad de enfrentarse con otro adversario. Y es aquí donde está lo interesante en este juego. El programa en modo demostración o cuando juega contra sí mismo, no varía el tanteador en ningún momento, juega eternamente sin que se le escape ninguna bola. En el modo de juego en que nosotros nos enfrentamos al software, sólo tendremos la oportunidad de perder cuando el aburrimiento se apodere de nosotros. Jugando contra otra persona es cuando la cosa se pone divertida, reñida y donde los errores de acción sobre los comandos pueden facilitarnos la victoria sobre nuestro oponente o una derrota tan escandalosa como vergonzosa.

Una partida de Pong en el hogar

En este juego, que también sacamos de la web de Rickard Gunée, hemos cometido la travesura de agregarle el sello de NeoTeo en la presentación. Lograr esto es muy sencillo si dispones del programa MPLAB y tienes algunos conocimientos de programación de microcontroladores. La tabla que forma los caracteres es muy sencilla de reformar trabajando en notación hexadecimal y al igual que nosotros, no tendrás problemas de hacer todas las reformas que quieras al software de este juego. El resto es sólo programación del PIC y diversión que, como mencionamos al principio, no es nada diferente a lo que ya hemos hecho en decenas de artículos anteriores. En mi caso no tenía a quién enfrentar en una buena partida de Pong, pero insistimos en que construyas una unidad con posibilidad para conectar dos comandos de juego (jugadores 1 y 2) para poder sacar el máximo provecho de diversión de este pionero de las consolas de videojuego hogareñas.

Space Invaders, Simon, Tetris y Pong. El genesis de los videojuegos está pasando por NeoTeo. Nadie sabe cuándo ni cómo vendrán otros títulos clásicos o nuevos juegos que sean sencillos de construir con tus propias manos. De lo que estamos seguros es que el entretenimiento sumado a la electrónica son dos ingredientes apasionantes y que unidos pueden transportarnos hacia el aprendizaje, el conocimiento y por supuesto, ese ocio que tanto nos gusta. Disfruta de estos juegos. No cualquiera tiene la posibilidad de recrear con sus propias manos elementos que cambiaron el rumbo de la historia moderna.

Actualización 03/07/2010: El amigo Yesbond lo hizo nuevamente. Observen este singular regalo del día del padre. Todo un trabajo profesional con una palanca de mandos y botones que emulan a cualquier máquina de video juegos. Felicitaciones Yesbond! Nuevamente los has logrado! Todos los que hacemos NeoTeo estamos muy contentos y orgullosos.

Deja tu voto

0 puntos
Upvote Downvote

Total votes: 0

Upvotes: 0

Upvotes percentage: 0.000000%

Downvotes: 0

Downvotes percentage: 0.000000%

  • Yesbond

    Hola Mario:

    Lo prometiste en el articulo anterior y hoy lo cumpliste, nos trajiste unos excelentes juegos para divertirnos, muchas gracias.
    En este la cosa es un poco mejor y mas comoda para armar, ya que estuve buscando algun televisor con entradas RGB para armar el de Space pero no encontre y bueno la otra opcion era soldar la placa TRC pero lo estuve pensando mucho, pero con este circuito nos ayudas muchisimo.
    La nostalgia me llego porque mi pimer video juego fue un atari y me la pasaba todo el dia jugando tetris aunque a color, y la musica me hace tener recuerdos muy gratos.

    Mil gracias sensei Mario, un abrazo desde Colombia

  • brunoip

    Hola Mario. yo habia armado el tetris hace unos meses, que bueno que lo publicaste.
    No intentaste, en vista de que el tetris y el pong fueron hechos para un 16f84 y el 628a tiene el doble de memoria, tratar de unir los dos juegos en un mismo programa y poder elegir cual jugar sin reprogramar el pic?
    Yo habia intentado eso pero mis escasos conocimientos de ensamblador me hicieron caducar en mi emprendimiento.
    Saludos

  • mindmaster

    increible este junto con el anterior me serviran mucho para un proyecto de electronica

    muchas gracias mario sigue haci no cambies=)

  • Seppuku

    y yo diria "de repente" muy bueno igual

  • Hal 9000

    Por fin NEOTEO tiene su propio juego!!! XD

  • Kbzon

    Nunca he hecho ninguna de estas cositas electronicas que publican ustedes… por que no entiendo pero absolutamente nada de nada de electrónica… soy un caso perdido. Es una lástima por que presentan los temas con tanto entusiasmo que se ve que es divertido.
    Saludos…
    los leo siempre

    • seba

      +1

  • sulamito

    contra hubiera hecho esto de proyecto fina de electronica 2 y me ahorarria los problemas que me esta dando el classe ab este jajajaj

  • zero

    graxias pero seria mas facil si ubiese sido programado en pic basic

  • walter

    hola.
    Muy bueno esto Mario.
    Estaria bueno que se pueda hacer un video juego con los micros PIC para jugar juegos del Family game conectando una memoria usb (pendrive) y los juegos estarian cargados en la memoria usb pues claro y que el video juego reconosca los juegos y poder elegir cual jugar.
    Yo solia tene un reproductor de vcd y tenia un cd con muchos juegos del Family game y se ponia el cd en el reproductor vcd y podia jugar a esos juegos.

  • bmcemg

    Haber para cuando en Nes 😀

  • isra

    holaaa mario, tu siempre impresionandome con los montajes que sacas, espero yo algun dia poder programar algo parecido

  • a573r10n

    Mario, disculpa que interrumpa esta entrada pero necesitamos algunos de tus seguidores que nos respondas un par de preguntas (aunque sea una pista) en:
    Receptor Multibanda II
    Receptor Multibanda IV
    Si quieres puedes borrar este comentario pero porfavor respondenos que estamos en la recta final para armar el receptor.

  • Dario

    Hola, me gustaria saber que se puede hacer con los telefonos motorola y noki viejos (ladrillos) si se puede usarlos como radio Wokitoki o alguna otra cosa, tambien me gustaria saber si al igual que la antena para capturar imagenes satelitales se puede hacer un receptor y emisor de wi.fi que amplifique la señal, gracias.

  • Truko

    No tengo los materiales, pero tratare de simularlo en Proteus =P

  • deathhand012

    hola amigos de neoteo estoy desarrollando este circuito de los juegos, por el momento estoy diseñando la forma de hacerlo como una consola con sus cartuchos (del juego de tetris, pong y posiblemente añadir el space invaders) cuando termine el proyecto, creo que en dos o tres meses, lo subo a youtube

  • peep387

    muy bueno. yo avia perdido esos archivos, pero buen eran para un 16f84, me imajno que no seia muy dificil adactarlo para el 16f628a.
    es un puntazo seme dio por costruirlo ara ya 10 años, lo mas cojonud que uno enganchose jugando asta que doblolo.. llega asta 999 lines y vuelve a 0 desde el pincipio con la velocidad que esta asignada al ultimo caracter.. eso sin contar el puntado que siempre empieza cuadrado cuadrado.. jajajajaja

    la verdad que es un programa muy bien desarrollado.

    no pude descargar el archivo. podias ponerlo en un enlace mas comodo para descargar.

    un saludo

  • julian

    como hago para quemar el pic, toca con elcodigo .hex o con el .asm

  • Benjamin

    Me imagino que es un sistema 8 bits , no se a cuantos bits funciona el Mario Bros pero , si se puede no hay forma de programar el PIC para jugar Mario Bros