Pong fue el primer videojuego que llegó al mercado masivo. Por primera vez en la historia, el concepto de un "videojuego" fue llevado a la casa familiar, gracias al Atari 2600, por lo que es justo que le rindamos un pequeño homenaje a esta joya histórica. Ahora, puedes volver a vivir esa experiencia (un juego algo aburrido) usando un Arduino y algunos componentes comunes.
No voy a mentir: es poco probable que su hija renuncie a su Nintendo DS, y esto no proporcionará horas de diversión para toda la familia, pero es un proyecto increíble y fácil de mejorar su codificación Arduino. Y si recién está empezando, no olvide consultar la guía Arduino para principiantes.
Haremos dos controladores básicos, y el video saldrá a su televisor a través de un cable de video compuesto estándar.
Requisitos para Arduino Pong
- Resistencia de 470 ohmios x1
- Resistencia de 1k ohmio x1
- Potenciómetro de 10 k ohmios ( resistencia variable twiddly) x2
- Arduino x1 (cualquier versión)
- RCA plug x1 (si tienes más de uno, también puedes conectar el sonido. Uno para el video es un mínimo)
- Interruptor de botón x1
- Resistencia de 10k ohmios x1
También descargará la biblioteca de TV Out Arduino desde aquí; obtenga el TVoutBeta1.zip, la última versión. Coloque todas las carpetas resultantes en su directorio / arduino / libraries y reinicie Arduino IDE si ya está abierto.
Prueba de salida de TV
Tome su enchufe RCA y retire la capa exterior. Recolecte el blindaje, gírelo y colóquelo a un lado. Este es tu terreno. En el centro debe haber otro cable con blindaje de plástico; nuevamente, quítelo para tener su línea de señal.
Suelde las resistencias de 470 ohm y 1k ohm a la línea de señal central de su conector RCA; esto proporciona una señal de sincronización y la señal de video real, combinadas para producir la entrada de video analógico. La resistencia de 470 ohm debe insertarse en el pin IO digital D07, mientras que la resistencia de 1k ohm va al pin D09.
Estos pines son establecidos por la biblioteca que importamos, por lo que no puede cambiarlos. Uno de los pines Arduino GND debe ir al blindaje (exterior) de la RCA.
Ahora puede continuar y cargar un ejemplo; aunque se proporcionan tanto PAL como NTSC, realmente no debería importar con los televisores digitales modernos: la demostración NTSC funcionó bien para mí a pesar de estar en el Reino Unido. Conéctate a tu TV y obtendrás un encantador cubo 3D retro. Oooooh sí, ¿estás emocionado todavía? Yo soy.
Prueba de entradas de potenciómetro analógico
Ok, tenemos la salida de TV funcionando, ahora vamos a ir con los controladores. El cableado de los "pots" no es tan crítico; cada uno debe tener 3 pines, y el central casi siempre produce la señal de salida. Conéctelo a A0 y A1 (uno para cada recipiente). En uno de los pasadores laterales, no importa, cablee + 5V. El otro pin del otro lado debe ir a tierra.
Aquí los coloqué a ambos frente a cada uno en una placa de prueba única, porque solo tengo cables cortos. Para un producto pulido, querrá usar un viejo cable de red para tener un poco de distancia (para que pueda sentarse en el sofá para jugar).
A continuación, cargue uno de los bocetos de ejemplo básicos que vienen con el Arduino, la entrada analógica. Esta demostración destellará el LED integrado más rápido o más lento, dependiendo de la entrada en A0.
No prueba el otro potenciómetro A1, pero si tienes A0 cableado en ese momento no veo cómo cometerías un error en A1, así que supongamos que todo está bien y sigamos adelante.
Agregar un interruptor de inicio
Finalmente, agregaremos un interruptor de inicio en D02. Consulte el diagrama de cableado aquí para saber cómo hacerlo. Este interruptor se usará para iniciar el juego cuando esté en el menú.
El código Pong
Estamos usando un código escrito originalmente por Lamonica, modificado por duboisvb para dos jugadores, y actualizado por mí mismo para usar la última versión beta de la biblioteca de salida de TV. Puede ver y descargar el código de este pastebin.
Es un código bastante largo pero simple que no debería requerir ninguna explicación de mi parte. Como la mayoría de los juegos, se basa en un estado de juego (menú, en el juego, juego terminado), y lee los valores de entrada de ambos controladores y el interruptor de cada iteración del ciclo. Más allá de eso están los métodos para dibujar la pantalla, la pelota, las paletas y la lógica del juego.
Tenga en cuenta que el código también incluye salida de audio : no pude encontrar más conectores RCA para probar eso, pero si tiene alguno, conecte el pin de señal directamente a D11 y obtendrá tonos retro agradables.
Para ser honesto, no sabía que Arduino podría sacar TV sin una codificación inmensamente compleja; la biblioteca de salida de TV lo hace realmente fácil. Incluso si no le gustan los juegos retro, usar esta salida de TV básica es una gran manera de utilizar los equipos existentes como un dispositivo de monitor económico. Por supuesto, también puedes imprimir color.
¿Crees que tendrás una oportunidad en Arduino Pong, o quizás harás tu propia versión de videojuego retro? Cuéntanos en los comentarios si tienes!