martes, 21 de mayo de 2013

[Lab CU] Actividad 14: Reflexión final

Como ya hemos mencionado antes, nuestro proyecto se trata de un automóvil cuya cerradura es abierta por medio de un dispositivo con comunicación NFC, así mismo, desarrollar un sistema que permita ofrecer una serie de servicios personalizados a un automóvil utilizando el acceso NFC como login del usuario, los servicios a implementar fueron:

  • Sistema de personalización por cuentas
  • Acceso seguro
  • Servicios de métrica
    • Medir el kilometraje
    • Promedio de las velocidades
    • GPS Tracking y Rutas
  • Abrir y cerrar puertas
  • Activar y desactivar alarmas
  • Reproducir las música preferida del usuario

Se utiliza un servidor para almacenar los datos de cada usuario y realizar los cálculos necesarios para proveer los servicios basados en GPS



¿Qué se logró?

Desde el lado del software:

  • Se logró instalar un servidor dedicado que se encarga de almacenar la información recabada por el sistema
  • Se logró implementar una base de datos que permite almacenar los datos del usuario y crear una cuenta
  • Es posible separar los datos por usuarios y almacenar la información de cada uno individualmente
  • Una vez que se han almacenado los datos del GPS, es posible realizar todos los cálculos de los servicios ofrecidos en el sistema. La información se almacena en forma de archivos *.kml
    • Calcular el kilometraje
    • Medir la velocidad del automóvil
    • Medir el consumo de combustible
    • Guardar las rutas recorridas
  • Se integro una interfaz gráfica que permite ver todos los datos ordenados por usuarios, configurar el sistema, eliminar el historial
Desde el lado del hardware:
  • Se hizo funcionar el lector RFID/NFC junto con el Arduino Uno y el shield Ethernet
  • Se logró simular la apertura de las puertas utilizando un servomotor
  • Se integró el  módulo GPS con la RaspberryPi que permite realizar el seguimiento del dispositivo en tiempo real
  • Se realizo la conexión del RaspberryPi con el servidor




¿Porqué salio bien?

Salio bien porque fueron cosas muy triviales, la mayoría de los integrantes ya cuentan con experiencia trabajando con estos componentes, así mismo, algunos módulos ya había sido desarrollados con anterioridad lo que nos permitió ahorrar una gran cantidad de tiempo de desarrollo.
Hay que tomar en cuenta que las cosas implementadas son muy simples, por ello también fueron rápidas de implementar.



¿Qué faltó?

  • La integración del módulo Arduino con el RaspberryPi
  • Integrar la comunicación bidireccional entre Arduino-Raspberry-Servidor
  • Cifrar los diferentes canales de comunicación
  • Almacenamiento en tiempo real de los datos
  • Integración de la API NFC de android, por consiguiente, falto el lector de dispositivos NFC que fue cambiado por un lector de tags RFID
  • Integración de los servicios de música y la integración de otros servicios multimedia
  • Integración de redes sociales



¿Porqué falto?

Las cosas que faltaron fueron cosas un como más complejas, hablamos de compatibilidad de protocolos , por ejemplo, para comunicar el módulo Arduino con el RaspberryPi.
Además el cifrado de las comunicaciones es algo complejo pues requiere ciertas configuraciones que no fuimos capaces de completar.
No conocer la API NFC de android nos paró en seco, pues el atractivo de nuestro proyecto iba a tener cambiado por otro módulo más común y fácil de implementar.



¿Porqué no se obtuvieron los resultados esperados?

La razón es la misma que se repite semestre tras semestre, la mala organización
La mayoría de los integrantes del equipo tienen responsabilidades adicionales, como el trabajo; a eso se le suma la carga normal de clases lo que consume una gran cantidad de tiempo.
Así también, se suele minimizar el nivel de complejidad de las tareas a realizar, lo que nos hace entrar en un umbral de confianza temporal; obviamente es de esperarse que conforme nos involucramos más en la realización del proyecto nos damos cuenta que las cosas no son tan sencillas como habíamos creído y para ese entonces gran parte del tiempo disponible para hacer el proyecto se ha ido.
Nunca se siguió en realidad la planificación, al analizarla resulta que la misma esta bien estructurada, el error radica que nunca la seguimos al pie de la letra, lo que provoca retrasos que después son difíciles de corregir.



¿Qué estuvo mal?

  • Tener demasiadas ideas y no identificar aquellas más importantes
  • El alcance del proyecto fue superior a nuestras capacidades de desarrollo
  • No tener una persona con la iniciativa suficiente para clasificar las ideas y retirar aquellas que no son útiles y solo sirven para agregar complejidad al usuario.
  • Dejarnos llevar por el entusiasmo de implementar algo innovador pero no informarnos sobre la disponibilidad de las tecnologías requeridas por nuestro proyecto.
  • No medir correctamente la complejidad del proyecto a desarrollar, y peor aún, invertir tiempo y esfuerzo en su implementación en lugar de diseñar algo alternativo con la misma funcionalidad



Lecciones aprendidas

Las lecciones aprendidas son las mismas semestre tras semestre, siempre al final hay que reconocer que se necesita tener una mejor organización.
La planificación final del proyecto no es solo un requisito más, seguirla al pie de la letra ayuda mucho.
Realizar una investigación mas exhaustiva sobre el proyecto que se va a realizar, qué módulos se requieren, verificar que existan las librerias necesarias, buscar si existe un grupo de personas que ofrezcan orientación o apoyo en el tema.
Delegar tareas y actividades a miembros del equipo que realmente se comprometan a terminar y no solo a mostrar un avance parcial, a final de cuentas, es mejor que los módulos estén terminados y hagan su trabajo a tener algunos módulos terminados y otros inconclusos.

1 comentario: