Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Configurar NeoPixels con Vixen Lights y Arduino: Guía Paso a Paso

Componentes y materiales

Arduino Nano R3 × 1
Arduino UNO × 1
Tira de píxeles 60 píxeles/metro (WS2812B) × 1
Resistencia 470 Ω × 1
Fuente de alimentación 5V, 40A × 1
Protoboard (genérica) × 1
Cables Dupont × 1

Herramientas necesarias

Aplicaciones y servicios en línea

Sobre este proyecto

Este tutorial está disponible en inglés y español. Desplázate hacia abajo para la versión en español.

¿Qué es Vixen Lights?

Vixen Lights es un software de automatización de iluminación para proyectos "hazlo tú mismo" (DIY). La versión 3.x fue rediseñada completamente para soportar luces de "píxeles" direccionables.

¿Qué es un píxel?

Un píxel es un grupo de 3 diodos emisores de luz (LED) que corresponden a los tres colores primarios: rojo, verde y azul (RGB). La intensidad de cada LED puede variarse para crear una amplia gama de colores. Los píxeles WS2812B utilizados en este ejemplo incluyen un circuito integrado (IC) que recibe datos por un puerto, muestra la información dirigida a ese píxel y pasa los datos al siguiente. Las tiras de píxeles RGB direccionables suelen tener 3 cables: alimentación, tierra y datos. En cambio, las tiras RGB "tontas" (no direccionables) tienen 4 cables: uno para alimentación y uno para cada color (R, G, B).

Configurar NeoPixels con Vixen Lights y Arduino: Guía Paso a Paso

Consideraciones de alimentación

Los píxeles RGB consumen mucha energía. Aunque el Arduino puede alimentar unos pocos píxeles mediante su regulador de voltaje integrado, rápidamente se quedará sin capacidad. Por ello, es imprescindible usar una fuente de alimentación externa. El voltaje depende de las luces adquiridas; en este caso son de 5V. Cada píxel a blanco pleno consume aproximadamente 60 mA. Para 150 píxeles, se necesitan unos 9A.

Las finas pistas de cobre de las tiras LED causan resistencia y caída de voltaje. Si el voltaje en el píxel cae demasiado, pueden aparecer parpadeos, atenuación o fallo total. Para evitarlo, se debe "inyectar" alimentación en puntos intermedios de la tira: cortar la pista, puentear la línea de datos y añadir nuevos cables de alimentación y tierra que vuelvan a la fuente. El grosor del cable debe ser suficiente para minimizar la caída de voltaje según la distancia y la corriente.

Siempre es mejor sobredimensionar la fuente de alimentación. Se recomiendan fuentes de 40A o 60A, o varias fuentes conectando todas sus tierras en común.

Arduino como controlador

Muchas placas Arduino principales pueden actuar como intermediarias entre el PC que ejecuta Vixen Lights y las tiras de píxeles. Las limitaciones de hardware (velocidad del procesador, RAM, almacenamiento) suelen ser secundarias; el mayor cuello de botella es la velocidad del puerto serie. La mayoría de los Arduino no superan los 115.200 baudios. Transmitir los datos de color para 150 píxeles (450 canales) a esa velocidad tarda unos 45 ms, permitiendo una tasa de refresco de ~20 Hz (cada 50 ms).

Configurar NeoPixels con Vixen Lights y Arduino: Guía Paso a Paso

El código de este tutorial se basa en el trabajo de David Hunt (blog.huntgang.com).

Configuración del puerto serie en Vixen

Para usar el Arduino como controlador, debe configurarse dentro de Vixen 3.x:

Paso 1: Añadir controlador serie genérico

En el menú superior derecho, selecciona "Add Generic Serial Controller".

Configurar NeoPixels con Vixen Lights y Arduino: Guía Paso a Paso

Paso 2: Definir número de salidas

El número de salidas debe ser 3 × número de píxeles. Para 30 píxeles, configura 90 salidas.

Configurar NeoPixels con Vixen Lights y Arduino: Guía Paso a Paso

Paso 3: Configurar puerto COM y baudios

Haz clic en el icono de engranaje (esquina inferior derecha). Selecciona el puerto COM correspondiente a tu Arduino (ej. COM13) y establece la velocidad a 115200 baudios. El resto de parámetros déjalos por defecto.

Configurar NeoPixels con Vixen Lights y Arduino: Guía Paso a Paso

Paso 4: Establecer cabecera con número de píxeles

En el campo "Header Text" introduce el número de píxeles en formato de tres dígitos (ej. >>030<< para 30 píxeles). El máximo soportado es 300. Al aplicar, verás parpadear los LEDs del Arduino indicando recepción de datos.

Configurar elemento para los píxeles

Paso 5: Crear elemento "Pixel Strip"

En el desplegable superior izquierdo selecciona "Single Item", pulsa el botón verde "+" y nómbralo "Pixel Strip".

Configurar NeoPixels con Vixen Lights y Arduino: Guía Paso a Paso

Paso 6: Añadir píxeles individuales

Clic derecho sobre "Pixel Strip" → "Add Multiple". Selecciona "Numbered Items", define el nombre base (ej. "Pixel Strip") y el número de píxeles (30). Verifica la lista y pulsa OK.

Configurar NeoPixels con Vixen Lights y Arduino: Guía Paso a Paso

Paso 7: Configurar manejo de color

Selecciona "Pixel Strip" y en la esquina inferior izquierda ("Configure:") elige "Color Handling". Marca: "They can be any color: they are full RGB and mix to make any color."

Configurar NeoPixels con Vixen Lights y Arduino: Guía Paso a Paso

Paso 8: Vincular elemento al controlador (Patch)

Resalta "Pixel Strip" a la izquierda y "Generic Serial Controller" a la derecha. El número de "Unconnected Patch Points" debe coincidir. Pulsa "Patch Elements to Controllers".

Configurar NeoPixels con Vixen Lights y Arduino: Guía Paso a Paso

Paso 9: Verificar vista gráfica

La vista gráfica debería mostrar los píxeles mapeados correctamente.

Configurar NeoPixels con Vixen Lights y Arduino: Guía Paso a Paso

Crear mi primera secuencia

Paso 10: Nueva secuencia

Abre Vixen y haz clic en "New Sequence…".

Paso 11: Importar audio

Menú Tools → Audio → Import Audio. Se recomienda formato MP3.

Paso 12: Ajustar línea de tiempo

Usa las lupas (+ / -) en la barra superior para hacer zoom en la línea de tiempo.

Paso 13: Detectar beats (pulsos)

Tools → Audio → Beat/Bar Detector. Aparecerán líneas blancas alineadas a los golpes de la música.

Paso 14: Añadir efectos

En el menú izquierdo "Effects", hay dos submenús: "Basic Lighting" y "Pixel Lighting". Ambos funcionan con píxeles. Arrastra el efecto "Chase" sobre la línea de tu "Pixel Strip" y redimensiona con el ratón.

Paso 15: Personalizar efecto

Selecciona el efecto en la línea de tiempo; a la derecha aparecerán opciones: dirección, color, pulso, profundidad, etc. Activa "Effect Preview" para previsualizar.

Paso 16: Reproducir y disfrutar

Pulsa Play (esquina superior izquierda). ¡Diviértete! En YouTube hay muchos ejemplos.

Nota: Al conectar el Arduino y abrir Vixen, verás parpadear el LED RX del Arduino: indica que está esperando datos por el puerto serie.

Código

Librería FastLED

Instala la librería FastLED en Documentos/Arduino/libraries desde fastled.io.

Código para Arduino

Copia y pega en el IDE de Arduino:

/* Vixen Lights 3.x - Arduino Generic Serial for Addressable Pixels
 * Conecta la línea de datos (WS2811/WS2812) al pin 6 del Arduino.
 * Requiere librería FastLED (https://fastled.io).
 * Configura en Vixen: Generic Serial Controller, 3×píxeles canales, 115200 8N1.
 * Tutorial completo en blog.huntgang.com
 * Creado 8 nov 2014 por Richard Sloan (www.themindfactory.com) y David Hunt (blog.huntgang.com)
 * Versión 1.4
 */
#include <FastLED.h>

#define NUM_LEDS 300
#define DATA_PIN 6

CRGB leds[NUM_LEDS];

void setup() {
  Serial.begin(115200);
}

void loop() {
  int cnt;
  unsigned int num_leds, d1, d2, d3;

  for(;;) {
    cnt = 0;
    // Esperar cabecera '>>'
    while(!Serial.available()); if(Serial.read() != '>') continue;
    while(!Serial.available()); if(Serial.read() != '>') continue;
    // Leer 3 dígitos
    while(!Serial.available()); d1 = Serial.read();
    while(!Serial.available()); d2 = Serial.read();
    while(!Serial.available()); d3 = Serial.read();
    // Esperar '<<'
    while(!Serial.available()); if(Serial.read() != '<') continue;
    while(!Serial.available()); if(Serial.read() != '<') continue;

    num_leds = (d1-'0')*100 + (d2-'0')*10 + (d3-'0');
    if(num_leds > NUM_LEDS) continue;

    FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, num_leds);

    do {
      while(!Serial.available()); leds[cnt].r = Serial.read();
      while(!Serial.available()); leds[cnt].g = Serial.read();
      while(!Serial.available()); leds[cnt++].b = Serial.read();
    } while(--num_leds);

    FastLED.show();
  }
}

Esquemáticos

Usa una resistencia de 470 Ω en la línea de datos.

Configurar NeoPixels con Vixen Lights y Arduino: Guía Paso a Paso
Configurar NeoPixels con Vixen Lights y Arduino: Guía Paso a Paso

Proceso de manufactura

  1. Control de Brillo LED con PWM mediante Pulsador en Arduino Mega
  2. Construye un Dispositivo de Levitación Ultrasónica con Arduino – Guía Paso a Paso
  3. Mando universal Android con Arduino, 1Sheeld y control IR
  4. Construye un Voltímetro Inteligente con Arduino y Smartphone – Proyecto DIY Fácil
  5. Registrador de Temperatura y Humedad con Arduino, DHT11 y Ethernet Shield
  6. Construye un tarro inteligente IoT con ESP8266, Arduino y sensor ultrasónico: Monitorización en tiempo real
  7. Medición precisa de frecuencia y ciclo de trabajo con Arduino UNO
  8. Mide la masa de la Tierra con Arduino: Guía paso a paso DIY
  9. Medición de Distancia en Tiempo Real con Sonar Arduino y Visualización en Processing
  10. Contador Inteligente de Plazas de Aparcamiento: Seguimiento en Tiempo Real con Arduino, Processing y PHP
  11. Construye una Brújula Digital en Tiempo Real con Arduino y Processing