Модерн-джукебокс: Raspberry Pi + Arduino, LED-визиализация музыки, 3D-корпус
Компоненты и материалы
- Raspberry Pi 3 Model B (или 4) — 1 шт.
- Adafruit Pi Perma Proto Hat — 1 шт. (дочерняя плата для Arduino и LED)
- Arduino Nano R3 — 1 шт. (автор использовал Arduino Micro; Nano/Metro Mini также подойдут с корректировкой пинов)
- LED-лента NeoPixel (WS2812B) 60 LED/м — 1 м (нужно 2 куска: 36 и 22 LED)
- HDMI сенсорный дисплей 5 дюймов (Uctronics/Waveshare) — 1 шт.
- HDMI кабель/переходники (плоский 1 фут, угловые переходники)
- USB-кабели (Micro-USB для тача, короткий для питания Arduino от Pi)
- Конденсатор 1000 мкФ — на шине питания Pi/усилителя
- IQAudio Pi Digi Amp Plus — 1 шт. (усилитель + DAC, теперь бренд Raspberry Pi, ~$30). Питание 5В для Pi и LED берется с него.
- Резисторы 330 Ом — 2 шт. (на линию данных NeoPixel)
- SparkFun Sound Detector — 1 шт. (обязательно для звукореактивных LED!)
- Акустика Dayton Audio RS100-8 — 2 шт. (требуют 3D-печатанных 스페йсеров из-за центрального конуса)
- Акустический провод 18AWG, Переключатели (рокеры), Разъемы DC Jack, Провода 22 AWG
- M2.5 стойки и винты (для стека плат и крепления динамиков)
- Micro SD карта (для Pi)
- Акриловое стекло 3-6 мм (окно в арке с фото пластинки)
- Медленное RGB-светодиодное мерцание (5 мм) — 1 шт. (индикатор питания в "звезде" на решетке)
- Велюр/черная бумага — светонепроходимая подкладка за LED
- 3D-филамент (5 цветов: красный, белый, Fillamentum Vertigo Galaxy, Rapunzel Silver, коричневый). Если красите — минимум 2 катушки белого.
- Блок питания 3.4А (19В) — для IQAudio Digi-Amp Plus.
- Акустическая ткань (grille cloth) — винтажный вид.
- 3-pin screw terminal 5.08mm — для подключения переключателей и LED.
Инструменты
- 3D-принтер (Prusa i3 MK3S или аналогичный, площадь печати ≥ размеров деталей)
- Клеевой пистолет (тонкая насадка)
- Паяльник
- CA-клей (Zap-a-Gap) — для мелких деталей
Программное обеспечение
- Volumio — аудиоплеер (AirPlay, Spotify, Pandora, веб-радио, локальная библиотека). Управление с телефона/ПК.
- Arduino IDE
- GIMP / CorelDRAW — для подготовки фото в окне арки.
Описание проекта
Вдохновение
Автор давно мечтал о классическом джукебоксе. В 2014 г. навыков не хватило, но к 2021 г. освоил 3D-печать и дизайн. Готовые мини-джукебоксы стоят ~$65 (Victrola), крупные — ~$795. Этот проект — премиальный DIY-вариант с уникальным дизайном.
Авторство 3D-модели: Marco Gregorio (GrabCAD) — детализированная модель полноразмерного джукебокса, созданная только по фото из интернета. LED-код: Michael Bartlett (SparkFun, Interactive LED Music Visualizer).
Обзор
Музыкальный плеер на бесплатном Volumio. Добавлено: 3D-корпус, сенсорный LCD, звукореактивные LED. LCD и звук — Raspberry Pi + IQAudio Digi Amp. LED — Arduino Nano на Perma-Proto плате сверху стека. Sound Detector преобразует звук в цифру для визуализации.
Модель Marco масштабирована до 25% (~38 см высотой). В Fusion 360: скрыты лишние части, добавлены крепления для электроники, оптимизирована печать.
Цели дизайна
- Высота ~15 дюймов (381 мм)
- Сенсорный экран: Now Playing / обложка альбома
- Качественный звук (Dayton RS100-8)
- Много анимированных LED (NeoPixel)
- Видно, что 3D-печать (нет пост-обработки) — печать разными цветами филамента
- Никаких печатей >12 часов (нет ночных)
- Минимизация швов и стыков
Уровень сложности: Продвинутый
- Суммарное время печати >75 часов (21 STL-файл, ~12 длинных, остальные 1-2 часа)
- Критичная сборка: строгий порядок, точное позиционирование
- Тесное пространство внутри готового корпуса
Стоимость: Высокая
(Цены в USD, приблизительные)
- Филамент: если красите — 2-3 катушки белого + расходники ~$70-90. Если мульти-цвет без покраски — ~$100+ (зависит от запасов). Автор потратил ~$30 на красный, остальное было.
- Arduino Nano / Metro Mini ~$20
- Adafruit Perma Proto Hat ~$5
- HDMI Touch Screen 5" (Uctronics) ~$53
- Raspberry Pi 3B+ ~$35
- Динамики Dayton RS100-8 (пара) ~$60
- Провода, ткань, разъемы, стойки, кнопки, блок питания ~$40+
- Итого out-of-pocket у автора ~$150 (растянуто на месяцы). При покупке всего нового — значительно больше.
Трудозатраты
- Печать: 75+ часов чистого времени принтера.
- Склейка корпуса (4 этапа, горячий клей): 3-4 часа.
- Монтаж LED-лент: ~1 час.
- Электроника (Volumio, скетч Arduino, пайка, тесты, монтаж стека плат, LCD, переключатели, динамики): 5+ часов.
- Финальная сборка и декор: 1-2 часа.
- Итого сборка ~12+ часов сверху времени печати.
Файлы проекта
Документация, код, STL-файлы на GitHub. STL также на Thingiverse.
3D-печать
21 отдельный STL-файл. Некоторые требуют 2 копии. В репозитории GitHub (папка 3D-Prints) — скриншоты настроек PrusaSlicer (ориентация, поддержки) для каждой детали.
Важно: Фото прототипа отличаются от финальных STL. В релизе исправлено: увеличен бейзел LCD, увеличена монтажная плата, убраны 3D-стойки (заменены на отверстия под винты снизу), упрощена задняя крышка.
Начало работы
Внимательно читайте комментарии в разделе "Components" — они содержат критические детали по выбору компонентов. При замене деталей придется адаптировать дизайн.
Сначала протестируйте электронику ВНЕ корпуса:
- Установите и настройте Volumio.
- Спаяйте Perma-Proto плату.
- Подключите NeoPixel, slow-fade LED, переключатели.
- Установите компоненты на плату.
- Скачайте Arduino-скетч с GitHub, прошейте Arduino.
- Проверьте работу всей системы.
Установка Volumio
Следуйте гайду на сайте Volumio для вашей Raspberry Pi. Соберите стек: Pi → IQAudio Digi Amp (на гребенке Pi, стойки 5 мм). Подключите 2 jumper-провода к +5V и GND на Digi Amp — они пойдут на Perma-Proto для питания NeoPixel.
_4dxCv32yCp.jpeg)
Динамики: 2 пары проводов ~18 см к клеммам IQAudio. Pi питается от IQAudio — НЕ подключайте питание в jack Pi. Включите веб-радио в Volumio для теста звука.
Настройки Volumio для IQAudio Digi Amp Plus и Touch Screen плагина (Settings → Plugins → Miscellanea):

Подготовка Perma-Proto платы
Форм-фактор идеально ложится на стек Pi + IQAudio. Плата питается только от 5V/GND IQAudio (стандартный гребенок Pi не используется).
Ориентация: рельса "3.3V" сверху будет использоваться для 5V входа. Применяется нестандартная разводка: перерезание дорожек для размещения множественных соединений в одном столбце/ряду. Это дало компактную разводку.

Важно: 3-pin клеммники имеют шаг 5.08 мм = 2× стандартный шаг 2.54 мм. Контакты клеммника попадают в каждую вторую عبرную пластину. Не заменяйте на 2.54 мм без переразводки платы.
Переключатель режимов анимации (3-pos rocker)
Трехпозиционный рокер:Pos 1 — LED реагируют на музыку; Pos 2 — радужный "chaser" без звука; Center — LED выключены (кроме grille). Переключатель ОБЯЗАТЕЛЬНО должен быть подключен.
Провода ~18 см (2 черных GND, 1 красный +V) к клеммнику на плате.
NeoPixel ленты
Снимите силикон. Разрежьте: 36 LED (внешние "неоновые трубки") и 22 LED (контур передней решетки). Пайте 3 провода (GND, +V, DIN) к каждому куску, соблюдая направление DIN. В линию DIN впаивайте резистор 330 Ом.

"Звезда" на решетке (Star Light)
В передней решетке 3D-вставка в форме 6-лучевой звезды. За ней RGB slow-fade LED (+V/GND) в 3D-баффле (блокировке света). В линию +V впаян резистор 120 Ом (падение 5В → ~3.4В). Клеится CA-клеем.
Arduino Nano на Perma-Proto
- Установите Nano в гребенки на плате.
- 36-LED строка → терминал к D7.
- 22-LED строка → терминал к D13.
- Sound Detector → в гребенки (VCC, GND, Envelope/Gate).
- Рокер: средний контакт → GND, крайние → D2 (Pos1), D4 (Pos2).
- Питание 5V/GND от IQAudio → в гребенки рельсы 5V на Perma-Proto.
- Slow-fade LED → 5V/GND гребенки.

Прошейте скетч Jukebox LEDs с GitHub. При старте grille-LED проигрывают RainbowCycle (несколько секунд), потом горят постоянно. Neon tubes (36 LED) реагируют на музыку в Pos1, радуга в Pos2, выкл в Center.
Сборка корпуса
Инструменты: тонкий клеевой пистолет, лента (Scotch Gift-Wrap — хорошая адгезия и сдвиг).
Порядок склейки (изнутри наружу): Grille → Neon Tubes → (пауза для монтажа железа) → Case & Base.
Монтаж железа (после склейки Neon Tubes, перед задней стенкой):
- Акриловое окно с фото в арке.
- NeoPixel ленты (вклеиваются в трубки и решетку).
- LCD Touch Screen (винты в стойки арки, HDMI через угловой переходник, USB тач через левую трубку).
- Ткань решетки + Star Light holder (вырезать отверстие под баффл LED).
- Стек Pi/IQAudio/Arduino на монтажную плату (винты в 5-мм стойки Pi). HDMI/USB в Pi. Star Light питание от Digi Amp.
- Клейкий фелт/бумага внутри (противосвет, вырезы под кабели).
- База с переключателями и DC Jack.
Продолжить склейку Case и Base. В конце — динамики и декор.
Опционально: двухчастная задняя крышка на винты.

Монтаж "звезды" и ткани решетки
Вырежьте акрил по шаблону (Dremel, низкие обороты). Заклейте фото за акрилом. Ткань: вырежьте отверстие под Star Light holder (крестовидный надрез). Вставьте баффл с LED, заклейте CA. Натяните ткань на решетку, заклейте края на трубки.

Динамики
Dayton RS100-8 имеют центральный конус, мешающий плотной посадке. Используйте 3D-печатные кольца-спейсеры (файл в комплекте). Закрепите M2.5×15 мм винтами с гайками. Совет: предварительно вклейте кольца к корпусу с винтами для выравнивания, потом закрутите динамики. Один отверстие сзади очень тесное — используйте blu-tack/скотч для удержания гайки.

Декор
Детали (GitHub Parts List): Neon Tube Red Cover, Fan Decoration, Ornament, Case Joint Cover, Top Red Ornament, Top Ornament (2 части). Клеятся CA-клеем. Red Cover выравнивается по середине трубок. Joint Cover накрывает стык. Fan и Ornament — верх/низ Red Cover. Top Ornament собирается отдельно, центрируется по середине арки.

Эксплуатация
Volumio: интуитивный UI. Home / Browse → выбор источника. Pandora/Spotify (платные) в Settings → Plugins → Music Services. AirPlay работает из Apple Music.

Обновление 20.09.2021
Raimund Trierscheid собрал улучшенную версию: 5-мм деревянные панели по бокам для жесткости и лучшего звука.

Производственный процесс
- Понимание немеханических цифровых памяти: SRAM, DRAM и Flash
- Наследие и эволюция классического джукебокса
- Ремесло скрипичного смычка: история, материалы и производство
- Передача данных Adafruit 10DOF IMU с Raspberry Pi 2 в Azure Event Hubs на Windows 10 IoT Core
- Модернизация FMEA: Практическое руководство для инженеров промышленной надежности
- От слоновой кости к бакелиту: прослеживая эволюцию современных пластмасс
- Sprout: продвинутый автополив для комнатных растений на Arduino с Bluetooth-управлением
- UnifiedWater v1: полный набор датчиков качества воды на Arduino MKR GSM
- Переносная система голосования с GSM-связью
- Умные очки для знакомств на Arduino 101 и tinyTILE BLE