Serie: Tracking de productividad – Parte 3: Armado y programación del prototipo

En la publicación anterior abordé el diseño conceptual del prototipo que usaré para este experimento. En esta entrega presentaré el proceso de armado del dispositivo, que me ayudará a registrar los eventos críticos de mi desempeño laboral, para posteriormente aplicar diferentes modelos de aprendizaje automático en la fase de análisis de la información.

El alcance de esta entrega es únicamente la construcción y programación del dispositivo. En una siguiente publicación cubriré la parte de captura y almacenamiento de los datos.

Componentes utilizados

El microcontrolador elegido fue un Elegoo Uno, principalmente por su tamaño, simplicidad y bajo costo. Es una opción viable para un dispositivo que no requiere conectividad a distancia ni componentes complejos.

El microcontrolador se conecta a un protoboard y, a su vez, a resistencias, botones y LEDs mediante cables que no requieren soldadura. Esto facilita el armado, la corrección de errores, la escalabilidad e incluso la reutilización de los componentes una vez concluido el experimento.

Proceso de armado físico

Para el armado físico seguí el diagrama presentado en el post anterior, conectando cada grupo de componentes de manera secuencial y utilizando cables de colores para reducir la probabilidad de errores.

El único componente adicional que incorporé, y que no estaba en el diseño original, fue un pequeño pato de hule, que sirve tanto para alojar un buzzer como por diversión.

Arquitectura lógica del prototipo

Antes de pasar a la parte del código, es importante establecer algunas reglas clave sobre el comportamiento del prototipo:

  1. Botón 1: envía el evento de inicio de jornada y enciende el LED correspondiente.
  2. Botón 2: envía el evento de inicio de un bloque de concentración y enciende el LED correspondiente.
  3. Botón 3: envía el evento de fin del bloque, apaga el LED del botón 2, enciende el LED del botón 3 y activa un temporizador de 10 minutos.
    • Si el temporizador llega a 10 minutos, se activa una alarma.
    • Si se presiona cualquier otro botón, se detienen tanto el temporizador como la alarma.
    • Si se presiona nuevamente el botón 3, se reinicia el temporizador.
  4. Botón 4: envía el evento de fin de jornada y apaga todos los LEDs encendidos.

La lógica del dispositivo puede visualizarse conceptualmente en el siguiente diagrama de flujo:

Programación del microcontrolador

Para programar el microcontrolador utilicé el IDE de Arduino, que funciona con lenguaje C++.

Un aspecto relevante del código es que se utiliza el puerto serial del microcontrolador para enviar los eventos, los cuales serán capturados por un script en Python, almacenados en un archivo CSV y finalmente leídos para su análisis.

El código completo está disponible en mi repositorio de GitHub:

https://github.com/AlexBecerril/work-focus-tracker

Primeras pruebas y validación

Para validar el prototipo y realizar las correcciones necesarias en el código utilicé el monitor serial incorporado en el IDE de Arduino.

Conclusiones y siguiente paso

Una vez validada la funcionalidad del dispositivo de captura de eventos, el siguiente paso será generar el mecanismo de captura y almacenamiento de los datos y comenzar a usarlo de manera continua para el experimento.

Leave a Reply

Your email address will not be published. Required fields are marked *