Оглавление:
- Шаг 1. Изучение идеи
- Шаг 2: Оборудование
- Шаг 3: Сборка
- Шаг 4: Контроль?
- Шаг 5: Упростить
- Шаг 6: первые эксперименты
- Шаг 7: Управление в реальном времени
- Шаг 8: выводы
Видео: Интерактивный окружающий свет: 8 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:54
Это моя первая инструкция! Пожалуйста, потерпите меня, пока я изо всех сил пытаюсь писать по-английски. Не стесняйтесь поправлять меня! Я начал этот проект сразу после начала конкурса «Пусть светится». Мне жаль, что я не сделал намного больше и закончил то, что хотел сделать. Но между школой и работой у меня оставалось не так много времени, как мне хотелось бы. Тем не менее, я оставляю здесь отчет о своих экспериментах в качестве инструкции, чтобы каждый мог попробовать сделать то, что сделал я. Это руководство не предназначено для использования в качестве руководства и обучения изготовлению этого устройства. Это не руководство для новичков в электронике. Это больше похоже на то, чтобы поделиться одной идеей и целью, которые я хочу преследовать. Если вы новичок / совершенно не разбираетесь в электронике и хотите сделать что-то подобное, извините! Но мы можем постараться всегда помочь вам. Смотрите последний шаг. Мы уже видели много проектов с рассеянным светом. Большинство из них используют светодиоды RGB: - Для освещения комнаты одним цветом, создавая атмосферу, соответствующую вашему настроению - Для создания световых эффектов из цвета телевизора / монитора или из звука. На сайте Instructables.com их даже несколько. Я всегда хотел сделать что-то подобное этому окружающему свету и залить стены в моей комнате светодиодами RGB. Но, сделав еще один шаг, сделав все и каждого из них управляемыми. Мы надеемся, что в результате этого проекта будет создан комплект электроники с открытым исходным кодом для любителей и мастеров электроники, позволяющий взламывать аппаратное / программное обеспечение и сенсорную интеграцию. Вот небольшой превью того, что я сделал:
Шаг 1. Изучение идеи
Я хочу иметь возможность заполнять стены в моей комнате светодиодами RGB, контролируя цвет и яркость каждого светодиода. Я собираюсь использовать микроконтроллер для простоты использования и обеспечения гибкости. К сожалению, я не могу управлять сотнями светодиодов с помощью нескольких выводов микроконтроллеров. Было бы даже сложно закодировать управление таким количеством светодиодов, поэтому я решил, что должен разделить все светодиоды на несколько меньших полос, и для каждой полосы я мог бы использовать микроконтроллер. Затем я использовал бы коммуникационные возможности микроконтроллеров для обмена информацией между ними. Эта информация может быть цветом и яркостью светодиодов, узорами / последовательностями цветов и сенсорной информацией. Для каждой полосы я решил использовать 16 светодиодов RGB. В результате получается ни слишком большая, ни маленькая полоса. Таким образом, я использую приемлемое количество ресурсов для каждого светодиода, снижая затраты на каждую полосу. Тем не менее, 16 светодиодов RGB - это 48 светодиодов (3 * 16 = 48) для управления микроконтроллером. Имея в виду затраты, я решил использовать самый дешевый микроконтроллер, который я мог использовать. Это означает, что микроконтроллер будет иметь только до 20 контактов ввода / вывода, что недостаточно для 48 светодиодов. Я не хочу использовать чарлиплекс или какой-либо привод с временным разделением, поскольку цель проекта - освещение комнаты. Альтернатива, которую я мог придумать, - это использовать какой-то фиксированный сдвиговый регистр! Продолжение: - Создание интерактивного окружающего света - Создание стандартной полосы управляемых светодиодов - Возможность подключения нескольких полос для заполнения комнаты - Возможность адаптации / конфигурации пользователя и сенсорной интеграции
Шаг 2: Оборудование
Как было сказано в предыдущем шаге, я хочу сделать несколько полос, чтобы осветить одну комнату. Это заставляет вспомнить о стоимости. Я постараюсь сделать каждую планку максимально рентабельной. Я использовал микроконтроллер AVR ATtiny2313. Они довольно дешевые, и у меня было несколько таких. ATtiny2313 также имеет один универсальный последовательный интерфейс и один интерфейс USART, которые пригодятся на следующих этапах. У меня также лежало три MCP23016 - I2C 16-битных расширителей портов ввода / вывода, как раз правильное количество! Я использовал каждый расширитель портов для управления одним цветом из 16 светодиодов. Светодиоды… К сожалению, были самыми дешевыми, что я смог найти. Они 48 красных, зеленых и синих ~ 10000 мкд 5 мм с углом 20 градусов. На данный момент это не должно иметь значения, поскольку это всего лишь один прототип. Несмотря на это, результат очень приятный! Я использую микроконтроллер на 8 МГц. Шина I2C работает на частоте 400 кГц. Частота переключения светодиода около 400 Гц. Таким образом, если я смогу управлять 48 светодиодами, не доводя их до предела, у меня хватит места позже!
Шаг 3: Сборка
Спроектировав схему, я собрал ее на нескольких макетных платах для целей прототипирования. После нескольких часов резки проводов и сборки схемы я получил такой результат: один гигантский макет с 48 светодиодами и тоннами проводов!
Шаг 4: Контроль?
Это самая сложная часть проекта. Я хотел сделать один алгоритм управления достаточно универсальным для обработки шаблонов / последовательностей, а также для управления яркостью и цветом каждого светодиода. Для управления светодиодами я должен отправить на MCP23016 один кадр размером 4 байта. (1 байт = 8 бит). Один байт с адресом IC, соответствующим цвету, 1 байт с командой «запись» и 2 байта со значением 16 бит (светодиоды). Микросхема соединена со светодиодами как «сток», что означает, что одно логическое значение 0 на выводе будет светить светодиод. А теперь сложная часть, как сделать управление ШИМ для 48 светодиодов? Давайте изучим ШИМ для одного светодиода! ШИМ объяснил в Википедии: если я хочу, чтобы яркость светодиода составляла 50%, мое значение ШИМ составляет 50%. Это означает, что светодиод за один период времени должен гореть столько же времени, сколько и выключаться. Возьмем период в 1 секунду. 50% ШИМ означает, что в эту 1 секунду время включения составляет 0,5 секунды, а время выключения - 0,5 секунды. ШИМ 80%? 0,2 секунды выключено, 0,8 секунды включено! Легко, не так ли? В цифровом мире: с периодом в 10 тактов, 50% означает, что в течение 5 циклов светодиод горит, а в течение следующих 5 циклов светодиод не горит. 20%? 2 цикла включения, 8 циклов выключения. 45%? Ну, на самом деле мы не можем получить 45% … Поскольку период циклический, а у нас всего 10 циклов, мы можем разделить ШИМ только с шагом 10%. Это означает, что эволюция вывода должна быть на 50%: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; Или даже 1, 0, 1, 0, 1, 0, 1, 0, 1, 0; В программировании мы можем сделать эту последовательность включения и выключения массива. Для каждого цикла мы выводим на вывод значение индекса, которым был этот цикл. Имею ли я смысл до сих пор? Если мы хотим сделать LED0 50%, а LED1 20%, мы можем добавить оба массива. Для управления выводом LED0: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; Для управления выводом LED1: 2, 2, 0, 0, 0, 0, 0, 0, 0, 0; Результатом LED0 + LED0: 3, 3, 1, 1, 1, 0, 0, 0, 0, 0; Выведя эту последовательность чисел в микросхему расширителя портов, мы получим LED0 с 50% яркостью и LED1 с 20% !! Просто для двух светодиодов, правда? Теперь мы должны сделать это для 16 светодиодов для каждого цвета! Для каждого из этих массивов у нас есть комбинация яркости для каждого цвета (16 светодиодов). Каждый раз, когда нам нужна другая комбинация цветов, мы должны изменить этот массив.
Шаг 5: Упростить
Предыдущий шаг - это слишком много работы для создания простой последовательности … Поэтому я решил создать программу, в которой мы сообщаем цвета каждого светодиода за один шаг последовательности и получаем три массива этого шага. Я сделал эту программу в LabView из-за нехватки времени.
Шаг 6: первые эксперименты
Загрузив несколько шагов в микроконтроллер, мы получим что-то вроде этого: Извините за плохое качество видео! Я определил максимальное количество шагов последовательности до 8, а ШИМ ограничил скачками до 20%. Это решение основано на типе управления, который я использую, и на том, сколько EEPROM у ATtiny2313. В этих экспериментах я пытался увидеть, какие эффекты я могу произвести. Я должен сказать, что я доволен результатом!
Шаг 7: Управление в реальном времени
Как упоминалось в предыдущих шагах, я хочу связаться со всеми микроконтроллерами, управляющими светодиодами в моей комнате. Поэтому я использовал доступный интерфейс USART в ATtiny2313 и подключил его к своему компьютеру. Я также сделал программу в LabView для управления светодиодной полосой. В этой программе я могу сообщить микроконтроллеру, какова длина последовательности, цвет каждого светодиода и время между этапами последовательности. В следующем видео я буду продемонстрируйте, как я могу изменить цвет светодиодов и определить последовательность.
Шаг 8: выводы
Думаю, я добился успеха в этом первом подходе к моему проекту. Я могу управлять 16 светодиодами RGB с небольшими ресурсами и ограничениями. Можно управлять каждым светодиодом отдельно, создавая любую желаемую последовательность.
Будущая работа:
Если я получу положительные отзывы от людей, я могу развить эту идею и сделать полный комплект DIY Electronics Kit с печатными платами и инструкциями по сборке.
Для моей следующей версии я: -заменяю микроконтроллер на один с АЦП -Заменяю MCP23016 на какой-то другой тип последовательного параллельного вывода, который может потреблять больше тока от светодиодов -Создаю программное обеспечение с открытым исходным кодом для связи с микроконтроллером и Управление светодиодами -Развитие связи между несколькими микроконтроллерами.
У вас есть предложения или вопросы? Или оставьте комментарий!
Финалист конкурса Let It Glow!
Рекомендуемые:
Музыкальный реактивный свет -- Как сделать супер простой музыкальный реактивный свет, чтобы сделать рабочий стол приятным: 5 шагов (с изображениями)
Музыкальный реактивный свет || Как сделать супер простой музыкальный реактивный свет для настольного компьютера. бас, который на самом деле является низкочастотным звуковым сигналом. Строить очень просто. Мы
Окружающий дисплей для прибытия автобуса: 6 шагов (с изображениями)
Окружающий дисплей при прибытии автобуса: хотя экраны могут быть популярны для просмотра информации, они определенно не единственное средство для получения информации. Есть несколько возможностей для визуализации информации из окружающей среды, и в этом проекте мы стремимся взломать
Интимный свет для видеосъемки / портативный свет для фотосъемки: 7 шагов (с изображениями)
Интимный свет для видеосъемки / портативный свет для фотосъемки: я знаю, о чем вы думаете. Под " интимным " Я имел в виду освещение крупным планом в сложных условиях освещения - не обязательно для "интимных ситуаций". (Однако его можно использовать и для этого …) Как видеооператор из Нью-Йорка - или
Как сделать окружающий свет для вашего компьютера: 6 шагов
Как сделать окружающий свет для вашего компьютера: это простой легкий проект, который даст вашему компьютеру окружающее освещение. это, конечно, требует, чтобы лицевая сторона вашего компьютера была съемной и вентилируемой, что обеспечивало доступ и путь для видимости света
Интерактивный свет настроения с открытым исходным кодом: 9 шагов (с изображениями)
Интерактивный свет настроения с открытым исходным кодом: в этом руководстве рассказывается, как создать интерактивный, многофункциональный свет настроения. Ядром этого проекта является светодиод BlinkM I2C RGB. Однажды, когда я просматривал веб-страницы, мое внимание привлек BlinkM, и я подумал, что это слишком круто