Datos generales
| Nombre comercial | TiniBot Alfa |
|---|---|
| Marca | Mindblock |
| Fabricante | BITWISE S.A.C. — Perú |
| Categoría | Robot educativo programable por bloques |
| Edad objetivo | 6 a 12 años |
| Nivel educativo | Primaria (1° a 6°) |
| Disponibilidad | Pre-orden 2026 |
| País de fabricación | Perú |
| Software | Plataforma Mindblock — IDE web |
Procesador y memoria
TiniBot Alfa utiliza un microcontrolador de la familia ESP32, ampliamente probado en aplicaciones educativas e industriales. El ESP32 ofrece doble núcleo a 240 MHz, conectividad Bluetooth Low Energy integrada y suficiente capacidad de procesamiento para ejecutar el intérprete del lenguaje TiniScript2 (TS2) en tiempo real, gestionar interrupciones de los encoders y mantener la comunicación BLE simultáneamente.
| Microcontrolador | ESP32 (Tensilica Xtensa LX6, doble núcleo) |
|---|---|
| Frecuencia | Hasta 240 MHz |
| RTOS | FreeRTOS (tareas separadas para BLE e intérprete) |
| Memoria de programa | Suficiente para firmware + buffer de programa de 256 bytes |
| Memoria persistente | Preferences (NVS) — almacena el nombre BLE personalizado del robot |
Motores y movimiento
TiniBot Alfa cuenta con dos motores DC con caja reductora, uno por rueda. Cada motor se controla de forma independiente con PWM por LEDC del ESP32 a 1 kHz, 8 bits de resolución. El control independiente permite avanzar, retroceder, girar en su propio eje y combinar movimientos curvos.
| Cantidad de motores | 2 (uno por rueda) |
|---|---|
| Tipo | DC con caja reductora |
| Control | PWM LEDC a 1 kHz, 8 bits |
| Frenado | HH (high-high brake) — frenado activo, no por inercia |
| Modos de operación | Avance, retroceso, giro izquierda, giro derecha, freno |
| Aceleración | Rampa suave de 200 ms al arrancar para evitar picos de corriente (brownout protection) |
| Sincronización | Control PI sincronizado entre ambos motores para movimiento recto sin desviación |
El frenado HH significa que cuando el robot debe detenerse, los motores activan sus bobinas en cortocircuito para detener la rueda físicamente, no solo cortan la energía. Esto es importante para la precisión: una rueda que sigue rodando por inercia hace impredecible el "avanzar exactamente 2 vueltas".
Encoders y precisión de movimiento
Cada motor de TiniBot tiene su propio encoder óptico que cuenta las vueltas de la rueda en tiempo real. Esto es la característica técnica diferencial frente a robots educativos básicos que se mueven "por tiempo" (avanza X segundos, lo cual depende de batería, fricción y piso).
| Tipo | Encoder óptico, lectura por interrupción de hardware |
|---|---|
| Resolución | 210 pulsos por vuelta de rueda |
| Filtro antirebote | 200 µs (suficiente para distinguir pulsos reales de ruido EMI por PWM) |
| Compensación | Margen de coast dinámico — se calcula al frenar según el PWM aplicado |
| Control en bucle cerrado | PI sincronizado con Kp=5, Ki efectivo=0.5, anti-windup de ±40 |
En términos prácticos: cuando el alumno programa Avanzar 2 vueltas, TiniBot avanza exactamente 2 vueltas. El control PI compara constantemente el conteo de ambas ruedas y corrige desbalances pequeños — esto es lo que evita el "orejeo" típico de robots económicos que se desvían sistemáticamente. Es el nivel de precisión que en competencias internacionales tipo FLL marcan la diferencia entre clasificar y no clasificar.
Comunicación Bluetooth
TiniBot se comunica con la plataforma Mindblock vía Bluetooth Low Energy (BLE) 4.0 o superior. No hay app intermedia: el navegador del usuario se conecta directamente al robot usando la API estándar Web Bluetooth.
| Versión BLE mínima | 4.0 |
|---|---|
| Nombre de advertising | TINIBOT-XXXX (los 4 últimos hex del MAC, por ejemplo TINIBOT-A3F2) |
| Renombrado persistente | El profesor puede renombrar el robot desde Mindblock; el nombre se guarda en NVS y persiste tras reinicios y reflasheos del firmware |
| UUID de servicio | 5b50c66e-3f40-4f4e-87b6-1f62f69b0001 |
| Característica CMD | Write — para enviar comandos al robot (5b50c66e...0002) |
| Característica EVT | Notify — para recibir respuestas del robot (5b50c66e...0003) |
| Característica CFG | Write — configuración persistente del robot (5b50c66e...0004) |
| MTU mínimo | 23 bytes (BLE 4.0 default) |
| Tamaño máximo de mensaje | 256 bytes por programa |
La documentación completa del protocolo BLE está disponible para makers y desarrolladores en el repositorio Mindblock. Esto es deliberado: TiniBot es un robot abierto en su capa de comunicación, no una caja negra.
Lenguaje TiniScript2 (TS2)
Los programas que el alumno construye en Mindblock se compilan a TiniScript2, un lenguaje compacto que se envía por BLE al robot. Conocer la gramática es útil para docentes técnicos y para integradores.
program := step (';' step)*
step := atom | repeat | forever
atom := 'F(' n ')' | 'B(' n ')' | 'L(' n ')' | 'R(' n ')'
| 'W(' n ')' | 'S'
repeat := 'REPEAT(' int ')' '{' program '}'
forever := 'FOREVER' '{' program '}'
F(n) | Avanzar n vueltas (decimal positivo) |
|---|---|
B(n) | Retroceder n vueltas |
L(n) | Girar a la izquierda n vueltas de rueda |
R(n) | Girar a la derecha n vueltas |
S | Detener motores (freno HH) |
W(n) | Esperar n segundos sin moverse |
REPEAT(k){...} | Repetir el bloque k veces (entero) |
FOREVER{...} | Repetir indefinidamente hasta recibir SI|S |
Ejemplo: programa "avanzar 2 vueltas, después repetir 3 veces (girar derecha 1, avanzar 1), detener":
F(2);REPEAT(3){R(1);F(1)};S
Anidamiento: REPEAT puede contener REPEAT y FOREVER sin límite arbitrario; el firmware soporta una profundidad de stack de 8 niveles.
Energía y batería
TiniBot Alfa funciona con baterías AA recargables o alimentación equivalente. La autonomía depende del uso intensivo de motores. Los detalles finales de batería se confirman en el empaque final antes del envío de las primeras unidades de pre-orden.
| Tipo de alimentación | Baterías AA recargables (NiMH recomendadas) o equivalente |
|---|---|
| Protección | Detección de brownout activa — el robot se reinicia de forma segura si el voltaje baja durante un pico de corriente |
| Indicador de carga | LED de estado azul/rojo |
| Autonomía típica | 1.5 a 3 horas de uso activo en aula (depende de qué tan continuo es el movimiento) |
| Standby | BLE activo a bajo consumo cuando no hay movimiento programado |
Botón, buzzer y LED de estado
| Botón de usuario | 1 — usado para encendido/apagado y futuras funciones |
|---|---|
| Buzzer | 1 — pasivo, controlado por PWM. Útil para señales de inicio/fin y melodías (programable en versiones futuras) |
| LED de estado | 1 — indica encendido, conexión BLE, estado de programa |
Dimensiones, peso y materiales
TiniBot Alfa está diseñado para ser manipulado por niños de 6 años en adelante. Las dimensiones finales se confirmarán en el empaque previo a envío. Datos preliminares orientativos para planificación de aulas y mochilas:
| Largo aproximado | Compatible con tabletas de aula y mesas escolares estándar |
|---|---|
| Material chasis | Plástico ABS rígido, apto para uso intensivo en aula |
| Acabado | Pulido, sin partes cortantes ni piezas pequeñas sueltas (cumple normas de seguridad infantil) |
| Ruedas | Caucho con buen agarre en pisos cerámicos, vinílicos y mesas de fórmica |
Navegadores y dispositivos compatibles con Mindblock
Como TiniBot se programa desde el navegador usando Web Bluetooth, la compatibilidad depende del navegador del dispositivo, no del sistema operativo.
Navegadores compatibles
| Google Chrome | Compatible (desde v56). Recomendado. |
|---|---|
| Microsoft Edge | Compatible (basado en Chromium) |
| Opera | Compatible |
| Brave | Compatible |
| Firefox | No compatible — Firefox no implementa Web Bluetooth |
| Safari (iOS / macOS) | No compatible — Apple no implementa Web Bluetooth en Safari |
Sistemas operativos donde funciona
- Windows 10/11 con Chrome, Edge u Opera
- macOS con Chrome (no Safari)
- Linux con Chrome u Opera
- Android 6+ con Chrome
- ChromeOS — compatible
- iOS / iPad — no compatible (limitación de Apple, no de TiniBot)
Para colegios públicos que reciben tabletas MINEDU, todas las tabletas Android distribuidas son compatibles. Para colegios que usan iPad como dispositivo único, se recomienda contar con al menos una laptop o tablet Android por aula para la sesión con TiniBot.
Bloques disponibles en TiniBot Alfa
El alumno construye programas arrastrando bloques en Mindblock. Estos son los bloques que TiniBot Alfa entiende:
| Al ejecutar | Bloque de inicio del programa |
|---|---|
| Avanzar (vueltas) | Mueve TiniBot hacia adelante el número de vueltas indicado |
| Retroceder (vueltas) | Mueve hacia atrás |
| Girar izquierda (vueltas) | Rota sobre su eje a la izquierda |
| Girar derecha (vueltas) | Rota sobre su eje a la derecha |
| Esperar (segundos) | Pausa sin moverse |
| Repetir (N veces) | Repite los bloques internos |
| Por siempre | Repite indefinidamente hasta detener |
| Detener | Frena motores inmediatamente |
TiniBot v1 (próxima versión) añadirá: bloques de sensor ultrasónico, condicional Si/Si-no, buzzer programable y eventos de botón. Línea avanzada futura: bloques de LED RGB, sensor de línea y variables.
Límites y restricciones de la versión Alfa
Por transparencia con docentes y colegios, esta es la lista honesta de lo que TiniBot Alfa no hace hoy. Estas funciones llegan con TiniBot v1 y siguientes.
- No tiene sensor ultrasónico (no detecta obstáculos).
- No tiene sensor de línea (no sigue trayectorias).
- No tiene LEDs RGB programables.
- No tiene condicionales Si/Si-no en el lenguaje TS2 actual.
- No tiene variables en el lenguaje TS2 actual.
- No emite melodías programables desde bloques (el hardware buzzer existe; el bloque viene en v1).
- No tiene WiFi (solo Bluetooth).
- No es compatible con Safari ni Firefox (limitación de Web Bluetooth en esos navegadores).
Esta lista es deliberadamente explícita: TiniBot Alfa cubre con excelencia secuencias, bucles, repetición y movimiento de precisión — la base pedagógica del pensamiento computacional para 6-12 años. Lo demás llega en versiones siguientes y los pre-ordenantes de Alfa tienen acceso preferente al upgrade.