Saltar al contenido principal

Introducción a JARU IDE

¿Qué es JARU IDE?

JARU IDE es el entorno de desarrollo integrado oficial para el lenguaje de programación JARU. Nació con un objetivo claro: eliminar las barreras entre la idea y el dispositivo. Cuando trabajas con sistemas embebidos, cada minuto cuenta, y JARU IDE está diseñado para que puedas centrarte en lo que realmente importa: crear soluciones que funcionen en el mundo real.

Vista general de JARU IDE con editor de código, explorador de proyectos y paneles de desarrollo

El IDE proporciona un flujo de trabajo completo para escribir, depurar y desplegar código JARU en dispositivos ESP32, ESP32-S3 y ESP32-P4 (arquitectura RISC-V). Además, incluye una máquina virtual de Windows que te permite desarrollar y probar tu código sin necesidad de tener el hardware físico conectado, algo especialmente útil durante las primeras fases de desarrollo o cuando trabajas fuera del laboratorio.

Un editor pensado para JARU

El corazón de cualquier IDE es su editor de código, y el de JARU IDE ha sido construido desde cero pensando en las particularidades del lenguaje. El resaltado de sintaxis no es genérico: reconoce las construcciones específicas de JARU y las presenta de forma clara y consistente.

El autocompletado inteligente va más allá de sugerir palabras clave. Analiza el contexto de tu código para ofrecerte las funciones y variables que tienen sentido en cada momento. Cuando estás trabajando con drivers de sensores o configurando periféricos, el IDE te sugiere exactamente lo que necesitas sin tener que buscar en la documentación.

Editor de código de JARU IDE con resaltado de sintaxis, autocompletado y pestañas de archivos

Una característica particularmente útil es la edición sincronizada de identificadores. Activándola con Ctrl+J, puedes renombrar una variable en todas sus apariciones simultáneamente, evitando los errores típicos de las búsquedas y reemplazos manuales. El formateador de código integrado mantiene tu estilo consistente con un solo clic, y el navegador de símbolos te permite saltar entre funciones y clases sin perder el hilo de lo que estabas haciendo.

Los errores y advertencias aparecen marcados directamente en el margen del editor mientras escribes, permitiéndote corregir problemas antes de intentar compilar.

Depuración sin complicaciones

Depurar código embebido tradicionalmente ha sido un proceso frustrante que requiere herramientas externas y configuraciones complejas. JARU IDE propone un enfoque diferente: desarrolla y depura en la VM de Windows, despliega en ESP32 cuando esté listo.

Ventana Watch de JARU IDE mostrando variables durante una sesión de depuración

La máquina virtual de Windows integrada te permite probar y depurar tu código sin necesidad de tener el hardware conectado. Puedes establecer breakpoints haciendo clic en el margen del editor. Cuando la ejecución se detiene, tienes control total: avanzar línea a línea con Step Over, entrar en las funciones llamadas con Step Into, o salir de la función actual con Step Out. La ventana Watch te muestra el valor de las variables que te interesan en tiempo real, actualizándose con cada paso de ejecución.

Esta capacidad de ver exactamente qué está pasando dentro de tu programa transforma la experiencia de desarrollo: los bugs que antes requerían horas de print y prueba y error ahora se identifican en minutos. Una vez que tu código funciona correctamente en la VM, puedes desplegarlo en tu ESP32 con la confianza de que la lógica está probada.

Flujo de trabajo recomendado
  1. Desarrolla y depura en la VM de Windows con breakpoints y watch
  2. Prueba la lógica de tu programa sin depender del hardware
  3. Despliega en ESP32 cuando el código esté listo y verificado

Simulador GPIO para Windows

Cuando desarrollas código que interactúa con hardware, la VM de Windows no sería completa sin poder probar también el comportamiento de los pines GPIO. El JARU GPIO Simulator cubre exactamente esa necesidad: una ventana independiente que se conecta a la VM mediante memoria compartida y refleja en tiempo real el estado de todos los pines que tu programa esté usando, a una frecuencia de refresco de ~30 fps.

Simulador GPIO de JARU IDE con pines y dispositivos virtuales para probar hardware en Windows

Tabla de pines

La mitad izquierda del simulador muestra una tabla con todos los pines registrados por tu programa. Cada fila refleja el estado actual de un pin e incluye las columnas:

ColumnaDescripción
GPIONúmero de pin
DirectionInput / Output
TypeDigital, ADC, DAC o I2C
PullNone, Pull-Up o Pull-Down
State / ValueNivel digital (HIGH/LOW) o valor analógico (0–4095)
Connected ToDispositivo virtual asociado al pin

Puedes añadir pines manualmente con el botón New GPIO o eliminarlos con Delete GPIO, y la configuración se guarda automáticamente entre sesiones.

Tarjetas de dispositivo

La mitad derecha muestra las tarjetas de dispositivo: componentes virtuales que puedes conectar a cualquier pin para simular el comportamiento del hardware real. Cada tarjeta se vincula a un pin concreto y se actualiza en sincronía con la VM.

DispositivoTipoDescripción
LED Rojo / Verde / AzulSalidaIndicador visual que refleja el estado digital o la intensidad PWM del pin
PulsadorEntradaBotón momentáneo que inyecta un nivel HIGH mientras se mantiene pulsado
InterruptorEntradaConmutador que alterna entre HIGH y LOW con cada clic
PotenciómetroEntrada ADCPerilla que genera valores analógicos de 0 a 4095
Sensor de temperaturaEntrada ADCSimula lecturas de un sensor de temperatura con valor ajustable
FototransistorEntrada ADCSimula variaciones de luz ambiental mediante un control deslizante
OsciloscopioMonitorizaciónMuestra la forma de onda de la señal PWM en tiempo real
Generador de señalEntrada ADCReproduce secuencias de valores desde un archivo CSV o genera patrones automáticos
Tira WS2812SalidaVisualiza en tiempo real una tira o matriz de LEDs NeoPixel con layout configurable (Strip, 8×8, 16×16, 32×8, 8×32, 4×4) y modo de cableado (Sequential, Serpentine H, Serpentine V)

Generador de señal

El generador de señal merece una mención especial. Permite alimentar un pin ADC con datos predefinidos para reproducir escenarios de prueba complejos sin necesidad de hardware real. Puedes configurar el modo de generación (manual, automático o CSV), los límites mínimo y máximo de la señal, el intervalo entre muestras y si la secuencia debe repetirse en bucle. Cargando un archivo CSV puedes reproducir datos reales capturados de un sensor, lo que resulta especialmente útil para validar algoritmos de procesamiento de señal.

Flujo de trabajo con el simulador

Activa el simulador antes de ejecutar tu programa en la VM. Añade manualmente los pines que quieras monitorizar con el botón New GPIO — en cuanto el código llame a GPIO.pinmode(), la configuración del pin (dirección, tipo y modo pull) se reflejará automáticamente en la tabla. Después puedes asociar una tarjeta de dispositivo a cada pin para interactuar con él sin necesidad de tener el hardware conectado.

Tira WS2812

La tarjeta WS2812 permite visualizar en tiempo real el estado de una tira o matriz de LEDs NeoPixel controlada desde tu programa. El display se sincroniza con la VM mediante el área de memoria compartida y solo se repinta cuando la VM marca datos nuevos, lo que mantiene el rendimiento fluido incluso con tiras largas.

Puedes elegir el layout desde el desplegable de la tarjeta: modo tira lineal o distintas configuraciones de matriz (4×4, 8×8, 16×16, 32×8 y 8×32). El modo de cableado determina cómo se mapean los píxeles sobre la cuadrícula: Sequential para tiras con todos los LEDs en fila, Serpentine H y Serpentine V para matrices donde cada fila alterna la dirección de lectura en horizontal o vertical, respectivamente.

El label inferior de la tarjeta muestra en todo momento el número de LEDs activos, el layout actual y el nivel de brillo reportado por la VM.

Gestión de proyectos integrada

JARU IDE entiende que un proyecto es más que una colección de archivos de código. El asistente de proyectos te guía paso a paso en la creación de nuevos proyectos, configurando automáticamente la estructura de carpetas, el archivo principal y los metadatos necesarios. Si prefieres aprender con ejemplos, el IDE incluye proyectos de demostración que puedes explorar y modificar.

Asistente de proyectos de JARU IDE para crear, abrir y configurar proyectos

El explorador de archivos presenta tu proyecto en una vista de árbol familiar, donde puedes crear, renombrar y organizar archivos y carpetas con operaciones de arrastrar y soltar. Los proyectos recientes aparecen en la pantalla de inicio para que puedas retomar tu trabajo con un solo clic. El IDE también genera automáticamente archivos README y de licencia si los necesitas.

Control de versiones sin salir del IDE

El trabajo con Git está integrado directamente en JARU IDE. Puedes ver el estado de tus archivos (qué has modificado, qué es nuevo, qué has eliminado), hacer commits, gestionar ramas y consultar el historial, todo sin abrir una terminal o cambiar de aplicación.

Panel Git de JARU IDE para revisar cambios, commits, ramas y operaciones remotas

La visualización de diferencias te muestra exactamente qué ha cambiado entre versiones, facilitando la revisión de código antes de confirmar cambios. Esta integración resulta especialmente valiosa en proyectos colaborativos o cuando necesitas volver a una versión anterior de tu código.

Herramientas visuales para recursos multimedia

El desarrollo embebido moderno frecuentemente involucra interfaces gráficas, y JARU IDE incluye editores especializados para los recursos visuales que necesitan las aplicaciones.

El editor de imágenes permite cargar, recortar y ajustar imágenes, pero su verdadera utilidad está en la conversión de paletas. Puedes reducir una imagen a 256 colores o aplicar una paleta unificada, optimizando el resultado para las limitaciones de memoria de los dispositivos embebidos. La exportación genera formatos directamente utilizables por el hardware.

Editor de imágenes de JARU IDE para recortar, convertir paletas y preparar recursos gráficos

Para animaciones, el editor de sprites ofrece creación frame a frame con control preciso de temporización. Puedes configurar los FPS, ajustar la alineación de cada cuadro y previsualizar el resultado en tiempo real antes de exportar. Esto elimina el ciclo de exportar, probar en el dispositivo, ajustar y repetir.

Editor de sprites de JARU IDE con frames, vista previa de animación y controles de reproducción

Todo lo necesario para ESP32

Trabajar con microcontroladores ESP32 requiere configurar múltiples aspectos del hardware, y JARU IDE centraliza todas estas tareas en una interfaz coherente.

El flasheo de firmware soporta los diferentes modos de memoria flash (DIO, QIO, DOUT) según las características de tu placa. La configuración de WiFi te permite establecer SSID, contraseña, direccionamiento IP (estático o dinámico) y servidores DNS sin editar archivos de configuración manualmente.

Herramientas ESP32 de JARU IDE para flasheo, WiFi, MQTT, display y monitor serie

Para proyectos IoT, la configuración MQTT está igualmente integrada: broker, puerto, credenciales, niveles de QoS y mensajes de última voluntad (will messages) se configuran desde el IDE. Lo mismo aplica para displays TFT, donde puedes especificar los pines SPI, la resolución y el controlador; y para tarjetas SD, con su configuración de pines correspondiente.

El monitor serie integrado te permite comunicarte con el dispositivo seleccionando el puerto y la velocidad de transmisión desde el IDE. El sistema de archivos SPIFFS queda accesible para almacenamiento persistente, y puedes consultar información del chip como la dirección MAC o el identificador del dispositivo directamente desde las herramientas del IDE.

Biblioteca de drivers I2C

Una de las tareas más repetitivas en desarrollo embebido es escribir el código de inicialización para sensores y actuadores. JARU IDE incluye un gestor de drivers I2C con una biblioteca organizada por categorías que simplifica enormemente este proceso.

Gestor de drivers I2C de JARU IDE con catálogo de sensores y vista previa de código

Cada driver en el catálogo muestra información detallada: el chip que soporta, su dirección I2C, el autor y la versión. Antes de insertar el código en tu proyecto, puedes previsualizarlo para asegurarte de que es lo que necesitas. Al insertar, el IDE genera automáticamente el código de inicialización configurado con los pines SDA/SCL y el puerto I2C que hayas especificado.

Consola de salida

La consola de salida es tu ventana a lo que está sucediendo durante la compilación y ejecución. Los mensajes del compilador aparecen con errores y advertencias claramente diferenciados. El monitor serie muestra la comunicación con el dispositivo en tiempo real. Filtros por tipo de mensaje te ayudan a encontrar lo relevante cuando hay mucha información, y un botón de limpieza te permite empezar con una consola vacía cuando lo necesites.

Plataformas soportadas

JARU IDE permite ejecutar tu código en diferentes entornos según la fase de desarrollo en la que te encuentres:

PlataformaDescripciónEstado
Windows VMMáquina virtual integrada para desarrollo y pruebas sin hardwareDisponible
ESP32 / ESP32-S3Microcontroladores de Espressif para despliegue en dispositivos realesDisponible
ESP32-P4Arquitectura RISC-V, con salida MIPI-DSI para pantallas grandesDisponible

Requisitos del sistema

JARU IDE está diseñado para funcionar en equipos modestos, aunque un hardware más potente mejorará la experiencia especialmente en proyectos grandes:

ComponenteRequisito mínimoRecomendado
Sistema operativoWindows 10Windows 10/11
RAM4 GB8 GB
Espacio en disco200 MB500 MB
Puerto USBPara conexión con ESP32

Primeros pasos

  1. Instalar JARU IDE
  2. Conocer la interfaz
  3. Crear tu primer proyecto
  4. Usar el editor
  5. Depurar tu código
¿Nuevo en JARU?

Si aún no conoces el lenguaje de programación JARU, te recomendamos empezar por la Guía del Lenguaje antes de profundizar en el IDE.

Tema oscuro

JARU IDE incluye un tema oscuro moderno diseñado para reducir la fatiga visual durante largas sesiones de programación.