Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Настройка NeoPixels с Vixen Lights и Arduino: Пошаговое руководство

Компоненты и расходные материалы

Arduino Nano R3 × 1
Arduino UNO × 1
Лента пикселей 60 пикселей/метр (WS2812B) × 1
Резистор 470 Ом × 1
Блок питания 5В, 40А × 1
Макетная плата (Breadboard) × 1
Провода Dupont (перемычки) × 1

Необходимые инструменты

Программное обеспечение и сервисы

О проекте

Что такое Vixen Lights?

Vixen Lights — это программное обеспечение для создания собственных световых шоу и автоматизации дисплеев. Версия 3.x была полностью переработана для поддержки адресуемых «пиксельных» лент.

Что такое пиксель?

Пиксель — это группа из трёх светодиодов (красного, зелёного и синего), чья интенсивность может варьироваться для получения любого цвета. Пиксели WS2812B содержат встроенный контроллер, принимающий данные по одному проводу, отображающий свой цвет и передающий данные дальше. Адресуемые RGB-ленты легко узнать по трём проводам: питание, земля и данные. Обычные («глупые») RGB-ленты имеют четыре провода.

Настройка NeoPixels с Vixen Lights и Arduino: Пошаговое руководство

Питание ленты

RGB-пиксели потребляют много энергии. Arduino может запитать лишь несколько пикселей через встроенный стабилизатор, поэтому нужен внешний блок питания. Напряжение зависит от ленты (в примере 5В). Каждый пиксель на максимальной яркости белого потребляет ~60 мА. Для 150 пикселей это ~9 А.

Тонкие медные дорожки ленты создают сопротивление, вызывая просадку напряжения. Это приводит к мерцанию или неисправностям. Решение — подключать питание каждые 50 пикселей, перерезая ленту и соединяя только линию данных, а питание и землю прокладывая отдельными толстыми проводами от блока питания. Выбирайте сечение проводов с запасом.

Контроллер на Arduino

Большинство плат Arduino подходят как промежуточный контроллер между ПК с Vixen и лентой. Главное ограничение — скорость последовательного порта (обычно 115 200 бод). При передаче 450 байт (150 пикселей × 3 цвета) задержка составляет ~45 мс, что позволяет обновлять ленту 20 раз в секунду.

Настройка NeoPixels с Vixen Lights и Arduino: Пошаговое руководство

Код основан на разработке David Hunt (blog.huntgang.com).

Настройка последовательного порта в Vixen

Шаг 1. Добавьте Generic Serial Controller

В меню справа вверху выберите «Add Generic Serial Controller».

Настройка NeoPixels с Vixen Lights и Arduino: Пошаговое руководство

Шаг 2. Установите количество выходов

Количество выходов = 3 × число пикселей. Для 30 пикселей — 90 выходов.

Настройка NeoPixels с Vixen Lights и Arduino: Пошаговое руководство

Шаг 3. Настройте COM-порт

Нажмите значок шестерёнки внизу справа. Выберите COM-порт Arduino (в примере COM13) и скорость 115200 бод. Остальные параметры оставьте по умолчанию.

Настройка NeoPixels с Vixen Lights и Arduino: Пошаговое руководство

Шаг 4. Заголовок с количеством пикселей

В поле «Header Text» введите трёхзначное число пикселей с ведущими нулями. Для 30 пикселей — >>030<<. Arduino начнёт мигать, получая данные.

Настройка элемента для пикселей

Шаг 5. Создайте элемент Pixel Strip

В выпадающем списке слева выберите «Single Item», нажмите зелёную кнопку «+», назовите «Pixel Strip».

Настройка NeoPixels с Vixen Lights и Arduino: Пошаговое руководство

Шаг 6. Добавьте все пиксели

Правый клик на «Pixel Strip» → «Add Multiple» → «Numbered Items». Имя: «Pixel Strip», количество: 30. Нажмите OK.

Настройка NeoPixels с Vixen Lights и Arduino: Пошаговое руководство

Шаг 7. Настройте цвет

Выделите «Pixel Strip», в свойствах «Color Handling» выберите «They can be any color: they are full RGB and mix to make any color».

Настройка NeoPixels с Vixen Lights и Arduino: Пошаговое руководство

Шаг 8. Привяжите элемент к контроллеру

Выделите «Pixel Strip» слева и «Generic Serial» справа. Число «Unconnected Patch Points» должно совпадать. Нажмите «Patch Elements to Controllers».

Настройка NeoPixels с Vixen Lights и Arduino: Пошаговое руководство

Шаг 9. Проверка

Графическое представление должно выглядеть как на скриншоте.

Настройка NeoPixels с Vixen Lights и Arduino: Пошаговое руководство

Создание первой последовательности

Шаг 10. Новая последовательность

Vixen → New Sequence…

Настройка NeoPixels с Vixen Lights и Arduino: Пошаговое руководство

Шаг 11. Импорт аудио

Tools → Audio → Import Audio (MP3).

Настройка NeoPixels с Vixen Lights и Arduino: Пошаговое руководство

Шаг 12. Работа с таймлайном

Используйте лупы (+/−) для масштабирования временной шкалы.

Настройка NeoPixels с Vixen Lights и Arduino: Пошаговое руководство

Шаг 13. Детектор биттов

Tools → Audio → Beat/Bar Detector. Белые линии меток биттов помогут синхронизировать эффекты.

Настройка NeoPixels с Vixen Lights и Arduino: Пошаговое руководство

Шаг 14. Добавление эффектов

В меню Effects выберите «Chase» (Basic Lighting или Pixel Lighting), перетащите на строку Pixel Strip, растяните мышью.

Настройка NeoPixels с Vixen Lights и Arduino: Пошаговое руководство

Шаг 15. Настройка эффекта

Выделите эффект, справа появятся параметры: направление, цвет, пульсация, глубина. Включите Effect Preview.

Настройка NeoPixels с Vixen Lights и Arduino: Пошаговое руководство

Шаг 16. Запуск

Нажмите Play (левый верхний угол). Наслаждайтесь! На YouTube много примеров.

Примечание: При подключённом Arduino и запущенном Vixen светодиод RX на плате будет мигать — это значит, что Arduino ждёт данные.

Код для Arduino

Требуется библиотека FastLED (установите через Library Manager или с fastled.io).

/* Vixen Lights 3.x - Arduino Generic Serial for Addressable Pixels
 * Подключите линию данных (WS2811/WS2812) к пину 6 Arduino.
 * Установите библиотеку FastLED с https://fastled.io
 * В Vixen 3.x настройте Generic Serial Controller: 115200, 8, none, 1.
 * Каналов = 3 × число пикселей.
 * Создайте элемент «Multiple Items (1 × число пикселей)», тип RGB.
 * Авторы: Richard Sloan (www.themindfactory.com) и David Hunt (blog.huntgang.com)
 * Версия 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;
  unsigned int d1, d2, d3;

  for(;;) {
    cnt = 0;
    // Ожидание заголовка '>>'
    while(!Serial.available()); if(Serial.read() != '>') continue;
    while(!Serial.available()); if(Serial.read() != '>') continue;
    // Три цифры количества пикселей
    while(!Serial.available()); d1 = Serial.read();
    while(!Serial.available()); d2 = Serial.read();
    while(!Serial.available()); d3 = Serial.read();
    // Окончание заголовка '<<'
    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();
  }
}

Схема подключения

Используйте резистор 470 Ом на линии данных.

Настройка NeoPixels с Vixen Lights и Arduino: Пошаговое руководство
Настройка NeoPixels с Vixen Lights и Arduino: Пошаговое руководство

Производственный процесс

  1. Управление яркостью LED с ШИМ через кнопку на Arduino Mega
  2. Создание ультразвукового левитатора на Arduino: пошаговое руководство
  3. Универсальный Android-пульт на Arduino, 1Sheeld и ИК-управлении
  4. Умный вольтметр на Arduino и смартфоне — простое DIY-проект
  5. Логгер температуры и влажности на Arduino с DHT11 и Ethernet Shield
  6. Умная банка на ESP8266 + Arduino: мониторинг наполненности в реальном времени
  7. Точное измерение частоты и коэффициента заполнения на Arduino UNO
  8. Измерение массы Земли с Arduino: пошаговое руководство по DIY
  9. Измерение расстояния в реальном времени: Ардуино-сонар с визуализацией в Processing
  10. Цифровой компас в реальном времени на Arduino и Processing