Реклама
Если вы смотрите много фильмов на своем компьютере или в медиацентре, я уверен, что вы столкнулись с дилеммой освещения; Вы полностью выключаете все огни? Вы держите их на полную мощность? Или вы используете диммер, чтобы держать тускло-желтое свечение где-то? Ну, больше не мучайся.
Менее чем за 100 долларов вы можете установить удивительную систему освещения, которая будет отражать то, что на экране; если видео - синяя ночная сцена, свет будет синим; когда вспыхнет пламя оранжевого огня, зажгутся и ваши огни. Добро пожаловать в мир RGB освещения.
Компоненты
- Световая полоса RGB - это 5-метровая полоса светодиодов RGB, которую можно купить на eBay и отправить из Гонконга менее чем за 20 фунтов стерлингов каждая. Если вы покупаете в магазинах электроники, вы будете платить по счетчику, а стоимость катушки 5 м будет в три-четыре раза больше, поэтому покупайте онлайн. Эти типы светодиодных лент могут быть изменены на любой цвет, но только все сразу - их нельзя настроить индивидуально.
- Источник питания 12 В - требуемая мощность (амперная мощность) зависит от того, сколько светодиодных полос вы будете подключать. Каждый метр потребляет приблизительно 0,6 А, но это зависит от плотности ваших светодиодов, поэтому обязательно проверьте вашу конкретную светодиодную ленту. 3A будет достаточно для 5-метровой полосы, которую я подключил выше, и отдельные источники питания можно купить примерно за 10 фунтов стерлингов, если вы не можете найти их в другом месте.
- 3 х МОП-транзистор N транзисторов - Вы можете найти, вероятно, дешевле, но я купил пачку 6 (тип STP16NF06FP) около 10 фунтов стерлингов. Они используются, чтобы изолировать ток от Arduino - подключение полос непосредственно к Arduino поджарит его с током, который они потребляют. Вам нужен 1 МОП-транзистор на каждый цветной светодиодный канал, для красного, зеленого и синего.
- Arduino Что такое Arduino и что с этим можно сделать?Arduino - это замечательное небольшое электронное устройство, но если вы никогда не использовали его раньше, то что же это такое и что вы можете сделать с ним? Прочитайте больше - Я не включил стоимость этого предмета, поскольку предполагается, что он у вас уже есть, и есть множество клонов, которые вы можете купить, если не можете позволить себе приобрести официальный.
Таким образом, общая стоимость была около £40 не включая Arduino.
Вступление
Проект состоит из двух частей. Сначала мы создадим базовую схему Arduino, которая слушает команды с компьютера и устанавливает для светодиодов RGB соответствующий цвет. Второй включает использование нового приложения под названием обработка и Java на стороне компьютера - чтобы определить, какие цвета в настоящее время отображаются на экране, усреднить их и вывести на последовательный порт связи, чтобы Arduino реагировал на них.
Часть 1: Схема и Ардуино
Схема, которую мы используем, очень проста, как вы можете видеть на диаграмме ниже. Светодиодная лента должна поставляться с вилкой на одном конце, которую вы можете поместить прямо в макет.

Ваша светодиодная лента может отличаться, но если вы посмотрите внимательно, вы увидите 12 В, R, G, B где то написано на рельсах. Эти полосы могут быть нарезаны в этих медных точках (каждые 3 светодиода на тех, которые у меня есть), так что если вы хотите разрезать полосы на На углах телевизора вы можете сделать это безопасно - вам тоже не нужно использовать целые 5 м, так что у вас может быть что-то осталось на будущее проект. Подключите положительный 12 В непосредственно к внешнему источнику питания.

МОП-транзисторы имеют три контакта; Ворота, сливной, и источник. Ворота похожи на электронный переключатель, которым будет управлять Arduino. Затем он определяет ток, протекающий между истоком и стоком. Сток каждого MOSFET должен быть соединен с землей Arduino и землей источника питания, в то время как источник подключен к каналам светодиодной ленты.

Когда вы закончили кругооборот, скачать и запустить это тестовый код (родом из LadyAda, булавки модифицированы). Вы должны увидеть вихревые светодиодные ленты разных цветов.

Часть 2: Обработка
Скачать обработка и беги. Вы можете быть удивлены, увидев, что это выглядит почти точно как среда разработки Arduino; это потому, что среда Arduino была основана на ней, хотя они оба выполняют разные функции. Возьмите этот код – первоначально Силиконовая республика но сильно изменены мной, чтобы сделать настройки размера экрана автоматически и с лучшим отображением цвета - и найдите время, чтобы посмотреть на это. В основном он использует класс Java под названием робот сделать снимок экрана каждый 10мс; затем он выбирает каждый нечетный пиксель и усредняет общий цвет. Если производительность является проблемой для вас, увеличьте skipValue измените на 3 или 4, чтобы пропустить больше пикселей - общий эффект должен быть таким же, но он будет работать быстрее, так как он исследует меньше пикселей. Наконец, я добавил фильтр, который помогает насыщать цвет, увеличивая максимум и уменьшая найденные минимальные значения RGB. (без этого я обнаружил, что цвета слишком белые).
Запустите приложение; в первый раз вы, вероятно, получите сообщение об ошибке при попытке доступа к неправильному последовательному порту.

Проверьте в окне отладки список текущих последовательных портов и запишите номер рядом с тем, к чему подключен ваш Arduino. В моем случае на Mac, USB-соединение - это порт 4. Измените номер в этой строке на правильный порт:
port = new Serial (this, Serial.list () [4], 9600); // установить скорость передачи
Сохранить и перезапустить; Вы должны увидеть маленькое всплывающее окно - оно представляет средний цвет всего на экране. Запустите приложение для рисования или что-нибудь с яркими цветами, чтобы протестировать его, иначе оно, вероятно, просто покажет мутный оттенок серого. Остановите приложение, когда закончите тестирование, так как нам нужен доступ через последовательный порт для программирования Arduino.

И, наконец, загрузить этот код на вашем Arduino. Вместо того, чтобы посылать случайные цвета на светодиодную ленту, этот код считывает значения из последовательного порта (на который выводится обработка). Это довольно легко понять, единственной трудной частью может быть использование маркера в последовательных данных:
if (Serial.available ()> = 4) { if (Serial.read () == 0xff) { красный = Serial.read (); зеленый = Serial.read (); синий = Serial.read (); } }
Это гарантирует, что мы читаем правильные значения байтов - приложение обработки выводит маркер в качестве «точки останова» между каждым набором значений, так что Arduino не выйдет из синхронизации и думать, что зеленое значение для синий и т. д.
Как только код Arduino загружен (изначально на светодиодной полосе не должно быть выхода), вы можете загрузить и запустить приложение Processing; немедленно вы должны увидеть работу окружающего света.
Вот видео-демонстрация того, как у меня получилось с каким-то случайным триповым музыкальным видео.
Что вы думаете?! Хотя это не так впечатляет, как то, что анализирует каждую часть экрана и использует отдельные светодиодные пиксели, это намного дешевле и намного ярче. Единственным недостатком этого является то, что все должно выполняться на компьютере вашего медиацентра - он не будет работать с обычным ТВ-вещанием или, например, с вашим Xbox 360. Если у вас есть какие-либо проблемы, вопросы или предложения, пожалуйста, задавайте их; или, возможно, ссылка на видео вашей завершенной настройки.
Джеймс имеет степень бакалавра в области искусственного интеллекта и сертифицирован CompTIA A + и Network +. Он является ведущим разработчиком MakeUseOf и проводит свое свободное время за игрой в VR-пейнтбол и настольные игры. Он строит компьютеры с детства.