frvn componentes — Introducción
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.
Cómo se crea un componente
Sección titulada «Cómo se crea un componente»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 });La opción controller
Sección titulada «La opción controller»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.
Eventos: la forma de leer
Sección titulada «Eventos: la forma de leer»Los componentes son emisores de eventos. Escuchas con .on("evento", manejador).
Los dos eventos más comunes en sensores y entradas:
| Evento | Cuándo se dispara | Qué recibe el manejador |
|---|---|---|
data | De forma periódica (según la opción freq). | El valor o lectura del componente. |
change | Solo 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.
Los métodos encadenan
Sección titulada «Los métodos encadenan»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);Combinar entrada y salida
Sección titulada «Combinar entrada y salida»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());Colecciones (varios a la vez)
Sección titulada «Colecciones (varios a la vez)»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 tresExisten Leds, Servos, Sensors, Motors, Relays, Switches, Buttons,
ESCs, Pins y Led.RGBs.
Variantes y alias
Sección titulada «Variantes y alias»Algunos componentes tienen variantes o un segundo nombre (el mismo objeto):
| Escribes | Es | Para qué |
|---|---|---|
five.Sensor.Digital(pin) | un Sensor de tipo digital | atajo para new five.Sensor({ type: "digital", pin }) |
five.Sensor.Analog | el mismo Sensor | alias del sensor analógico (el default) |
five.Luxmeter | Light | luxómetro |
five.Magnetometer | Compass | magnetómetro |
five.Touchpad | Keypad | panel táctil |
five.IMU / five.Multi | el agregador de sensores (ver Movimiento) | unidad inercial |
Limpieza automática
Sección titulada «Limpieza automática»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.
Secciones
Sección titulada «Secciones»- 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.