Ir al contenido

Interfaz

Componentes para interactuar con una persona: teclas, palanca y pantalla.

new five.Keypad({ controller, ... }). Teclados táctiles, analógicos o matriciales. Soporta multitáctil según el chip.

Opciones

OpciónSignificado
controllerEl chip (ver lista). Obligatorio en la práctica.
pin / pins / addressSegún el controller (un pin analógico, o I2C).
keysArray con las etiquetas de cada tecla (define el alias que recibirás en los eventos). Puede ser array de arrays.
lengthNúmero de teclas (alternativa a keys, para el controller ANALOG).
holdtimems para disparar hold (default 500).

Controllers: MPR121 (y variantes MPR121QR2, MPR121_KEYPAD…), VKEY, ANALOG, AT42QT1070, SX1509.

Propiedades: isMultitouch (bool), value (última lectura cruda).

Métodos: toAlias(indice) → la etiqueta de una tecla; toIndices(raw) → array de índices de teclas activas.

Eventos — todos reciben un objeto { type, which, timestamp }, donde which es la(s) tecla(s) implicada(s) y timestamp es Date.now():

EventoCuándo
down (alias press, tap, hit, touch, impact)al pulsar tecla(s)
up (alias release)al soltar
holdal mantener pulsada más de holdtime
changeen cualquier transición
const teclado = new five.Keypad({
controller: "MPR121",
keys: [["1", "2", "3"], ["4", "5", "6"], ["7", "8", "9"], ["*", "0", "#"]],
});
teclado.on("down", (evento) => {
varG.tecla = evento.which; // la(s) etiqueta(s) pulsada(s)
});

new five.Joystick([xPin, yPin]) o new five.Joystick({ pins: [x, y], ... }). Joystick analógico de dos ejes, auto-calibrado y normalizado a [-1, 1].

Opciones: pins ([xPin, yPin] analógicos), controller (ANALOG default o ESPLORA), invert (invierte ambos ejes), invertX / invertY (un solo eje).

Propiedades: x (posición del eje X en [-1, 1]), y (eje Y en [-1, 1]).

Eventos: data{ x, y } (en cada lectura); change{ x, y } (cuando se mueve).

const joystick = new five.Joystick(["A0", "A1"]);
joystick.on("change", () => {
varG.x = joystick.x; // -1 a 1
varG.y = joystick.y;
});

new five.LCD({ controller, pins, rows, cols, ... }). Pantallas de texto tipo HD44780, en modo paralelo o por expansor I2C. No emite eventos: se controla llamando a sus métodos.

Opciones

OpciónSignificado
controllerPARALLEL (default, conexión directa por pines), JHD1313M1, PCF8574 (y alias LCM1602, LCD2004…), MJKDZ (por I2C).
pinsEn modo paralelo, los pines de control y datos ({ rs, en, data: [...] } o array).
rowsfilas de la pantalla (default 2).
colscolumnas (default 16).
bitMode4 u 8 (default 4).
backlightpin de la retroiluminación (si aplica).
addressdirección I2C (en los controllers I2C).

Propiedades: characters (mapa de caracteres personalizados registrados).

Métodos (devuelven la pantalla salvo createChar)

MétodoQué hace
print(texto, opciones?)escribe texto en la posición actual del cursor
write(codigo)escribe un único carácter por su código
clear()borra toda la pantalla
home()lleva el cursor al inicio
setCursor(col, fila)posiciona el cursor (columna, fila)
cursor(fila, col)con argumentos, posiciona (fila, columna); sin ellos, muestra el cursor
noCursor()oculta el cursor
blink() / noBlink()activa / desactiva el parpadeo del cursor
autoscroll() / noAutoscroll()activa / desactiva el autoscroll
backlight() / noBacklight()enciende / apaga la retroiluminación
on() / off()enciende / apaga el display
createChar(nombre, mapa)crea un carácter personalizado (8 bytes); devuelve su índice (0–7)
useChar(nombre)carga en memoria un carácter predefinido para poder usarlo

Eventos: no emite.

// Pantalla I2C 16x2
const lcd = new five.LCD({ controller: "PCF8574", rows: 2, cols: 16 });
lcd.clear();
lcd.print("Hola Undercromo");
// Segunda línea
lcd.setCursor(0, 1);
lcd.print("Thing en linea");