Оглавление:

Интерактивный свет настроения с открытым исходным кодом: 9 шагов (с изображениями)
Интерактивный свет настроения с открытым исходным кодом: 9 шагов (с изображениями)

Видео: Интерактивный свет настроения с открытым исходным кодом: 9 шагов (с изображениями)

Видео: Интерактивный свет настроения с открытым исходным кодом: 9 шагов (с изображениями)
Видео: Когда тренер - твой друг😏 2024, Ноябрь
Anonim
Интерактивный свет настроения с открытым исходным кодом
Интерактивный свет настроения с открытым исходным кодом

В этом руководстве рассказывается, как сделать интерактивный, многофункциональный свет настроения. Ядром этого проекта является светодиод BlinkM I2C RGB. Однажды, когда я просматривал веб-страницы, мое внимание привлек BlinkM, и я подумал, что это слишком круто, чтобы отказаться от него. Итак, пару месяцев спустя я решил, что с его помощью можно сделать какой-то свет для настроения. И вот оно!

Шаг 1. Что вам понадобится

Этот проект может быть довольно недорогим, если вы используете правильные вещи. Я отмечу альтернативные детали, которые можно использовать, чтобы сделать его менее дорогостоящим. Я просто использовал некоторые компоненты, которые немного дороже из-за внешнего вида, которые упрощают процесс строительства.

Источник света:

Светодиодный индикатор BlinkM RGB, управляемый I2C

Контроллер:

Микроконтроллер Arduino - я использовал «Arduino Nano», потому что мне нужно было что-то действительно маленькое из-за количества места, доступного внутри «сенсорной подсветки», используемой для размещения всего.

Корпус:

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

Питание / разъемы:

Вначале я подумал, что было бы здорово работать от батареи (потому что в корпусе уже есть отсек для батареи), но это не так практично, если вы собираетесь использовать его в течение длительного времени. Вместо этого я использовал 5,5-миллиметровый разъем питания постоянного тока от radioshack с трансформатором 12 В 150 мА, который у меня лежал. Регулятор на плате Arduino снижает напряжение 12 вольт, а 150 мА было достаточным током для питания всего. В качестве проволоки я просто использовал то, что было у меня под рукой. Однако обязательно используйте провод с твердым сердечником.

Компоненты:

Компоненты используются для создания трех датчиков освещения настроения: звукового датчика, датчика касания и датчика освещенности. Для звукового датчика вам понадобятся: - Операционный усилитель LM741 - Электретный микрофон (3-выводный) - резистор 2,2 кОм - резистор 100 кОм - резистор 200 кОм - электролитический конденсатор 0,47 мкФ - керамический конденсатор 0,047 мкФ - 2 резистора по 10 кОм - диод Датчик «касания», вам понадобится только: - Пьезоэлемент (его можно спасти от некоторых электронных игрушек, телефонов и многих других электронных устройств, которые издают звуковой сигнал, или вы можете получить его от mouser, radioshack и т. д.); - резистор 1M … А для датчика освещенности вам понадобятся: - Ячейка CdS (LDR), желательно очень большая (с большим разрешением). - Резистор 10 кОм - 3-контактный разъем и обжатые соединительные провода (опционально).

Другой

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

Шаг 2: приготовьте "сенсорный свет"

Подготовьте "сенсорный свет"
Подготовьте "сенсорный свет"
Приготовьте "сенсорный свет"
Приготовьте "сенсорный свет"
Подготовьте "сенсорный свет"
Подготовьте "сенсорный свет"
Подготовьте "сенсорный свет"
Подготовьте "сенсорный свет"

Во-первых, нам нужно сделать дешевый «сенсорный свет», который мы получили в домашних условиях, более легким. Сначала переверните фонарь и снимите крышку аккумуляторного отсека и винты. Внутри батарейного отсека вы увидите лампочку. Выньте его и выбросьте вместе с лампочкой. Далее открываем кожух. Теперь нам нужно разобраться с властью. Удалите кусок металла в центре аккумуляторного отсека, а также провод, который соединяет его с одним из контактов аккумулятора. Припаяйте провода к контактам аккумулятора, как показано. Вы также можете пометить их, если у вас нет проводов другого цвета. Мы также собираемся сделать этот свет настроения управляемым через трансформатор розетки. Просверлите отверстие сверлом примерно того же размера, что и диаметр разъема постоянного тока. Затем ввинтите его до тех пор, пока он не будет на одном уровне с корпусом. Последняя модификация, которую нам здесь нужно сделать, - это добавить пьезоэлектрический датчик. Лучше всего закрепить его на пластиковом «ободе» для лучшей чувствительности. Я представил его позже в этом руководстве, установленном в другом месте, но это только потому, что мне приходилось открывать и закрывать корпус во время тестирования так часто, что провода начали ломаться. Просто приклейте его к пластику горячим способом, но убедитесь, что он не мешает механическому движению купола movabke! (т.е. не позволяйте ей слишком сильно торчать).

Шаг 3: Добавьте защиту силовой цепи

Добавить защиту цепи питания
Добавить защиту цепи питания

Эта часть представляет собой простую надстройку, которая использует диоды для защиты настенного трансформатора / батарей от перегрева, если у вас установлены батареи одновременно с подключением к разъему питания постоянного тока. Вы можете использовать любые блокирующие диоды, если их максимальное номинальное напряжение превышает номинальное значение настенного трансформатора. Часть с надписью «VIN» в нерегулируемом удлинителе на макетной плате (которая соответствует VIN на Arduino). Деталь с надписью «DCPower» - это разъем питания постоянного тока. По какой-то причине программа, которую я использовал для создания этой схемы, была очень разборчивой в отношении меток, поэтому я позволил мне ее назвать. ПРИМЕЧАНИЕ: Если вы не сделаете эту схему, вы НЕ сможете держать батареи в батарейном отсеке в то же время, когда вы подключите световой индикатор к настенному трансформатору, в противном случае он повредит его.

Шаг 4: Добавьте макет, Arduino и BlinkM

Добавьте макет, Arduino и BlinkM
Добавьте макет, Arduino и BlinkM

Перед тем, как добавить макетную плату, нам нужно изолировать контакты батареи от металлической подложки макета (то есть, если у вас есть металлическая пластина, приклеенная к вашей. Если нет, пропустите этот шаг). Оберните скотчем все металлические контакты, чтобы убедиться, что они изолированы. Нам не нужен оголенный провод. Теперь приклейте (я использовал горячий клей) макет поверх батарейного отсека. К счастью для нас, он идеально подходит. Теперь подключите положительный (+) и отрицательный (-) провода из шага 2 к одному из положительных и отрицательных удлинителей на макетной плате. Теперь мы можем соединить arduino и blinkm вместе. Вот контакты контактов:

  • A5 - Часы (обозначены буквой c на BlinkM)
  • A4 - Данные (помечены буквой d на BlinkM)

После того, как вы это сделали, подключите НЕРЕГУЛИРУЕМЫЙ VCC (+) к контакту «VIN» на Arduino, а РЕГУЛИРУЕМЫЙ VCC - к контакту (+) на BlinkM. Затем подключите GND на Arduino и BlinkM к GND на удлинителе и соедините оба удлинителя GND вместе. БУДЬТЕ ОСТОРОЖНЫ, чтобы не перепутать эти соединения, иначе вы можете поджарить BlinkM.

Шаг 5: Датчики - звук, нажатие и свет

Датчики - звук, постукивание и свет
Датчики - звук, постукивание и свет
Датчики - звук, постукивание и свет
Датчики - звук, постукивание и свет
Датчики - звук, постукивание и свет
Датчики - звук, постукивание и свет

На очереди датчики. Датчик освещенности - самый простой в конструкции. Провод, идущий вправо, подключается к Arduino. Более подробная информация о том, К КАКИМ контактам подключаются датчики, будет на следующем шаге. Звуковой датчик немного сложнее, но не слишком сложен. ПОЖАЛУЙСТА, ОБРАТИТЕ ВНИМАНИЕ: я не показывал здесь схему делителя напряжения. На схеме 2,5 В должно подаваться через так называемый «делитель напряжения». Это очень и очень простая схема, состоящая из нескольких постоянных резисторов или потенциометра. Для этой схемы используйте горшок 50К. Погуглите «делитель напряжения» и посмотрите статью в Википедии, чтобы узнать, как его построить. РЕДАКТИРОВАТЬ 9/27/08: Я отказался от этой звуковой схемы и вместо этого использовал одну, спасенную от активируемой звуком подвески с подсветкой. Схема здесь работает не очень хорошо; Не знаю почему, но в дизайне есть недостатки, что-то не так. Я заметил, что в схеме от кулона используется операционный усилитель SMD LM386. Я просто припаял резисторы к светодиодам, VCC и GND. Тогда все, что мне оставалось сделать, это немного изменить значения в программе, и готово! лучше работает звуковой отзывчивый свет настроения. В настоящее время видео пульсации света под музыку - это когда использовалась оригинальная схема. Возможно, я выложу еще один, показывающий улучшенный дизайн (похоже, он реагирует на музыку из-за новой схемы). Я не знал, как припаять пьезоэлемент, поэтому догадался и припаял его, как показано. Но это работает. Полярность пьезо не имеет значения. Резистор находится на макетной плате (не показан). Другое ВАЖНОЕ ПРИМЕЧАНИЕ. Значения для этих схем БУДУТ отличаться от ваших, поэтому вам нужно будет внести некоторые изменения в код. Если у вас есть вопросы по этим ценностям, дайте мне знать.

Шаг 6: Найдите место для датчиков и подключите все это

Найдите место для датчиков и подключите все это
Найдите место для датчиков и подключите все это
Найдите место для датчиков и подключите все это
Найдите место для датчиков и подключите все это

Эта часть не должна быть слишком сложной. В корпусе Touch Light достаточно места, чтобы уместить все, что нам нужно. Я разместил датчики там, где они могли поместиться. Все подключения:

  • Контакт A6: Звуковой датчик - ПРИМЕЧАНИЕ: для пользователей, не использующих Arduino nano, другие Arduino не имеют 7-го аналогового контакта. Вам нужно будет изменить это в коде.
  • Контакт A3: Пьезоэлектрический датчик (датчик касания)
  • Контакт A0: датчик освещенности

УБЕДИТЕСЬ, что вы случайно не подключили (+) выводы датчиков к нерегулируемому удлинителю, иначе вы их поджарите.

Шаг 7: проверьте это

Попробуй это
Попробуй это
Попробуй это
Попробуй это

Убедитесь, что силовые подключения исправны; подключите его с помощью адаптера питания и попробуйте использовать батареи. Распространенная проблема - плохое соединение с плюсом и землей. ПРИМЕЧАНИЕ: я знаю, что на картинке не показан датчик освещенности; Я просто взял его, прежде чем добавить эту часть.

Шаг 8: запрограммируйте, закройте и используйте

Запрограммируйте, закройте и используйте
Запрограммируйте, закройте и используйте
Запрограммируйте, закройте и используйте
Запрограммируйте, закройте и используйте
Запрограммируйте, закройте и используйте
Запрограммируйте, закройте и используйте

Код, который я использовал, использует библиотеку, созданную Тодом Куртом (www.todbot.com/blog) и создателями BlinkM (ThingM). Я постараюсь добавить в код примечания, чтобы сделать его более понятным; В настоящее время я немного занят. У вас должна быть открыта библиотека кода (файл с пометкой «BlinkM_funcs.h») в программном обеспечении arduino при загрузке кода, иначе она не будет работать. Если вы хотите просмотреть код, но у вас нет программного обеспечения Arduino, вы можете открыть его с помощью программы обработки текста (также известной как Wordpad для пользователей Windows). Приветствуются идеи о новых функциях. Пожалуйста, не стесняйтесь размещать их; Я хочу сделать это с открытым исходным кодом. Я структурировал код, чтобы упростить добавление новых функций. Некоторые функции запрограммированы в BlinkM производителем (ThingM), но две из них я сделал; «Звуковой свет» и «Мимический свет». Прямо сейчас у него есть следующее:

  • Mood Light - медленно переходит в случайные цвета.
  • Свеча - мерцает, как свеча, с апельсиновым и желтым оттенками.
  • Отражения на воде - мерцающие голубым, бирюзовым и голубым цветами.
  • Сезонные цвета - меняют сезонные цвета (я думаю, это синий, зеленый, фиолетовый и оранжевый).
  • Гроза - время от времени мигает, имитируя молнию.
  • Стоп-сигнал - меняет цвет с красного на желтый, затем на зеленый и обратно.
  • Мимический свет - записывает последовательность из до 50 циклов включения / выключения света (вы можете использовать фонарик), «запоминает» время включения / выключения, а затем воспроизводит их в бесконечном цикле.
  • Звуковой свет - пульсирует под звуки музыки

Слегка постучите по полупрозрачному куполу, чтобы в любой момент изменить функции. Есть одно исключение из этого правила: когда вы дойдете до функции «имитация света», он будет мигать зеленым. Если вы нажмете на купол, пока он мигает, он перейдет к последней функции («звуковой свет»). Если вы просто подождите, он перейдет в функцию «имитация света». Когда вы дойдете до функции «звуковой свет», вы не сможете изменить функции и перейти к первой из-за того, как она считывает звуковой датчик. Теперь самое сложное. Чтобы закрыть корпус световой подсветки, вам нужно предпринять несколько осторожных шагов. Во-первых, вы должны совместить опорные пружины с небольшими выступами на пластиковом куполе. Поскольку разъем питания постоянного тока находится на ободе, а провода идут к макетной плате, вам нужно СНАЧАЛА надеть пластиковый купол поверх этих проводов, а затем совместить винтовые стойки внешнего обода с углублениями на пластиковом куполе. Убедитесь, что все выступы совпадают с положением опорных пружин, которые также соответствуют стойкам винтов на ободе и отверстиям для винтов на опорной плите. Затем, когда вы убедитесь, что все выровнены, защелкните внешний обод на опорной пластине. Затем убедитесь, что провода не застряли в пружинах и не находятся там, где они могут возникнуть в будущем. Это затруднило бы движение пластикового купола. Наконец, замените винты и наслаждайтесь! Заключительные примечания: ВАЖНО: НЕ используйте батареи и подключайте сетевой адаптер одновременно. Я не уверен, что произойдет, но уверен, что это разрушит все, что связано с питанием !!

Шаг 9: ДОПОЛНИТЕЛЬНО

Вот несколько видеороликов: Это из 6 предварительно запрограммированных функций, встроенных в BlinkM:… Это добавленный мной пользовательский код, реагирующий на звук / музыку (вы можете догадаться, что это за песня… ?:… И, наконец, но определенно нет По крайней мере, это самая крутая (я думаю) и самая сложная функция из всех; функция имитации света:

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