Делаем звёздное небо на потолке при помощи оптоволокна и Arduino

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!





Хотите увидеть кусочек галактики у себя на потолке? Как это сделать – рассказано ниже.

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

Немного о самом проекте. Я старался делать всё своими руками по-максимуму, что дало мне полную творческую свободу. В итоге у меня есть созвездия северного полушария, контроль над звёздными скоплениями при помощи пульта д/у (яркость и цвет), реакция на музыку, контроль подсветки, и, что самое важное – возможность изменить всё, что угодно.

В качестве платформы для всего этого я выбрал Arduino, поскольку знаком с его программированием. За реагирование на музыку отвечал чип MSQ7EQ – в интернете полно его описаний. Для связи я использовал завалявшийся у меня NRF24L01. Для управления большим количеством светодиодов хорошо подошёл контроллер сервоприводов PCA9685. Если вам хочется сделать что-то попроще и подешевле, вы можете поискать на Amazon готовые наборы, но если вам интересно делать всё самому, как мне – тогда вам потребуются следующие навыки:

  • Знакомство с программированием Arduino.
  • Опыт разработки электрических схем и пайки.
  • Работа с переменным током.

Многие спрашивают у меня стоимость всего проекта. Довольно сложно дать конкретную цифру, поскольку я потратил много материалов, и всё зависит от того, какую часть вы решите делать самостоятельно, от размера проекта и т.п., однако, я думаю, что он может уложиться в вилку от нескольких сотен до тысячи долларов. Я работал над ним по выходным, и на всё про всё у меня ушло порядка года.

Шаг 1: планирование






Для начала нужно решить, покупать электронную часть или делать самому. Для изготовления схем требуется разбираться в Arduino и основах электроники, и кроме того, есть шанс где-то накосячить. На Amazon и в других магазинах можно найти множество наборов по фразе «Fiber Optic Star Ceiling Kit», так что вариантов тут масса. Но если вам нужна полная творческая свобода и контроль, тогда лучше всё делать самому.

Определившись с электроникой, стоит подумать о структуре потолка, размере звёздной карты и количестве звёзд. Я выбрал вариант с обычным потолком из гипсокартона. У меня низкий потолок, и было достаточно сложно устанавливать оптоволокно, поэтому я остановился на относительно небольшом количестве звёзд, 1200 шт, однако результат всё равно получился потрясающим.

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

Шаг 2: материалы


Теперь, когда всё распланировано, можно заказывать материалы.

Материалы для самого потолка я перечислять не буду, тут всё зависит от используемой системы и других факторов. Я использовал потолок от Knauf. То же касается и инструментов – большая их часть понадобится вам только для установки потолка. Для установки самих звёзд и электроники требуется не так уж много – см. список. Много чего я купил в местных магазинах, а остальное заказал на AliExpress – так дешевле, а качество обычно приемлемое.

Для звёзд и электроники потребуются:

  • Блок питания для светодиодных полос, мощность зависит от длины. В интернете можно найти ресурсы, помогающие подобрать БП для светодиодов. В моём случае у меня был импульсный БП на 12 В, 30 А, 350 Вт для ленты длиной 15 м. При этом ленты требуют по 14,4 Вт/м, поэтому у меня был хороший запас.
  • БП для светодиодов на 3 Вт. Зависит от количества светодиодов, а в моём случае это был БП на 5 В, 7 А, 35 Вт для 15 светодиодов и Arduino. Если вы выберете стандартные RGB светодиоды 5 мм, тогда можно взять БП попроще, однако звёзды будут уже не такими яркими.
  • RGB светодиоды на 3 В с общим анодом и радиатором (или обычные 5 мм светодиоды, если вам не нужна большая яркость). Один светодиод управляет одним скоплением звёзд, поэтому количество зависит от того, сколькими звёздами нужно управлять отдельно.
  • Светодиодная ленты 12 В.
  • Оптоволокно. Леска не подойдёт. Количество зависит от количества звёзд, размера потолка, местоположения управляющей схемы. Я для усиления эффекта использовал волокна разной толщины.
  • Платы PCA9685. С одной платы можно управлять 5-ю RGB светодиодами.
  • Arduino Uno/Mega × 2.
  • NRF24L01 × 2.
  • USB-кабель для питания Arduino.
  • Логические транзисторы IRL540N. Количество зависит от количества полосок светодиодов. 1 шт на один цвет одной полоски. Ограничение длины полоски – 5 м. Если нужно больше, используйте дополнительные полоски. Также существуют варианты соединения полосок в одну длинную – смотрите в гугле.
  • Транзисторы 2N2222 (или другие n-p-n). На каждые 3 Вт одного цвета светодиодов нужно по транзистору. В моём случае это было 15×3.
  • Резисторы. 2 Вт 10 Ом / 2 Вт 6,8 Ом / 2 Вт 6,8 Ом для R, G и B на каждый светодиод 3 Вт соответственно. 5 притягивающих резисторов на 10 кОм, каждый по 0,25 Вт.
  • Конденсаторы на 10 мкФ для развязки NRF24L01.
  • Алюминиевая пластина для фиксации и охлаждения 3 Вт светодиодов.
  • Платы для схем.
  • Макетные платы для тестирования.
  • Шурупчики, фанера, клейкая лента и всё такое, что есть в любой мастерской.
  • Куча проводов разной толщины. Для ШИМ-сигналов можно использовать тонкие провода для прототипирования, но для светодиодных полосок и 3 Вт светодиодов толщину проводов нужно считать в зависимости от расстояния от схемы до светодиодов.

Для пульта д/у и спектрального анализатора:

  • MSGEQ7 × 1
  • Резисторы — 1 × 470 Ω / 1 × 180k Ω / 1 × 33k Ω.
  • Конденсаторы:1 × 33 пФ / 1 × 0.01 мкФ / 1 × 0.1 мкФ.
  • Термопаста для процессоров.
  • ИК пульт д/у и фотодиод для приёмника
  • Куча тонких проводов.
  • Небольшая макетная плата. Я использовал Proto Shield.
  • Небольшой корпус для Arduino. Я сделал корпус при помощи лазерной резки.
  • Другие компоненты, относящиеся к основной схеме. Их количество указано в списке компонентов основной схемы.

Инструменты для установки и пайки:

  • Прозрачный клей, не растворяющий оптоволокно. Я использовал простой канцелярский.
  • Оборудование для пайки.
  • Мультиметр не будет лишним.
  • Отвёртка.
  • Пассатижи.
  • Шило или что-то похожее для проделывания отверстий в потолке. Толщина совпадает с толщиной оптоволокна.

Шаг 3: установка потолка




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

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

На этом шаге делается шпатлёвка и грунтовка, а покраска – уже после установки оптоволокна.

Шаг 4: установка оптоволокна














На это у меня ушло больше времени, чем я предполагал… После множества различных импровизаций мы сошлись на том, что в нашем случае лучше всего размещать оптоволокно при помощи удочки и петли из лески – см. мои мастерски исполненные каракули с пояснениями. Сейчас эта идея кажется мне смехотворной – но кому не нравится иногда повозиться.

Соображения:

  • Рекомендую приклеивать оптоволокно в отверстиях, чтобы оно не выпадало. Клей должен быть прозрачным и не реагировать с оптоволокном. Я использовал простой канцелярский.
  • Сверлить ничего не надо, отверстия можно проделать простым шилом, совпадающим по диаметру с оптоволокном.
  • Для разметки точного местоположения звёзд я использовал только рулетку. Не на 100% точно, но нормально. Для печати карты звёздного неба потолок был великоват.

Шаг 5: окончание отделки потолка – покраска



Мы красили прямо по оптоволокну, поэтому когда оно не светится, его не видно. Всё выглядит как обычный потолок. После двух слоёв краски яркость оптоволокна осталась почти такой же.

Шаг 6: пробная схема










Сама схема не очень сложная, и у меня всё заработало сразу же. Однако всегда лучше сначала проверить, а потом устанавливать – тем более, что в данном случае пайки предстоит очень много. Кроме того, удобно иметь тестовую версию для обновлений в будущем – думаю, никому не захочется закоротить проект, на установку которого в потолок было потрачено несколько дней.

Моя тестовая версия – это одна-две платы PCA9685, NRF24L01 и блоки питания, соединённые с Arduino. Всё можно делать на макетных платах. То же касается и схемы пульта д/у – натыкали всё на макетку, и проверили, что всё работает. Я бы также посоветовал припаять несколько 3 Вт светодиодов для проверки.

Шаг 7: код для Arduino




Библиотеки и другие полезные ссылки я собрал в разделе «полезная информация». Объяснения по работе кода содержатся в комментариях к нему.

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

В коде содержится довольно сложная функция для мигания светодиодами. Для улучшения внешнего вида я использовал обучающий материал, где описано, как сделать «дышащее» мигание: sean.voisen.org/blog/2011/10/breathing-led-with-arduino

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

Код приёмника

Код передатчика

Шаг 8: подключение проводов и светодиодных полосок



















Время финального подключения! Если всё проверено и всё работает, подключение должно пройти без особых проблем – просто пайка кучи одинаковых комплектующих. Для удобства обслуживания всей схемы я сделал коробку из фанеры по размеру технического лючка – поэтому при необходимости я могу просто вынуть всю схему из потолка. Оптоволокно я провёл по пластиковым сантехническим трубам, размер которых примерно совпадает с 3 Вт светодиодами, а потом просверлил отверстия того же диаметра в фанере и вставил их туда. Таким образом я легко могу отсоединять оптоволокно от светодиодов по необходимости.

Светодиодные полоски предлагаю крепить на алюминиевых пластинах для охлаждения, поскольку они сильно греются.

Шаг 9: отладка и тонкая подстройка




Допустим, вы проверили схему, но после того, как установили её, она не работает… или что-то ещё не работает, как надо. Тогда проблема, скорее всего, в пайке – если в тестовой сборке всё работало, то и в финальной тоже должно. Надеюсь, что это не ваш случай, однако в качестве примера я приведу одну из проблем, с которыми столкнулся сам.

Когда я понижал яркость светодиодов до минимума, полоски могли перестать работать или начать мигать. Потратив огромное количество времени на исследования и отладку, я обнаружил, что проблема была в медленном переключении IRL540, а решение – в простом понижении частоты ШИМ до 50 Гц. Проблема почти решилась, и мигание осталось только на самых низких величинах – однако это не имеет значения, поскольку я их не использую. Проблема вернулась, когда я решил снять ролик об этом потолке, поскольку такую небольшую частоту хорошо видно на камерах – это всё равно, что снимать телевизор. Для решения этой проблемы я собрал на макетной плате небольшую схему, использовав транзисторы 2N2222 вместо IRL540, просто для съёмки видео.

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

Шаг 10: полезная информация и ссылки


Ссылки

MSGEQ7


www.sparkfun.com/datasheets/Components/General/MSGEQ7.pdf

www.baldengineer.com/msgeq7-simple-spectrum-analyzer.html

rheingoldheavy.com/msgeq7-arduino-tutorial-01-getting-started

www.instructables.com/id/How-to-build-your-own-LED-Color-Organ-Arduino-MSGE

Nrf24L01


arduinoinfo.mywikis.net/wiki/Nrf24L01-2.4GHz-HowTo

PCA9685


learn.adafruit.com/16-channel-pwm-servo-driver/overview

github.com/adafruit/Adafruit-PWM-Servo-Driver-Library

ИК пульт д/у


github.com/z3t0/Arduino-IRremote

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


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

А если использовать OpenHab или его альтернативу, то звёздный потолок легко можно соединить с системой умного дома.
Источник: https://habr.com/ru/post/509158/


Интересные статьи

Интересные статьи

Если вы делаете полезный сервис, которым будут пользоваться люди, вы рано или поздно придете к тому, чтобы сделать и приложение. Само собой, если хотите, чтобы клиентам было удобно и чтоб...
Все дистрибутивы Linux поставляются с функциональным и кастомизируемым эмулятором терминала. В интернете, а порой даже в самом терминале, есть масса готовых тем, чтоб он красиво выгля...
Пару недель назад я играл в A Plague Tale студии Asobo Studio (и прошёл её). Меня очень захватила эта игра, благодаря не только красивой графике, но и сюжету с локациями. Я решил немного изучит...
Художник изобразил экзопланету размером меньше, чем Нептун. Новое исследование предполагает причину, по которой такие планеты редко становятся больше Нептуна: магматические океаны планеты начин...
Управление компьютером или роботом при помощи мысли — идея, которую многие ученые пытаются воплотить многие годы. Это сложная задача, поэтому надежных «мыслеинтерфейсов» пока нет. Сейчас ...