Cronómetro para MicroMouse y LineFollower con conectividad WiFi para visualización de interfaz gráfica web, permitiendo una simple integración con OBS y softwares similares. Además, tambien posee integración con nuestro sistema de inicio de robots IRStart, desde el cual se podrá detener y reiniciar el cronómetro a distancia.
IRTimer se construye sobre una única PCB de 6 capas. Lo que determina su función es el firmware que se le cargue:
| Modo Main | Modo Aux | |
|---|---|---|
| Disciplina | LineFollower | Micromouse |
| Rol | Host central + cronómetro | Sensor de pared (START o FINISH) |
| Display TFT | ✅ ST7789 135×240 | — |
| WiFi | Servidor web + SSE | Escaneo de canal |
| ESP-NOW | Recibe comandos | Envía comandos |
| RC5 IR | ✅ Mando a distancia | — |
El modo Main está pensado para situarse cerca de la línea del circuito para detectar el paso de los robots detectando su paso a través de un sensor infrarojo situado en la parte posterior del mismo.
Este modo es el encargado de conectarse a la red WiFi local y montar un servidor web para la visualización de cronos en tiempo real. Este servidor web está pensado para poder integrarse de forma simple a modo de overlay en programas de streaming como OBS Studio para mostrar de forma más dinamica a la audiencia los tiempos de los robots. También será el encargado de recibir los comandos de inicio y parada desde los módulos en modo Aux mediante ESP-NOW.
- Microcontrolador: ESP32-C3 supermini
- Pantalla: LCD de 135x240 RGB TFT (ST7789)
- Sensor: Sharp GP2Y0D815Z0F (15cm)
- Receptor IR 38kHz: TSSP77038TR
- LEDs: 2x LEDs RGB (WS2812B)
- LiPo: Batería 1S 1500mAh 523450
El modo Aux comparte la misma PCB pero prescinde de pantalla y botones. En este caso, el sensor está embebido dentro del propio poste para interferir lo mínimo posible con las lecturas del robot. Además, el diseño del poste permite multitud de colocaciones para facilitar el montaje en el laberinto.
Las paredes se comunican mediante ESP-NOW con el Main enviando los comandos de START y STOP del cronómetro. Una vez la pared de inicio ha dado la señal, se queda inactiva hasta que se mantenga el sensor detectando por unos segundos para evitar que se inicie una nueva vuelta si el robot vuelve a la casilla inicial (sobre todo en reconocimiento).
- Microcontrolador: ESP32-C3 supermini
- Sensor: Sharp GP2Y0D815Z0F (15cm)
- LEDs: 2x LEDs RGB (WS2812B)
- LiPo: Batería 1S 1500mAh 523450
Tiene un tamaño muy reducido, menos de 50x50mm, que permite encargarse en los principales fabricantes de PCB con acabado en Oro para más alucinancia. Además, también tiene un total de 6 capas, siendo la primera PCB de OPRobots en tener más de 2 capas.
Contiene los componentes necesarios para cargar la LiPo mediante el conector USB-C del propio ESP32, además de un lector de batería para avisar en caso de que la batería esté baja. Permite la conexión de los RGB tanto en vertical para el modo Main como en horizontal para los módulos en modo Aux.
- Hardware — MCU, PCB 6 capas, pinouts, display, chasis 3D, tabla comparativa Main/Aux
- Arquitectura Software — Main loops, máquinas de estado, ISR RC5, callback ESP-NOW, diferencias entre modos
- Comunicaciones — ESP-NOW, WiFi/SSE, RC5 IR, Serial
- Sensores — Sharp GP2Y0D815Z0F (ambos modos), batería ADC
- Menú — Navegación, botones, control RC5 (solo Modo Main)
- Debug — Salida serie, LEDs de estado en cada modo
- Batería y LEDs — Monitorización LiPo, carga, WS2812B en ambos modos
- Problemas Conocidos — 14 issues (4 críticos, 7 moderados, 3 leves)
| Componente | Detalle |
|---|---|
| Microcontrolador | ESP32-C3 supermini |
| Framework | Arduino (espressif32) |
| Entorno | PlatformIO |
| Lenguaje | C++17 |
| PCB | KiCad (6 capas, < 50×50 mm) — misma para ambos modos |
| Carcasa | Onshape (STL disponibles) |
| Licencia | GPL v3 |


