Mostrando entradas con la etiqueta Programación. Mostrar todas las entradas
Mostrando entradas con la etiqueta Programación. Mostrar todas las entradas

sábado, 19 de abril de 2014

Videojuego en C (con SDL)

Este juego lo realicé un verano que quería aprender a programar utilizando alguna librería gráfica en C. La elegida fue SDL, un conjunto de librerías para el manejo de Sprites, Mapas de Bits y sonido a grandes rasgos.

Así que pensé en hacer algo que fuera didáctico pero a la vez jugable y decidí hacer un clon del juego Space Invaders.

Me valió para enfrentarme a los métodos más cotidianos en la creación de videojuegos, y algo que me puse como meta, que era prescindir de cualquier entorno gráfico que facilitara las cosas. Por eso, el juego entero está desarrollado en C y ese lo considero el verdadero logro. Sé que hoy en día hay herramientas que facilitan mucho las cosas, pero quería saber cual era internamente el funcionamiento intentando alcanzar el más bajo nivel posible y en aquel momento C era lo más apto para mi.

Hoy, pasado un tiempo, me he divertido mucho viendo de lo que fui capaz. Estoy seguro que ahora desarrollaría algo completamente diferente y pondría más empeño en la jugabilidad y en estructurarlo más. Quizá lo haría de una manera más orientada a objetos.

El código está comentado y solo se necesita el ejecutable para poder jugar bajo Windows. ¡Espero que lo disfrutéis!




viernes, 18 de abril de 2014

Mi lector SD para Commodore.

Este es uno de los proyectos a los que más tiempo he dedicado, tanto internamente, en diseño como externamente. Se trata de un lector de tarjetas SD para el ordenador Commodore 64.

He realizado vario prototipos hasta dar con el que más me gustaba. El primero fue una placa que encajara en la parte trasera del ordenador, evitando la necesidad de utilizar ningún cable:


Aunque me resultaba muy práctico, me apetecía dar al proyecto un toque más de personalidad, así que me puse a trabajar en el diseño de la placa hasta conseguir reducirla a la mitad de tamaño, para meterla en una caja con la forma de una antigua disquetera que realicé con resina epoxy:


El proyecto es Open Source y se llama SD2IEC. Básicamente consiste en un microcontrolador ATMEL que interpreta los archivos de la SD y lo envía simulando una disquetera original. La alimentación la toma del puerto de cassette y puede tanto leer como escribir en la tarjeta.

En la documentación están todos los esquemas necesarios, incluyendo una reproducción en 3D de la placa, si utilizamos el programa Proteus.


miércoles, 16 de abril de 2014

Demo para Game Boy

Aprovechando que había aprendido ensamblador para el procesador 6502, decidí aprender algo también del Z80, muy similar, haciendo algo divertido. Se me ocurrió que estaría bien crear una pequeña demo para el sistema Game Boy, que además de aprender las instrucciones de este procesador, me sirvió para entender mejor el funcionamiento de una arquitectura completa, incluyendo chip gráfico y de sonido e incluso el uso de Macros para ensamblador.

Aunque el "juego" es muy simple, sirve para aprender cómo funcionan los principales aspectos de un videojuego, véase, control de Sprites, Scroll de fondo y colisiones.

Aprovecho la interrupción de refresco de pantalla, para emitir el sonido que compone la música, dando así una sensación de que todo sucede simultáneamente.

Para compilar, utilicé RGBDS, que tiene un potente sistema de Macros.

El código está comentado, pero me gustaría ahondar más adelante en él, haciendo un pequeño tutorial, ya que la información que existe en español es prácticamente nula:



lunes, 14 de abril de 2014

Mi propio reloj usando un RTC.

Este proyecto lo hice cuando quería aprender a programar en CCS (siempre había trabajado en HiTech C), por lo que pensé que la mejor manera sería haciendo algo práctico y esto fue lo que salió.

Es un rejoj controlado por un Real Time Clock, es decir, un integrado que nos proporcionará la hora y fecha y que siempre estará alimentado de una batería, por lo que si la alimentación se corta, internamente nuestro reloj seguirá trabajando.

Como digo utilicé CCS ayudándome de sus librerías para controlar el RTC mediante I2C. Para el microcontrolador utilicé el 16F877 con 4 multiplexores. No es lo más óptimo en cuanto a coste, ya que se podría haber hecho utilizando un registro, pero quizá en ese momento pensé que sería más didáctico si podía simplificar un poco el código dejando a los componentes analógicos hacer parte del trabajo.

El resultado fue bastante satisfactorio. ¡Incluso hoy día sigue dando la hora exacta! Y es que con una pequeña pila, nuestro RTC puede estar alimentado la friolera de 15 años.


En el archivo adjunto tanto esquemas, simulado en Proteus, placa, componentes y código fuente:

sábado, 15 de marzo de 2014

Veterinario en Visual Basic

En esta ocasión, voy a enseñaros un proyecto que hice para un supuesto veterinario.
Viéndola con el tiempo, he de confesar que la he encontrado bastante completa.

La aplicación consistía en todo lo necesario para el funcionamiento de una clínica o tienda de animales. Está realizada en Visual Basic .NET íntegramente, con una base de datos en Access.

Los apartados que decidí poner fueron:

- Gestión de usuarios.
- Calendario con citas y avisos.
- Terminal de caja (actualizando la BBDD al realizar cada compra) e impresión de ticket.
- Sistema de pedidos (alimento, medicamentos, etc...)

Como siempre, toda la documentación, incluida el manual de usuario y código fuente completamente comentado, se puede encontrar en el interior.


Descargar

sábado, 8 de marzo de 2014

Proyecto PHP

Este fue mi proyecto de fin de curso para la asignatura "Desarrollo de aplicaciones en entornos de cuarta generación y con herramientas CASE".

Es un sistema de encuestas para el ámbito escolar, en el que los alumnos podían acceder a través de sus exploradores para responder un número determinado de preguntas impuestas por el administrador, proporcionando así un servicio de estadísticas con los resultados obtenidos.

Se compone básicamente de dos partes:

- La primera, realizada en PHP y Javascript con una base de datos alojada en Oracle con SQL, donde el cliente contestaba las preguntas, accediendo al servidor desde cualquier terminal.

- La parte realizada en Java, que es una pequeña aplicación destinada al uso del administrador, que se encargaba de dar de alta, eliminar o modificar las diferentes preguntas y las encuestas que la englobaban.


En el archivo se incluye toda la documentación previa, incluyendo diagramas de flujo de datos, casos de uso y todo lo necesario para comprender el funcionamiento interno de la aplicación.

Descargar