Saltar a contenido
← Volver a OPRobots.org

Hardware

IRTimer usa una única PCB (6 capas, < 50×50 mm) que alberga todos los componentes. Lo que determina su comportamiento no es el hardware, sino el firmware que se carga: la misma placa puede operar en Modo Main o Modo Aux según el software flasheado.

Dos modos, una PCB

Componente Modo Main Modo Aux
ST7789 TFT 135×240
Botones (2)
TSSP77038TR (RC5 IR)
Sharp GP2Y0D815Z0F
WS2812B RGB LEDs (2)
ADC batería
Carga LiPo
WiFi STA+AP STA (solo escaneo)
ESP-NOW Receptor Transmisor
  • Modo Main — Host del sistema. Pensado para siguelíneas: se sitúa junto a la línea de meta, detecta el paso del robot con su propio sensor IR, muestra tiempos en la pantalla TFT, monta un servidor web para el overlay OBS, y recibe comandos ESP-NOW de las paredes auxiliares.
  • Modo Aux — Sensor de pared para laberinto de micromouse. Sin pantalla, sin botones, sin receptor RC5. Solo el sensor IR para detectar al robot y ESP-NOW para notificar al Main.

Microcontrolador

Ambos modos usan el mismo MCU: un ESP32C3 supermini soldado a la PCB.

Característica Detalle
Modelo ESP32-C3 supermini
Arquitectura RISC-V 32-bit single-core
Frecuencia 160 MHz
Flash 4 MB
SRAM 400 KB
WiFi 802.11 b/g/n (2.4 GHz)
Bluetooth BLE 5.0 (no usado)
Framework Arduino (espressif32)
Entorno PlatformIO

Periféricos usados (Modo Main)

Periférico Propósito
GPIO Pines digitales (botones, sensor, LEDs, carga)
ADC (12-bit) Lectura de voltaje de batería
SPI (hardware) Display ST7789 (80 MHz)
GPIO Interrupt Receptor RC5 en pin 7 (modo CHANGE)
WiFi STA+AP Servidor web + ESP-NOW
ESP-NOW Recepción de comandos de módulos Aux

Periféricos usados (Modo Aux)

Periférico Propósito
GPIO Pines digitales (sensor, LEDs, carga)
ADC (12-bit) Lectura de voltaje de batería
WiFi STA Escaneo de canal + ESP-NOW
ESP-NOW Envío de comandos al Main

PCB

Diseñada en KiCad, es la primera PCB de OPRobots con 6 capas.

Característica Detalle
Capas 6
Dimensiones < 50 × 50 mm
Acabado ENIG (oro)
Carga Vía USB-C del ESP32-C3
Conectores LED Vertical (modo Main) y horizontal (modo Aux)
Librerías OPRobots/KiCADLibraries (submódulo)

Nota: La PCB es exactamente la misma para ambos modos. Los conectores LED en vertical/horizontal permiten orientar la tira de NeoPixels según la carcasa usada (Main con pantalla o Aux en poste de laberinto).

PCB


Sensores

Sharp GP2Y0D815Z0F

Sensor infrarrojo digital de proximidad. Presente en ambos modos.

Característica Detalle
Modelo Sharp GP2Y0D815Z0F
Tipo Digital (on/off)
Rango ~15 cm
Salida Activa-baja (LOW = objeto detectado)
GPIO Pin 1 (SENSOR_PIN) con INPUT_PULLUP

TSSP77038TR (solo Modo Main)

Receptor de infrarrojos a 38 kHz para decodificar comandos RC5 desde un mando a distancia.

Característica Detalle
Modelo TSSP77038TR
Frecuencia 38 kHz
Protocolo RC5
GPIO Pin 7 (IR_PIN) con interrupción CHANGE

Pantalla (solo Modo Main)

Característica Detalle
Driver ST7789
Resolución 135 × 240 px (RGB 565)
Interfaz SPI hardware
Velocidad SPI 80 MHz
Rotación 3 (landscape)
Pines MOSI: 8, SCLK: 9, CS: 20, DC: 21, RST: 4

La pantalla está montada en vertical en la carcasa del modo Main, formando el panel frontal del cronómetro de siguelíneas.


Alimentación

Común a ambos modos. La carga de la LiPo se realiza a través del conector USB-C del ESP32C3.

Característica Detalle
Batería LiPo 1S 1500 mAh 523450
Carga Vía USB-C del ESP32-C3 (conector integrado)
Monitorización Divisor de tensión + ADC (pin 0)
Pines carga Charging: pin 3, Full: pin 2
LEDs de carga Integrados en el ESP32C3 (CHG LED)

Pinout

La PCB expone todos los pines. Qué pines se usan depende del firmware cargado. Los pines no usados por un modo simplemente quedan sin inicializar.

Modo Main (Host + LineFollower)

Pin Periférico Función
0 ADC BATT_VOLTAGE_PIN — lectura voltaje batería
1 GPIO SENSOR_PIN — sensor IR Sharp (INPUT_PULLUP)
2 GPIO BATT_FULL_PIN — batería cargada (activo bajo)
3 GPIO BATT_CHARGING_PIN — batería cargando (activo bajo)
4 GPIO TFT_RST — reset del display
5 GPIO BTN_BOTTOM_PIN — botón inferior (INPUT_PULLDOWN)
6 GPIO BTN_TOP_PIN — botón superior (INPUT_PULLDOWN)
7 GPIO IR_PIN — receptor RC5 (interrupción CHANGE)
8 SPI MOSI TFT_MOSI — datos al display
9 SPI SCLK TFT_SCLK — reloj del display
10 GPIO NEOPIXEL_PIN — 2× WS2812B RGB LEDs
20 GPIO TFT_CS — chip select del display
21 GPIO TFT_DC — data/command del display

Modo Aux (Paredes de Micromouse)

Pin Periférico Función
0 ADC BATT_VOLTAGE_PIN — lectura voltaje batería
1 GPIO SENSOR_PIN — sensor IR Sharp (INPUT_PULLUP)
2 GPIO BATT_FULL_PIN — batería cargada (activo bajo)
3 GPIO BATT_CHARGING_PIN — batería cargando (activo bajo)
10 GPIO NEOPIXEL_PIN — 2× WS2812B RGB LEDs

Los pines 4–9 y 20–21 existen en la PCB pero el firmware Aux no los usa. Los pines 5–7 quedan sin inicializar (botones y receptor RC5 no aplican).


Chasis / Carcasa

Característica Detalle
Diseño Onshape (paramétrico)
Material PLA / PETG (impresión 3D)
Piezas Cuerpo principal (Main), postes de muro (Aux), soporte PCB, soporte pantalla
STL Disponibles en 3d_model/

Hay dos carcasas distintas, una para cada modo, pero ambas montan la misma PCB. La diferencia está en los accesorios: el modo Main añade pantalla y botones físicos; el modo Aux integra el sensor en el poste del laberinto.

Carcasa


Diagramas de Bloques

Modo Main — Host y Cronómetro de LineFollower

flowchart TD
    MCU[ESP32-C3 supermini]
    Sensor[Sharp GP2Y0D815Z0F]
    IR_Recv[TSSP77038TR]
    TFT[ST7789 135×240 TFT]
    NeoPixel[2× WS2812B RGB]
    Buttons[2× Botones]
    Battery[LiPo 1S + ADC]
    ESP_NOW[ESP-NOW Rx]
    WiFi[WiFi STA+AP]

    Sensor -->|GPIO| MCU
    IR_Recv -->|GPIO INT| MCU
    Buttons -->|GPIO| MCU
    Battery -->|ADC| MCU
    MCU -->|SPI 80MHz| TFT
    MCU -->|GPIO| NeoPixel
    ESP_NOW -->|cmd 27/42| MCU
    MCU -->|HTTP/SSE| WiFi

Modo Aux — Paredes de Micromouse

flowchart TD
    MCU[ESP32-C3 supermini]
    Sensor[Sharp GP2Y0D815Z0F]
    NeoPixel[2× WS2812B RGB]
    Battery[LiPo 1S + ADC]
    ESP_NOW[ESP-NOW Tx]
    WiFi[WiFi STA - escaneo canal]

    Sensor -->|GPIO| MCU
    Battery -->|ADC| MCU
    MCU -->|GPIO| NeoPixel
    MCU -->|cmd 27/42| ESP_NOW
    MCU -->|escaneo| WiFi

Documento generado el 2026-06-29. Ver también Arquitectura Software, Sensores.