Skip to content

frvn componentes — Introducción

This content is not available in your language yet.

frvn componentes es la API de alto nivel. En vez de manejar pines a mano (eso es frvn), trabajas con objetos que representan piezas de hardware: un LED, un botón, un servo, un sensor… Cada objeto trae métodos y eventos con nombres claros.

Todos se crean con new five.<Componente>(...). La placa de este thing se inyecta sola: no tienes que pasarla.

const led = new five.Led(13);

Hay dos formas de configurarlo:

  • Con un pin (número, cadena como "A0", o un array de pines según el componente): new five.Led(13), new five.Sensor("A0"), new five.Servo(9).
  • Con un objeto de opciones, cuando necesitas algo más que el pin:
const sensor = new five.Sensor({ pin: "A0", freq: 100, threshold: 5 });

Muchos sensores existen como varios chips distintos (por I2C u otros buses). La opción controller elige el chip concreto; el resto de la API es igual:

const termo = new five.Thermometer({ controller: "BMP280" });

Cada componente que lo soporta lista sus controller disponibles en su sección. Los que se conectan a un pin analógico/digital simple no necesitan controller.

Los componentes son emisores de eventos. Escuchas con .on("evento", manejador). Los dos eventos más comunes en sensores y entradas:

EventoCuándo se disparaQué recibe el manejador
dataDe forma periódica (según la opción freq).El valor o lectura del componente.
changeSolo cuando el valor cambia.El valor nuevo.
const sensor = new five.Sensor("A0");
sensor.on("change", () => {
varG.lectura = sensor.value;
});

Cada componente documenta sus eventos propios (por ejemplo, un botón emite down y up; un servo, move:complete) y qué recibe exactamente el manejador.

Casi todos los métodos de actuadores devuelven el propio objeto, así que puedes encadenarlos:

const led = new five.Led(13);
led.on().blink(500);

El patrón más común: un componente de entrada controla uno de salida.

const led = new five.Led(13);
const boton = new five.Button(2);
boton.on("down", () => led.on());
boton.on("up", () => led.off());

Cada componente tiene una versión plural que agrupa varios y reenvía los métodos a todos a la vez:

const leds = new five.Leds([10, 11, 12]);
leds.on(); // enciende los tres

Existen Leds, Servos, Sensors, Motors, Relays, Switches, Buttons, ESCs, Pins y Led.RGBs.

Algunos componentes tienen variantes o un segundo nombre (el mismo objeto):

EscribesEsPara qué
five.Sensor.Digital(pin)un Sensor de tipo digitalatajo para new five.Sensor({ type: "digital", pin })
five.Sensor.Analogel mismo Sensoralias del sensor analógico (el default)
five.LuxmeterLightluxómetro
five.MagnetometerCompassmagnetómetro
five.TouchpadKeypadpanel táctil
five.IMU / five.Multiel agregador de sensores (ver Movimiento)unidad inercial

No tienes que “apagar” los componentes al recargar: en cada guardado la plataforma detiene los componentes del código anterior (intervalos internos incluidos), así que no se acumulan entre recargas. Ver El entorno.

  • Salidas — LED, RGB, matriz, 7 segmentos, relé, servo, ESC, motor, zumbador, registro de desplazamiento.
  • Entradas — botón, interruptor, sensor genérico, pin.
  • Ambiente y sensores — luz, color, movimiento, proximidad, temperatura, humedad, presión, altitud.
  • Movimiento — acelerómetro, giroscopio, brújula, orientación, IMU.
  • Interfaz — teclado, joystick, pantalla LCD.
  • Avanzado — expansor de pines, animación, GPS, array de reflectancia, sleep, utilidades y la placa (bread).
  • No disponible — qué piezas del catálogo no aplican.