Java + µC
Documentación

Se considera el siguiente esquema de interacción entre los distintos componentes del sistema

       

El usuario interactúa tanto con el microcontrolador como con la aplicación en el computador.
los datos leidos a través del micro, se pasan a la aplicación la cual ejecuta una actividad a partir de estos datos 
y de la selección que haya hecho el usuario a través de la interfaz gráfica.



Diagramas UML

Diagrama de clases


*Click para agrandar
En este diagrama se presentan las clases que forman parte de la aplicación así como la forma en que interactuan
con el resto de las clases.

Un detalle más acabado de las clases, se obtiene del mismo programa ejecutando los comandos para javadoc (se explica en archivo README, adjunto)



Diagrama de secuencia

Se presenta el diagrama de secuencia para el primer caso en que se cambia
el color de la bola a partir de la lectura en el potenciómetro



*Click para agrandar


Pruebas y dificultades

Se realizaron varias pruebas y los problemas se enfocan principalemente en los siguientes puntos.

1.
El programa no se terminó, por lo que su funcionalidad es muy limitada.

Solución
Completar el desarrollo del programa

2.
El cambio que logra hacerse a partir de las variaciones de parámetros externos
(entiéndase, potenciometro conectado al microcontrolador), no realiza el cambio a menos
que la simulación se encuentre en ejecución.

Solución

Crear un timer diferente para la lectura del puerto serie. 
Actualmente se utiliza el timer del simulador, lo que limita la lectura 
del puerto sólo al momento en que la ejecución de la simulación
está en curso.

3.
Poder leer un puerto serial emulado en programa java

Solución

Si bien la clase ya existe, hay que añadir un archivo RXTXcomm.jar
al CLASPATH cada vez que se quiere compilar alguna clase. Además, hay que 
añadir las clases que se encuentran en el proyecto a RXTXcomm.jar, ya que 
de otra manera no las reconoce.  Fue difícil sobre todo esto último, ya 
que era algo que no se sabía. Lo que causó mayores dificultades es que 
cada vez que se hacía un cambio en algún método de alguna clase, se debía 
compilar y subir nuevamente al archivo RXTXcomm.jar, ya que de otra manera 
el resto de las clases no interpretaban el cambio en el método. 

Otras dificultades no resueltas:

1.   Cambiar atributos de bola seleccionada: La idea original es 
que el potenciómetro cambie atributos de una bola seleccionada. Esto no 
quiere decir que cambiar la de todas las bolas este malo, ya que también se 
quería lograr. Lo ideal es tener ambas opciones, y que el usuario decida si 
quiere cambiar los de una bola en particular, o los de todas las bolas. 
2.   Cambiar atributos cuando simulación se encuentre detenida: Se debe 
crear un timer nuevo, independiente de MyWorld, el cual cada cierto tiempo 
pregunte al puerto serial el valor del potenciómetro (que va de 0 a 1023). 
Esta solución se supo después de mostrar el proyecto. Se espera implementar 
a futuro.  
3.  Implementar más de un potenciómetro a la vez: La idea es tener 
varios potenciómetros  conectados hacia el microcontrolador en forma 
simultánea. El dato enviado hacia el pc debe contener en forma codificada 
el estado de todos los potenciómetros. Se espera implementar a futuro.
4.   Agregar sonido a la simulación: Se pretende que se pueda manejar 
la intensidad del sonido (choque de bolas, por ejemplo) con el potenciómetro. 

Descargas
Proyecto.zip