Bien, como dijimos en la anterior revisión, nuestro proyecto ya era completamente funcional, habiendo alcanzado los objetivos que nos propusimos inicialmente. Hasta ese punto habíamos conseguido:
- Conectar GPS con software roombo! y procesar los datos que nos proporciona
- Conectar la aspiradora Roomba con el software roombo! y enviar comandos simples desde éste
- Lograr una comunicación iPhone-roombo! mediante sockets
- Aplicación roombo! para el iPhone: interfaz gráfica sencilla con pestaña de configuración
- Envío de comandos desde el iPhone hasta la Roomba
- Implementar un método que nos pase de: Coordenadas pantalla iPhone -> Coordenadas reales->movimientos Roomba
En líneas generales, ese es todo el progreso hasta la pasada revisión, en la que demostramos que ya podíamos manejar la Roomba desde el iPhone de forma bastante eficiente.
Una vez pasado ese "cuello de botella", solo nos quedaba mejorar todo lo que hemos venido haciendo hasta ahora, desde el software roombo! que correrá en el ordenador, hasta la aplicación para el iPhone.
De esta forma, estos días hemos tenido dos líneas de actuación:
- Software roombo!: parte servidor (PC)
Por otra parte, también necesitamos que el programa se encuentre siempre a la espera de que le llegue algún otro parámetro del iPhone, ya que hasta ahora, al haber solo una hebra de ejecución, solo podiamos enviar órdenes desde el iPhone cuando la orden actual se hubiese terminado de ejecutar.
Así, tenemos varias hebras de ejecución a considerar:
>una encargada de obtener periódicamente datos del GPS.
>una hebra que se encuentre escuchando continuamente en el puerto al que el iPhone envía comandos
>otra hebra encargada de recalcular los parámetros y enviarselos a la aspiradora
2. Sofware roombo!: aplicación iPhone.
Como se pudo ver en la revisión, nuestra interfaz era bastante simple, sobre todo la parte que se corresponde al control sobre la pista de deporte, que únicamente mostraba una "View" en la que, al pinchar en algún lugar sobre esta, se enviaban las coordenadas de ese punto a la aspiradora.
Pues bien, no íbamos a dejarlo así y como teníamos previsto, hemos incluido un "MapView" en el que se nos muestra la pista de deporte con las imágenes que nos proporicona "Google Maps". En este mapa, además, podemos ver un pincho o chincheta. Éste nos indica la posición actual de la aspiradora y además, tenemos la posibilidad de arrastrarlo sobre la pista para indicar adónde queremos que se mueva nuestra Roomba.
En esta línea, hemos añadido también la posibilidad de visionar imágenes en tiempo real de la WebCam del ordenador que irá encima de la Roomba, sin nada más que tocar una pestañita que encontraremos en la "chincheta" y que nos mostrará una nueva vista con la imagen en cuestión.
Todo esto lo mostraremos en la próxima revisión.
Por otro lado, estamos trabajando en la implementación del control mediante el uso del accelerómetro. Hasta el momento, sabemos enviar comandos simples con él, pero tenemos que pulir bastante los métodos que utilizamos para ello.
Esto es todo por ahora. Sentimos no poder ofreceros capturas en este momento, ya que nuestro objetivo es poder mostrar todos los avances al mismo tiempo.
Un saludo!