Бюджетная и красивая подсветка рабочего компьютерного стола
Всех приветствую, как и обещал, хочу поделиться с вами своей идеей подсветки для стола. Реализовано всё на Arduino и светодиодной ленте WS2812. Решение, кстати, получилось очень бюджетное: ардуино и лента обошлись мне всего в 600 рублей.
В интернете уже существуют подобные решения, но всегда же хорошо, когда есть альтернатива. Для тех, кому интересней слушать и тех, кто хочет коротко и по делу есть видео:
А для тех, кому больше нравится читать, продолжим
Было две цели: сделать всё максимально просто, чтобы каждый мог повторить это дело и сделать всё максимально удобно. Поэтому я выбрал плату Ардуино, которая на слуху у многих, которую легко купить, и светодиодную ленту WS2812. Изначально хотел сделать пульт управления с физическими кнопками, но затем решил, что мне будет гораздо проще управлять светом со своего компьютера, кликая мышкой.
Было решено написать приложение и тут меня ждала самая большая проблема: я совершенно не шарил в дизайне и все попытки нарисовать интерфейс сводились к тому, что он выглядел как на заре появления компьютеров. Совершенно неуместная цветовая гамма и пёстрые контрастные кнопки. Но затем через тернии и провода я набросал два, на мой взгляд, классных интерфейса, вот они:
Скажу, честно, первый я немного скопипастил у другой программы (левое меню) и нравился он мне больше, чем тот, что снизу. Но и тут меня ждала проблема: в первом интерфейсе все функции приложения были разбросаны по разным вкладкам, что создавало запутанность, а во втором варианте почти все главные функции находятся на одном окне. Было решено взять второй вариант за основу, но основательно переработать его, т.к. мне что-то не нравилось.
Сразу поделюсь конечной реализацией, чтобы на контрасте вы оценили изменения и высказали своё мнение, если захотите:
Ещё немного расскажу про возможности приложения и мы перейдем к моменту, где я расскажу, как всё это сделать.
Подсветка имеет 7 режимов, каждый из которых имеет свой подрежим (итого 20 полноценных модов) Начиная от статичного цвета по всей ленте, заканчивая цветомузыкой, которая изменяет цвет и пульсирует в такт воспроизводимому на компьютере аудио. Сейчас данный режим временно недоступен, но когда-нибудь руки дойдут и до него.
Помимо разных режимов есть возможность изменять яркость и скорость динамических эффектов, а так же сохранять все эти конфигурации в профили, чтобы затем в один клик активировать необходимую конфигурацию. Есть возможность автовключения подсветки при подаче питания на модуль (например, есть подсветка будет использоваться где-то помимо компьютера) и автовключения при старте Windows и автовыключения при завершении работы.
Можно подключать несколько устройств по беспроводному соединению и управлять ими с одного приложения. Данная функция условно рабочая, но там много нюансов, о которых можно запилить отдельный пост, что я обязательно сделаю. Изначально я сделал несколько тем для приложения (тема Аниме, Dota 2 и т.д.), но впоследствии осталось всего две: темная и светлая из-за нарушения авторских прав на рисунки. Сам я что-то нарисовать вряд ли смогу, для меня было адским трудом нарисовать эти интерфейсы, чего уж говорить о тематических.
Ну а теперь о подключении:
Нам понадобится Ардуина любой версии (хотя изначально приложение писалось под Arduino Nano) и лента WS2812. Подключаем их по максимально простой схеме:
Gnd к Gnd, 5 вольт к 5 вольтам, Din к 7 цифровому порту ардуино (Din - порт по которому передаются данные). Никаких дополнительных источников питания и конденсаторов не понадобится, но впоследствии мы получаем ограничение по току, которое позволяет нам использовать ленту с количеством светодиодов не больше 30. Я решил максимально упростить схему, да и для стола шириной 150 см мне хватило этого вполне. Ну а те, кто разбирается в теме, без труда подключат ленту и большей длины.
2/3 эффектов я написал самостоятельно и чтобы они выглядели так, как задумывается, ленту необходимо крепить на задний торец столешницы, направив светодиоды на стену, на расстоянии приблизительно 7-15 см от стены.
Теперь о программе:
Переходим по ссылке и скачиваем .exe файл нажав на кнопочку Download: https://github.com/psibia/Sibia_Lights/blob/main/Sibia Lights.exe
Вероятнее всего, винда уведомит о том, что приложение небезопасно, но это из-за того, что для сборки я использовал Inno Setup и никакой цифровой подписи у меня там нет. Если вдруг за что-то переживаете, то вирусов там никаких нет, интернет приложение не использует, да и в системные папки доступа не имеет.
В программе установки всё интуитивно понятно, по её завершению будет предложено установить драйвер CH340. Запустится приложение, в котором вам нужно нажать Install. Драйвер необходим для китайских ардуинок. Если возникнут проблемы с установкой, его легко можно найти в интернете по соответствующему запросу.
Если вы используете версию ардуино отличную от Nano, сделайте следующее действие: перейдите в папку с расположением программы (можно нажать ПКМ по ярлыку и выбрать пункт), найдите файл config.json, откройте его в любом текстовом редакторе и измените параметр, который находится в самом конце "arduinoModel" в соответствии со следующим скриншотом:
Затем сохраните документ и закройте его. Если вы используете Arduino Nano,то данные действия не требуются. Объясняю, почему так сложно: изначально приложение писалось для ограниченного круга лиц и использование подразумевало только эту версию Ардуинки, в дальнейшем же я решил опубликовать его здесь и вот таким костылем расширил версии микроконтроллеров.
Теперь действие общее для всех:
открываем приложение, переходим в настройки (шестеренка справа сверху)
У нас откроется меню настроек, переходим во вкладку "Подключение", выбираем USB-порт (COM-порт), куда подключена ардуина, если их несколько. Если он один, то выбор порта произойдет автоматически и нажимаем "Обновить модуль"
Если выбрана верная версия ардуины и верный USB-порт, то обновление пройдет успешно и прошивка загрузится в микроконтроллер. Никаких arduino IDE скачивать не придется. Если у вас несколько доступных портов в списке, поставьте флажок "Запомнить выбранный порт"
Поздравляю, теперь вы можете полноценно использовать данное приложение!
Приложение написано на языке C#, доступно только для платформ Windows
Всем спасибо за внимание!
Следующий проект скорее всего будет через месяц и это будет мессенджер, использующий ардуино и Lo-Ra передатчики (работающий без интернета и позволяющий вести переписку)