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