Оглавление:

Переносные фонари для вечеринок: 12 шагов (с изображениями)
Переносные фонари для вечеринок: 12 шагов (с изображениями)

Видео: Переносные фонари для вечеринок: 12 шагов (с изображениями)

Видео: Переносные фонари для вечеринок: 12 шагов (с изображениями)
Видео: БОКОВУШЕЧКА У ТУАЛЕТА в плацкарте 2024, Ноябрь
Anonim
Image
Image
Идея
Идея

Проекты Tinkercad »

Можете ли вы принести свет на вечеринку и сделать ее веселее?

Вот в чем был вопрос. И ответ ДА (конечно).

В этом руководстве рассказывается о создании портативного устройства, которое слушает музыку и создает визуализацию музыки из концентрических колец неопиксельных светодиодов.

Была предпринята попытка заставить устройство «танцевать», то есть двигаться в такт музыке, но обнаружение ударов оказалось более сложной задачей, чем кажется (каламбур не предназначен), поэтому «танцевать» немного неудобно, но все еще есть.

Устройство поддерживает Bluetooth и будет реагировать на текстовые команды. У меня не было времени написать приложение для управления Party Lights (Android или iOS). Если справитесь - дайте мне знать !!!

Если вам нравится эта инструкция, проголосуйте за нее в конкурсе Make It Glow!

Запасы

Чтобы построить Party Lights, вам понадобится:

  • STM32F103RCBT6 Leaflabs Leaf Maple Mini USB ARM Cortex-M3 Module для Arduino (ссылка здесь) - мозг устройства. Эти относительно дешевые устройства настолько мощны, что непонятно, зачем вообще возвращаться к Arduino.
  • Микросхема графического эквалайзера полос MSGEQ7 DIP-8 MSGEQ7 (ссылка здесь)
  • Модуль Bluetooth HC-05 или HC-06 (ссылка здесь)
  • Микрофон Adafruit MAX9814 (ссылка здесь)
  • Стандартный серводвигатель (ссылка здесь) - вы хотите, чтобы ваше устройство «танцевало»
  • CJMCU 61 Bit WS2812 5050 RGB LED Driver Development Board (ссылка здесь)
  • Модуль сенсорных клавиш TTP223, емкостная настраиваемая плата переключателя с самоблокировкой / без блокировки (ссылка здесь)
  • Сверхкомпактный аккумулятор на 5000 мАч с двумя выходами USB Super Slim Power Bank (ссылка здесь)

  • Резисторы, конденсаторы, провода, клей, винты, макетные платы и т. Д. И т. Д.

Шаг 1. Идея

Идея
Идея

Идея состоит в том, чтобы иметь портативное устройство, которое можно было бы разместить рядом с источником музыки и которое создавало бы красочные музыкальные визуализации. Вы должны иметь возможность управлять поведением устройства с помощью кнопок (сенсорных) и Bluetooth.

В настоящее время в Party Lights реализовано 7 визуализаций (дайте мне знать, если у вас есть другие идеи!):

  1. Концентрические красочные круги
  2. Мальтийский крест
  3. Пульсирующие огни
  4. Камин (мой личный фаворит)
  5. Ходовые огни
  6. Светлые деревья
  7. Боковые сегменты

По умолчанию устройство будет циклически просматривать визуализации каждую минуту. Однако пользователь может выбрать одну визуализацию и / или вручную просмотреть их.

Визуализации, которые меняют цветовую палитру, также могут быть «заморожены», если пользователю нравится определенная цветовая комбинация.

И, как еще пара элементов управления, пользователь может изменить чувствительность микрофона и включить / выключить режим "танцевального" серводвигателя.

Шаг 2: Схема и обработка звука

Схема и обработка звука
Схема и обработка звука
Схема и обработка звука
Схема и обработка звука
Схема и обработка звука
Схема и обработка звука
Схема и обработка звука
Схема и обработка звука

Файл схемы fritzing включен в пакет на Github в подпапке "files".

По сути, чип MSEQ7 выполняет обработку звука, разделяя аудиосигнал на 7 диапазонов: 63 Гц, 160 Гц, 400 Гц, 1 кГц, 2,5 кГц, 6,25 кГц и 16 кГц.

Микроконтроллер использует эти 7 полос для создания различных визуализаций, в основном отображая соответствующие амплитуды полос на интенсивность света светодиода и цветовые комбинации.

Источником звука является микрофон с 3 уровнями регулировки усиления. Вы можете переключаться между настройками усиления, используя одну из кнопок, в зависимости от того, насколько далеко / громко находится источник звука.

Микроконтроллер также пытается выполнить обнаружение «биений» на «басовой» полосе 63 Гц. Я все еще работаю над надежным способом обнаружения и поддержания выравнивания ритма.

Использование «сенсорных» кнопок было экспериментом. Я думаю, что они работают довольно хорошо, однако отсутствие отзывов прессы несколько сбивает с толку.

Шаг 3: светодиодное колесо

Светодиодное колесо
Светодиодное колесо
Светодиодное колесо
Светодиодное колесо
Светодиодное колесо
Светодиодное колесо

Ядро визуализации - колесо из 61 светодиода.

Обратите внимание, что деталь представляет собой отдельные кольца, которые вам нужно будет собрать вместе. Я использовал медные провода для линий электропередач (которые также хорошо скрепляют кольца) и тонкие сигнальные провода.

Светодиоды пронумерованы от 0 до 60, начиная с нижнего внешнего светодиода и двигаясь по часовой стрелке внутрь. Центральный светодиод - номер 60.

Каждая визуализация основана на двумерных массивах данных, которые отображают каждый светодиод в определенное положение для целевого сегмента визуализации.

Например, для концентрических кругов есть 5 сегментов:

  • Внешний круг, светодиоды 0 - 23, длина 24 светодиода
  • Второй внешний круг, светодиоды 24 - 39, длина 16 светодиодов
  • Третий круг (центр), светодиоды 40 - 51, длина 12 светодиодов
  • Второй внутренний круг, светодиоды 52-59, длина 8 светодиодов
  • Внутренний светодиод, светодиод 60, 1 светодиод длинный

Визуализация отображает 5 из 7 аудиоканалов и постепенно загорает светодиоды в соответствии с их положением в круговой полосе, пропорционально уровню звука в полосе.

Другие визуализации используют другие структуры и форматы данных, но идея всегда состоит в том, чтобы визуализации управлялись массивами данных, а не кодом. Таким образом, визуализации можно было адаптировать к различным формам (больше или меньше светодиодов, больше полос эквалайзера) без изменения кода, только значения в массивах данных.

Например, так структура данных для визуализации 1 выглядит на скетче:

// Визуализация 1 и 3 - полные 5 кругов составляют байт TOTAL_LAYERS1 = 5; const byte LAYERS1 [TOTAL_LAYERS1] [25] = {// 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 {24, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23}, {16, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39}, {12, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51}, {8, 52, 53, 54, 55, 56, 57, 58, 59}, {1, 60}};

Шаг 4: Визуализации

Визуализации
Визуализации
Визуализации
Визуализации
Визуализации
Визуализации
Визуализации
Визуализации

Пока есть 7 визуализаций и анимация запуска:

Запуск анимации

При включении устройства отображается имитация фейерверка. Предполагалось, что это будет последовательность тестирования светодиодов и сервоприводов, но позже она превратилась в анимированную версию такого теста.

Концентрические красочные круги

Индикаторы окружают дисплей концентрическими кругами, пропорциональными амплитуде соответствующей полосы эквалайзера. Произвольное переключение между часами и против часовой стрелки и медленное вращение цветов на 256 цветовом круге

Мальтийский крест

Одна полоса - это центральный светодиод. Другая полоса - это вертикальные и горизонтальные линии светодиодов, а остальные сегменты представляют каждую полосу эквалайзера. Все сегменты меняют цвета со смещением 128, чтобы сохранить контраст.

Пульсирующие огни

Каждый круг загорается всеми светодиодами в унисон для выделенного диапазона эквалайзера, при этом цвета медленно меняются с небольшим смещением. Полосы эквалайзера постепенно смещаются от одного круга к другому, создавая внешнюю прогрессию.

Камин

Полосы представляют собой полукруги, подсвечиваемые снизу вверх, начиная с ярко-красного и добавляя желтого по пути вверх, имитируя горящий огонь в камине. Изредка беспорядочно вырывается яркая белая «искра». Нет ротации цветов

Ходовые огни

Каждый концентрический круг представляет собой отдельную полосу эквалайзера. Ведущие светодиоды находятся на вертикальной линии ниже центрального светодиода. Когда светодиод загорается пропорционально амплитуде полосы, он начинает «бегать» по соответствующему кругу, медленно уменьшая интенсивность. Поддерживается вращение как по часовой, так и против часовой стрелки с произвольным переключением.

Светлые деревья

Сегменты подсвечиваются по прямой снизу светодиодами вверх, а затем вбок концентрическими полукругами, имитирующими пальмы. Вращение цвета.

Боковые сегменты

Это версия предыдущего Мальтийского креста, в котором используются только 2 диагональных сегмента. Предполагается напоминать значок звуковых волн.

Шаг 5: Сенсорные кнопки управления

Сенсорные кнопки управления
Сенсорные кнопки управления

Есть 4 сенсорные кнопки:

  1. Циклически переключайтесь между визуализациями и сохраняйте текущую, пока не будет выбрана другая (по умолчанию цикл визуализаций каждые 30 секунд)
  2. «Заморозить» / «разморозить» текущую цветовую схему - если вам нравится определенная цветовая комбинация, вы можете заморозить ее - вращение цветов отключено, и визуализация будет продолжена только с этой цветовой палитрой
  3. Отрегулируйте чувствительность микрофона
  4. Включение / выключение "танцевального режима"

В танцевальном режиме устройство будет пытаться определить ритм воспроизводимой в данный момент музыки и поворачивать голову в соответствии с ритмом. Пока что «танцы» скорее неловкие, чем красивые, если честно.

Шаг 6: Обнаружение битов и сервопривод "танцы"

Обнаружение ударов и сервопривод
Обнаружение ударов и сервопривод

Устройство постоянно пытается определить «биение» текущей мелодии как расстояние между последовательными пиками полосы 63 Гц. После обнаружения (и только если танцевальный режим включен) устройство активирует свой серводвигатель, чтобы произвольно поворачиваться влево или вправо в зависимости от ритма.

Приветствуются любые яркие идеи, как сделать это надежнее!

Скетч Music_Test_LED выводит 7 полос эквалайзера способом, подходящим для построения графиков с использованием Arduino IDE.

Шаг 7: 3D-фигуры

3D-фигуры
3D-фигуры
3D-фигуры
3D-фигуры
3D формы
3D формы

Вся сборка Party Lights была разработана с нуля с помощью Autodesk TinkerCAD.

Здесь находится оригинальный дизайн. Папка "files / 3D" на github.com содержит модели STL.

Этот дизайн иллюстрирует, как устройство выглядит в собранном виде.

Все компоненты были напечатаны, а затем собраны / склеены.

В «куполе» размещены микроконтроллер, плата Bluetooth и микрофон. Микроконтроллер размещается на плате размером 40 мм x 60 мм и опирается на специальные направляющие.

Сервопривод расположен в «ножке» купола, а кнопки - в основании.

Батарейный отсек напечатан специально для того типа батареи, который указан в разделе «Расходные материалы». Если вы решите использовать другую батарею, необходимо будет соответствующим образом изменить дизайн отсека.

Шаг 8: Источник питания

Источник питания
Источник питания
Источник питания
Источник питания

Сверхкомпактный аккумулятор на 5000 мАч с двумя выходами USB Super Slim Power Bank, похоже, обеспечивает достаточно энергии для многих часов работы.

Батарейный отсек спроектирован таким образом, что он отделяется от остальной части устройства и может быть заменен отсеком, предназначенным для другого типа батареи.

Штекер USB был размещен и приклеен горячим способом для подключения батареи, когда она вставляется.

Шаг 9: Управление Bluetooth

Управление Bluetooth
Управление Bluetooth

Добавлен модуль HC-05, позволяющий управлять устройством по беспроводной сети.

Когда он включен, устройство создает соединение Bluetooth под названием «LEDDANCE», с которым вы можете соединить свой телефон.

В идеале должно быть приложение, позволяющее управлять PartyLights (выбирать цветовую палитру, имитировать нажатия кнопок и т. Д.). Однако я еще не написал ни одного.

Если вы заинтересованы в помощи в написании приложения для Android или iOS для Party Lights, дайте мне знать!

В настоящее время для управления устройством вы можете использовать приложение терминала Bluetooth и отправлять следующие команды:

  • LEDDBUTT - где «1», «2», «3» или «4» имитирует нажатие соответствующей кнопки. Например: LEDDBUTT1
  • LEDDCOLRc - где c - число от 0 до 255 - позиция желаемого цвета на цветовом круге. Устройство переключится на указанный цвет светодиода.
  • LEDDSTAT - возвращает трехзначное число, состоящее только из нулей и единиц:

    • первая позиция: «0» - цвета не меняются, «1» - цвета меняются
    • вторая позиция: «0» - режим танцев выключен, «1» - режим танцев включен
    • третья позиция: «0» - микрофон с нормальным усилением, «1» - микрофон с высоким усилением

Шаг 10: Управление приложением на основе Blynk

Приложение управления на основе Blynk
Приложение управления на основе Blynk
Приложение управления на основе Blynk
Приложение управления на основе Blynk
Приложение управления на основе Blynk
Приложение управления на основе Blynk
Приложение управления на основе Blynk
Приложение управления на основе Blynk

Blynk (blynk.io) - это аппаратно-независимая платформа IoT. Я использовал Blynk в своей автоматической системе полива растений IoT и был впечатлен простотой и надежностью платформы.

Blynk поддерживает подключение к периферийным устройствам через Bluetooth - именно то, что нам нужно для PartyLights.

Если вы еще этого не сделали, загрузите приложение Blynk, зарегистрируйте и заново создайте приложение Blynk PartyLights, используя скриншоты, приложенные к этому шагу. Убедитесь, что назначение виртуальных контактов такое же, как на скриншотах, в противном случае кнопки в приложении не будут работать должным образом.

Файл "blynk_settings.h" содержит мой личный UID Blynk. Когда вы создадите свой проект, вам будет назначен новый проект.

Загрузите скетч PartyLightsBlynk.ino, запустите приложение. Подключите устройство Bluetooth и наслаждайтесь вечеринкой.

Шаг 11: эскизы и библиотеки

Эскизы и библиотеки
Эскизы и библиотеки

Основной скетч и вспомогательные файлы находятся на Github.com здесь.

В скетче Party Lights были использованы следующие библиотеки:

  • TaskScheduler - совместная многозадачность - здесь (разработано мной)
  • AverageFilter - шаблонный средний фильтр - здесь (разработан мной)
  • Серво - сервоуправление - это стандартная библиотека Arduino
  • WS2812B -NEOPixel control - входит в состав пакета STM32

На этой странице Wiki объясняется, как использовать платы STM32 с Arduino IDE.

Шаг 12: Будущие улучшения

Будущие улучшения
Будущие улучшения

В этом дизайне можно улучшить несколько вещей, которые вы могли бы рассмотреть, если приступите к этому проекту:

  • Используйте ESP32 вместо платы Maple Mini. ESP32 имеет 2 процессора, стеки Bluetooth и WiFi и может работать на частоте 60 МГц, 120 МГц и даже 240 МГц.
  • Меньший дизайн - получилось крупногабаритное устройство. Может быть более компактным (особенно если вы откажетесь от танцевальной идеи и связанного с ней сервопривода)
  • Обнаружение ударов можно бесконечно улучшить. То, что естественно для нас, людей, кажется сложной задачей для компьютера.
  • Можно было бы разработать и реализовать гораздо больше визуализаций.
  • И, конечно же, можно написать приложение для беспроводного управления устройством с помощью классного пользовательского интерфейса.

Рекомендуемые: