Saltar al contenido principal
JARU 0.9.7 · Qué trae

Juegos y proyectos para ESP32, hechos en un solo sitio

JARU es un lenguaje de programación sencillo y un IDE para Windows. Escribes el programa, lo pruebas en el PC sin placa y se lo envías a la placa con un botón.

Gratis · Windows 10 y 11 de 64 bits

JARU IDE depurando SpaceIntruders: el editor de código parado en un punto de parada, la ventana Watch con las variables y el juego en su ventana
El depurador, parado en una línea de SpaceIntruders, con el juego en marcha en la VM de Windows.
4
chips: ESP32, S3, P4 y S31
13
placas con su perfil hecho
20
módulos: pantalla, sonido, red…
38
ejemplos en el instalador

Hecho con JARU

Esto es lo que puedes hacer

Juegos y demos escritos en JARU, en la VM de Windows. Sprites, mapas de tiles, físicas y sonido salen de los módulos del lenguaje, y el mismo código corre en una placa ESP32.

Ver los ejemplos en GitHub

Cómo se trabaja

Del código a la placa en tres pasos

  1. Escribe

    El editor colorea el código, completa los nombres y subraya los errores mientras escribes, sin esperar a compilar.

    El editor de código
  2. Prueba en Windows

    Run ejecuta el programa en la VM de Windows. El depurador lo para donde digas, y el simulador GPIO hace de LEDs, botones y sensores.

    El depurador
  3. Llévalo a la placa

    Elige tu placa en Build › Target y pulsa Run: el IDE compila el programa, lo sube y la placa lo arranca.

    Tu programa en una placa

JARU IDE

Todo lo que lleva un juego, y el hardware

No hace falta otro programa para dibujar, montar las salas, componer la música ni grabar la placa.

Editor de escenas

Monta las salas de un juego sin escribir código: capas de tiles y de imagen, y objetos con comportamientos, reglas y estados. El IDE convierte cada sala en código JARU.

Cómo se usa
El editor de escenas con una sala: la lista de objetos, el lienzo con sus rutas y zonas, y las propiedades del objeto elegido

El lenguaje

Se lee como se piensa

JARU es un lenguaje de tipos dinámicos, con clases y recolector de basura, hecho para caber en un microcontrolador.

  • Bloques con end: sin llaves ni sangrado obligatorio.
  • Clases con herencia, structs, funciones anónimas y try y catch.
  • Display.fps da a los juegos el mismo ritmo en Windows y en todas las placas.
  • El mismo programa, sin cambios, en la VM de Windows y en la placa.
Pelota.aru
use Display

Display.open(320, 240)
Display.fps = 30 // 30 fotogramas por segundo

var draw = Display.draw
draw.colorBG = 0x102040 // el color con el que update() borra la pantalla

var x = 160.0
var y = 120.0
var vx = 90.0 // píxeles por segundo
var vy = 60.0
while (true)
draw.color = 0xFFCC00
draw.circle(x, y, 10, true)
draw.text(8, 8, "Hola, JARU", 0xFFFFFF)
Display.update() // enseña el fotograma y espera al siguiente

x = x + vx * Display.dt
y = y + vy * Display.dt
if (x < 10 or x > Display.viewWidth - 10) then
vx = -vx
end
if (y < 10 or y > Display.viewHeight - 10) then
vy = -vy
end
end

Placas

Tu placa, ya preparada

El IDE trae el firmware de la VM para cada chip y el perfil de 13 placas: eliges la tuya y la pantalla, el sonido y los pines quedan puestos.

ESP32

Pantallas SPI

  • LILYGO T4 v1.3
  • Diymore ESP32 2.8
  • Binghe ESP32 1.96

ESP32-S3

Pantallas SPI, QSPI e i80

  • JARU JaruCade
  • Waveshare ESP32-S3-Touch-LCD-2.8
  • Waveshare ESP32-S3-Touch-AMOLED-1.8
  • Freenove FNK0086
  • Freenove FNK0104
  • LILYGO T-Watch S3
  • Wireless-Tag WT32-SC01 Plus

ESP32-P4

RISC-V, pantallas MIPI-DSI

  • Waveshare ESP32-P4-WIFI6-Touch-LCD-4.3
  • Waveshare ESP32-P4-WIFI6-Touch-LCD-4B

ESP32-S31

RISC-V, nueva en la 0.9.7

  • Espressif ESP32-S31-Korvo-1

Del concepto a la creación, todo empieza con una línea

Instalas el IDE, abres un ejemplo y pulsas Run. La placa puede esperar: todo funciona antes en Windows.

Gratis · Windows 10 y 11 de 64 bits

JARU es un proyecto personal e independiente. Empezó para aprender cómo se hacen un compilador y una máquina virtual, y creció hasta ser un IDE completo. Es gratis.