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

RGB-матрица аудиовизуализатор на Arduino (NeoPixel + Spectrum Shield) — полное руководство

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

Компонент Количество Примечание
Arduino UNO 1
Adafruit NeoPixel Shield для Arduino (40 RGB LED, 8x5) 1 WS2812B, управление одним пином
SparkFun Spectrum Shield (2x MSGEQ7) 1 Анализатор спектра 7 полос на канал
Корпус ProtoStax для Arduino (акрил, стыкуемый) 1 Опционально, для готовое устройства
Кнопка тактовая (панельная, SPST) 1 Переключение цветовых схем
Стереоджек 3.5мм панельный (вход/выход) 2 Аудио вход и проходной выход
Кабели аудио 3.5мм (угловые, патч-корд) 2 + 1

Инструменты

О проекте

Устройство визуализирует звук в реальном времени: стереосигнал разбивается на 7 частотных полос на канал (всего 14 значений), амплитуда каждой полосы отображается столбиком на RGB-матрице 8x5 (40 NeoPixel). Используются HSV-цветовые схемы для плавных переходов. Всё помещается в компактный стыкуемый корпус ProtoStax.

Пошаговая сборка

Шаг 1: Монтаж Arduino в корпус ProtoStax

Устанавливаем Arduino Uno на базовую пластину корпуса, добавляем ножки и винты. Конфигурация "Platform" — открытый доступ к плате.

Шаг 2: Подготовка SparkFun Spectrum Shield

Shield поставляется без пинов. Используем разъёмы-столбики (stacking headers) от комплекта NeoPixel Shield (они выше, позволяют поставить NeoPixel сверху).

Проблема: USB и разъём питания Uno мешают плотной посадке Shield.

Решение:

  1. Спилите угол Spectrum Shield над USB/питанием (там прототипирование, не используется).
  2. Подрежьте ножки stacking headers, чтобы Shield сидел плотно.
После модификаций Shield надежно контактирует.

Шаг 3: Установка Adafruit NeoPixel Shield

Впаяйте обычные пины (идущие в комплекте) в NeoPixel Shield. Вставьте его сверху на stacking headers Spectrum Shield. Питание NeoPixel берётся от Arduino (Vin/5V) — суммарный ток 40 LED при яркости 40/255 в пределах возможностей стабилизатора Uno. Терминальный блок на Shield не используется.

Шаг 4: Программный код (демо)

Полный скетч на GitHub: ProtoStax_Audio_Visualizer_Demo.ino.

Основные блоки:

Анализ спектра (Spectrum Analysis)

MSGEQ7 читаются по очереди: сброс (RESET), строб (STROBE), чтение АЦП (A0 — левый канал, A1 — правый). 7 полос: 63Hz, 160Hz, 400Hz, 1kHz, 2.5kHz, 6.25kHz, 16kHz.

Группировка в диапазоны:

Значения 0–1023 усредняются по двум каналам (берётся максимум).

RGB-матрица (NeoMatrix)

Матрица 5x8 (ширина 5, высота 8). Ориентация: NEO_MATRIX_TOP + NEO_MATRIX_RIGHT + NEO_MATRIX_COLUMNS + NEO_MATRIX_PROGRESSIVE. Начало координат (0,0) — верхний левый угол физической матрицы, но логически мы хотим начало внизу слева (низкие частоты, низкая амплитуда). Поэтому матрица инициализируется как 5x8 с началом в TOP-RIGHT и прогрессией по колонкам.

Отображение: для каждой полосы (строки матрицы) амплитуда мапится на 5 колонок: numCol = freq / 204 (1023/5≈204). Рисуется matrix.drawPixel(col, row, color).

Цветовые схемы (HSV)

Используется matrix.ColorHSV(hue) (32-бит) и matrix.setPassThruColor() для обхода 16-битного ограничения drawPixel. Три схемы:

  1. MAGNITUDE_HUE: зелёный→красный/розовый (бас, мид, требл одинаковые).
  2. MAGNITUDE_HUE_2: розовый/синий сдвиг.
  3. HSV_COLOR_WHEEL: циклическое изменение оттенка по всему цветовому кругу.

Переключение схем — через Serial Monitor (ввод 0, 1, 2).

Шаг 5: Тестирование

Подключите аудио источник (телефон, ПК) к входу Spectrum Shield, выход — к колонкам/усилителю. Загрузите скетч, откройте Serial Monitor, вводите 0/1/2 для смены схем. Наблюдайте реакцию на музыку.

Шаг 6: Завершение сборки корпуса

Установите верхние распорки, боковые стенки, панель с аудиоджеками и кнопкой, крышку. Корпус становится монолитным блоком.

Шаг 7: Идеи для развития

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

Spectrum Shield: STROBE->D4, RESET->D5, DC_One->A0, DC_Two->A1. NeoPixel Shield: DIN->D6 (стандартный пин шилда). Питание общее от Arduino.

Файл схемы: изображение в разделе Schematics.

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

  1. Датчик CO2 K30: мониторинг качества воздуха в реальном времени на Arduino
  2. Устройство для общения глухосліпых людей с помощью 1Sheeld и Arduino
  3. Умная копилка: управление монетоприёмником на Arduino Nano
  4. Сборка консоли Pong 24×16 на Arduino Nano и MAX7219
  5. Детектор аудиочастот на Arduino: измеряем пик громкости с высокочувствительным модулем
  6. Управление светодиодом по Bluetooth с Arduino: простой DIY-гид
  7. Интеграция ёмкостного сканера отпечатков DFRobot с Arduino или ESP8266
  8. Как воспроизводить аудио с Arduino UNO и DFPlayer Mini – Пошаговое руководство
  9. Оживление рыбы Billy Bass с любым аудиоисточником — пошаговое руководство
  10. Arduino RGB-микшер цветов: Простой проект для начинающих