Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TRABAJO FINAL
2015 - 2
El presente documento describe las especificaciones tcnicas y administrativas del
trabajo final a desarrollar en el curso de Software para Ingeniera.
Objetivo
Los alumnos debe de trabar en grupo validados por el profesor del curso y desarrollar
utilizando las herramientas de MATLAB un juego clsico de la consola Atari, Pong, as
como el hardware asociado para el control de juego, basado en un mdulo Arduino
Uno.
Pong
Pong era un videojuego de la primera generacin de videoconsolas lanzado por Atari en
1972. Bsicamente es un simulador de un juego de tenis de mesa (Figura 1.1).
Esta presentacin grfica puede cambiar: los colores pueden ser diferentes o presentar
un formato en general diferenciado a la muestra, pero debe de cumplir con las mismas
funcionalidades: mostrar el movimiento de dos paletas laterales en un espacio en donde
un bola rebotara en las paredes inferior y superior, mientras que el estado de los
puntajes de los jugadores de muestra en la parte superior.
El juego debe de ejecutarse de forma continua mientras los jugadores logran sostener la
pelota en el campo, haciendo que esta rebote entre las paletas. Al finalizar el juego se
debe de saber quin en el jugador que ha ganado (ya sea porque as lo indican los
puntajes o por un mensaje expreso que indica quin de los jugadores ha ganado).
Condiciones del juego como trabajo base
El Pong debe de ser un producto final y por lo tanto su uso y juego debe de ser lo ms
natural posible: los movimientos deben de ser suaves y la velocidad de operacin debe
de permitir un juego placentero. Los ejes del grfico tienen que ajustarse para que el
movimiento de las raquetas y de la bola sea natural.
En la interface mostrada en la Figura 1.4 se han eliminado los ejes ya que ese valor tiene
que ser hallado por el equipo de programacin y ciertos rangos de valores, combinada
con la transformacin de los valores de voltaje de entrada va a generar valores de
movimiento natural. Para ocultar el valor de los ejes y parezca una interface grfica y
uno una grfica de MATLAB utilice la instruccin:
axis off;
Esta instruccin no anula los ejes, simplemente no muestra los valores. El equipo de
programacin va a tener que fijar los ejes para que la animacin se muestre de forma
natural.
Otra condicin es que las paletas recorran todo el espacio posible en las paredes
laterales. Cuando el voltaje sea el mnimo en los puertos analgicos del Arduino las
paletas deben estar en la parte ms baja y cuando el voltaje sea el mximo deben estar
en la parte ms alta.
El programa que hace funcionar el juego debe ser una funcin llamada pong. Esta
funcin no tendr argumentos de salida (la salida de la funcin va a ser el juego mismo)
pero si debe de tener un argumento de entrada como mnimo. Este argumento de entrada
debe de ser el nmero de jugadas mxima que el juego se va a sostener hasta que
termine con un ganador. Este valor debe de ser un valor entero positivo mayor que 0 (en
caso de no cumplir con estos criterios la funcin debe devolver un error de funcin en
MATLAB). Cada vez que un jugador pierda el juego debe de iniciar nuevamente hasta
que el nmero de intentos sea igual al nmero ingresado como argumento de entada.
La funcin principal debe de llamar a otra funciones creadas expresamente para
solucionar otros problemas del proyecto: por ejemplo, puede haber una funcin que
retorne un valor en caso que la bola a rebotado con una de las paletas, u otra funcin
que lea los valores de los potencimetros y retorne todos los puntos que conforman la
paleta.
Uno de los problemas con los que puede encontrarse en el momento de la creacin de
funciones es que debe de leer el valor de una variable externa sobre la que no tiene
control. Considere el siguiente caso:
function func_principal(argumento)
a = arduino;
data = otra_funcion(val1,val2);
funcion out = otra_funcion(arg1,arg2)
if readPWMVoltage(a,arg1) == 5
out = 1;
else
out = 0;
end
end
end
programacin, de forma tal que haya implementaciones de Pong que sean mejores que
otras. La mejor implementacin tendr la mxima nota.
Se pueden sugerir algunas mejoras, mejorando el hardware. Considere el hardware dela
Figura 1.5: