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, 12 de abril de 2014

Splitter de audio.

Con esta placa, conseguimos dividir una señal de audio monoaural en 6 partes iguales sin perder ganancia. Fue realizada a doble capa y actualmente se utiliza en el IES Islas Filipinas, ya que fue uno de los proyectos que presenté para fin de curso.


Como siempre, todo lo necesario en la descarga. Esta vez el programa usado fue OrCAD.

Descargar

sábado, 5 de abril de 2014

Lápiz óptico para Vectrex.

Este es uno de mis proyectos favoritos. Es ni más ni menos que un lápiz óptico para la videoconsola Vectrex. El original es difícil (y caro) de conseguir, pero gracias a un fototransistor y una pequeña puerta NAND, podemos conseguir exactamente los mismos resultados.


Así quedó el mío ya con su correspondiente encapsulado. Algunos componentes, como el fotodiodo, pueden ser complicados de encontrar, por lo que es difícil que una tienda de electrónica común pueda tenerlos. El conector sin embargo es un RS232 hembra.

Dentro adjunto documentación, esquema y layout para la placa.

Descargar

sábado, 29 de marzo de 2014

Grabador de PICs

Otro de los indispensables para trabajar en electrónica es un grabador de microcontroladores. Se pueden encontrar en el mercado muchos, pero no es la misma satisfacción que hacer nosotros el nuestro propio.

Este fue el primero que hice y que he usado bastante. Incluso hoy en día me sigue sacando de algún apuro, por lo que además de usarlo para aprender, es una herramienta muy útil ya terminado. Además es muy cómodo, ya que la lectura y escritura es mediante USB y no mediante puerto de serie, como acostumbran muchos.


Es compatible con PicKit y con toda la gama de PIC 16F.
En la documentación podréis encontrar tanto el esquema de la placa, como los componentes necesarios, planteamiento lógico y código fuente. Todo ello para el programa OrCAD.

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

sábado, 1 de marzo de 2014

¡Empezando!

¡Buenas tardes!
Por fin he decidido crear este pequeño espacio, donde poder agrupar mis proyectos, tanto los ya hechos como los que aún están por hacer. En él, tengo planeado enseñar y poder compartir con gente con las mismas inquietudes, las cosas que he hecho y las que voy aprendiendo cada día, explicando cómo se han hecho, esquemas, trucos, utilidades... Todo lo que tenga cabida en este ámbito, que como habéis podido adivinar por el título, tendrá relación con el mundo de la electrónica y la programación.

Así que sin más dilación, me voy a poner manos a la obra y empezar. ¡Saludos!