Spacewar en el microcontrolador

7

Primero que todo, debo decir que casi no tengo experiencia con la programación de microcontroladores (aparte de algunas cosas de Arduino). He trabajado con C (y x86 ASM) en algunos proyectos de bajo nivel (piense en cosas del núcleo, sistemas integrados), así que creo que la parte del software no debería ser un problema.

Ya que estoy tratando de aprender algo acerca de los microcontroladores, pensé que la mejor manera de hacerlo es tomar un proyecto para mascotas. Me decidí y quiero implementar Spacewar! en un microcontrolador. Si pudiera ejecutarse en un PDP1 en los años 60 debería ejecutarse en un microcontrolador (creo).

Entonces, esta es mi pregunta, ¿podría recomendarme algún tablero de desarrollo en particular que tenga un puerto VGA para que yo muestre (solo en blanco y negro) el juego? Estoy planeando usar un teclado USB para los controles.

¿La visualización de VGA (solo necesito b / w, 640x480 sería más que suficiente, iría por menos) estaría fuera del alcance de una tabla barata (< = 100 $)?

¿Alguna recomendación para la junta? ¿Algún otro problema que creas que pueda encontrar?

¡Gracias!

    
pregunta nvm

5 respuestas

5

Hackvision es esencialmente un Arduino diseñado para el desarrollo de juegos retro. Usted lo programa con el IDE de Arduino ordinario, y usa la biblioteca TVout.

TVout es una biblioteca de Arduino que facilita la generación de video compuesto monocromo de baja resolución para un televisor. Diseñé Hackvision, que es esencialmente un tablero y un controlador de juegos Arduino combinados, y tiene salidas de audio / video que conectas a tu TV. TVout, la biblioteca de mis controladores y los ejemplos de juegos facilitan comenzar a escribir tus propios juegos. Y como los juegos se escriben con el IDE de Arduino normal, está bien para los principiantes. Hackvision sería útil para el póster original porque se cuida todo el hardware, y la codificación Arduino es ampliamente conocida.

enlace

    
respondido por el nootropic
8

Una MCU que debería ser adecuada para implementar Spacewar es el Parallax Propeller de 32 bits. , ya que cada núcleo tiene un video y una interfaz VGA. Lo que parecen ser juegos igualmente complejos se han portado a él.

Recuerdo haber jugado Spacewar en un DEC PDP-12 en el que trabajé hace muchos años.

    
respondido por el Leon Heller
4

Si ya tiene la placa Arduino , puede usar alguna biblioteca de salida de TV como this , this , o esto . Como puede ver, también puede ordenar o hacer usted mismo estas tablas baratas.

    
respondido por el avra
2

Si tiene acceso a un alcance analógico, sugeriría que conecte un microcontrolador con un par de DAC a la XY del alcance. Si puedes controlar la Z (brillo) también, eso sería aún mejor; de lo contrario, si sus DAC son lo suficientemente rápidos, simplemente puede dejar que el haz se detenga en los puntos que se supone que están encendidos.

    
respondido por el supercat
1

No necesariamente llamaría a una placa que tiene una interfaz de video un microcontrolador. No sé (todavía) lo suficiente acerca de cómo se interconectó spacewar a la pantalla, podría probar un enfoque de asteroides donde el programa creó una lista de instrucciones para el motor de gráficos vectoriales que a su vez era un procesador de todo tipo con instrucciones y llamadas de subrutinas, etc. Periódicamente envíe una lista de instrucciones de video a través de un puerto serie a un host, como un terminal tonto, que muestra el video.

Otro enfoque podría ser simplemente obtener un avance de gameboy, 16Mhz ARM7, tiene una pantalla, tiene botones. Cuesta alrededor de $ \ $$ 30 o $ \ $$ 40 en ebay. En lugares como realhotstuff.com puede obtener un cartucho de flash o más fácil de usar una tarjeta SD (mini, micro o tamaño completo) basada en una. Comprar alrededor de algunos es más difícil de usar que otros. También recomiendo obtener un cable de enlace del juego solo para poder cortarlo y hacer dos cables serie, use algo como esto tal vez

enlace

o este es el que normalmente uso

enlace

Escriba un cargador de arranque y pídale que arranque el cartucho, luego puede descargar los programas a través de la serie en el ram y ejecutarlos allí, ahorra una enorme cantidad de tiempo extrayendo el cartucho, luego la tarjeta SD y luego montándolo copiando el nuevo archivo, desmonte póngalo en el cartucho en el arranque gba y espere, falle, comience de nuevo. Con el cargador de arranque en serie puede apagar y seguir o seguir las instrucciones de la página del devr y agregar un botón de reinicio.

Probablemente valga la pena gastar unos cuantos dólares más y usar gba sp. Obtiene una pantalla retroiluminada y un cable de alimentación para dejarla enchufada todo el tiempo. Un NDS funcionará desde la perspectiva de un cartucho y de los desarrolladores, pero es más doloroso que el GBA por mojarse los pies. Sí, en ambos casos, simplemente puede caer en uno de los entornos limitados existentes y realmente no aprender nada acerca de la parte incrustada. No me molestaría en hacer nada incrustado en ese caso, simplemente escriba una aplicación en su computadora y termine con ella.

Si no te gusta la ruta gba, deberías considerar un microcontrolador y comprar una pantalla por separado, terrestre o con chispa, o en algún lugar así, fácil de encontrar. El oled en las tablas de evaluación de stellaris es probablemente demasiado pequeño, pero oled sería realmente genial. También puede mirar algunos de los tableros fpga, a menudo tienen elementos como puertos vga o control lcd, etc. y puede colocar un mico8 o microblaze u otro procesador allí. Un proyecto más grande que solo escribir software para una placa de evaluación, sí, pero te coloca en la categoría de un microcontrolador con un puerto vga.

No he mirado los detalles, pero agregar algo como esto a otra placa de microcontroladores puede darle el paquete que está buscando

enlace

O quizás una placa stellaris con usb otg, y obtenga algún tipo de controlador de video basado en usb.

¿Qué estás usando como fuente de referencia? Después de haber realizado una traducción binaria estática de asteroides, primero una emulación y luego una traducción de las fuentes pdp1 / binario suena como un proyecto muy divertido.

    
respondido por el old_timer

Lea otras preguntas en las etiquetas