CyberLabs

CyberLabs

Я электронщик - радиолюбитель. Мое хобби это DIY поделки на ардуино и любый другие оригинальные электронные устройства
Пикабушник
поставил 50 плюсов и 68 минусов
проголосовал за 0 редактирований
1870 рейтинг 104 подписчика 213 комментариев 18 постов 15 в горячем
18

Световой меч из отрезка лазерного луча длиной 70 см

Всем привет!

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

Собираю на ардуино несложное устройство и подключаю к нему лазер через MOSFET ключ, для формирования на лазере хитрых импульсов.

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

Дымовая завеса уже готова, пора включить бластер и показать на что он способен.

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

Показать полностью
246

Алиса включи свет!

Люди которые в первые сталкиваются с «Умным домом», почему то всегда начинают с проектирования освещения. Но я немного нарушил эти устои и «Умным светом» занялся в последнюю очередь. Так как я всегда считал, что это не особо важная функция в управлении «Умным домом», но признаюсь честно я ошибался.

Вступление

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

Покупка

Так как у меня много устройств от компании MOES и работают они круглыми сутками уже несколько лет, то соответственно мой выбор пал на выключатели от этой же фирмы. Сразу скажу, что это не реклама и все устройства я купил за свои личные деньги. Можете сами убедится посмотрев на скриншот.

Алиса включи свет! Умный дом, Голосовое управление, Яндекс Алиса, Управление светом, Видео, YouTube, Длиннопост, Интернет вещей

Что бы использовать стандартные выключатели которые уже установлены и что бы не менять их дизайн, в котором так же выполнены еще и все розетки, то я приобрел блоки которые устанавливаются под выключателем в подрозетник. Это достаточно удобно, так как у основной массы людей нет возможности вносить изменения в существующую проводку, а потом заново перекрашивать стены, или использовать выключатели в другом стиле. Так же мне не пришлось при этом, вносить какие либо изменения в самом выключателе. Блоки работают с обычными выключателями от любого производителя.

Распаковка

В общем на весь дом я заказал в Китае 8 модулей освещения, из них 6 шт. под двойной выключатель и 2 шт. под одинарный. Как Вы можете сами убедиться по фото все сделано достаточно компактно и удобно для монтажа.

Алиса включи свет! Умный дом, Голосовое управление, Яндекс Алиса, Управление светом, Видео, YouTube, Длиннопост, Интернет вещей

На блоке есть кнопка сброса, для того что бы загонять блок в режим подключения к Wi-Fi. Есть так же режим управления с пульта 433 мГц. но этот режим меня мало интересует и по этому речь пойдет только о подключении к домашней беспроводной сети WiFi.

Тестирование

После распаковки посылки , мне сразу же захотелось проверить выключатель в деле. Отложил все свои дела. Нашел в своем строительном хламе подрозетник с проходным выключателем, его так же можно использовать как обычный выключатель. Подключил по схеме нарисованной на корпусе блока и теперь осталось только их настроить.

Алиса включи свет! Умный дом, Голосовое управление, Яндекс Алиса, Управление светом, Видео, YouTube, Длиннопост, Интернет вещей

Сопряжение с WiFi

Для сопряжения блока с домашней беспроводной сетью WiFi, нужно установить и запустить приложение Tuya Smart. Далее нажимаем и удерживаем кнопку сброса на устройстве в течении 10 секунд. После того как раздастся сигнал готовности, в приложении выбираем раздел освещение и выключатель WiFi. После не продолжительного поиска, устройство будет добавлено в приложение, в котором его можно переименовать, назначить ему комнату и протестировать.
Я переживал что будут проблемы с подключением к WiFi, блоков которые находятся на максимальном удалении от роутера, но мои опасения были напрасными все модули отлично сопрягаются и работают без отваливания.
Подключение к Алисе выполняется за несколько кликов, нужно добавить устройство, потом выбрать бренд Tuya Smart, обновить список устройств, указать в каком доме и в какой комнате находится устройство и после чего устройство будет добавлено. Проверяем, все прекрасно работает, можно переходить к его монтажу.

Монтаж

С монтажом оказалось достаточно все просто. В упаковке к устройству идет инструкция и схема подключения, а так же на блоке все контакты подписаны и на корпусе нарисована схема. Подключаю по этой схеме и помещаю блок в подрозетник. Тоже самое проделываю и с остальными блоками.

После того как все смонтировано остается их проверить.

Алиса включи свет! Умный дом, Голосовое управление, Яндекс Алиса, Управление светом, Видео, YouTube, Длиннопост, Интернет вещей

Демонстрация работы

Я думаю, что здесь комментарии будут излишними. Могу только добавить, что в настройках Алисы можно прописать кучу разных сценариев, например «Хочу смотреть кино», после чего закрываются окна, включается телевизор и выключается свет. Или например сценарий «я ушел», который выключает все что было включено, закрывает окна, а температура отопления понижается на 5 градусов C.

Алиса включи свет! Умный дом, Голосовое управление, Яндекс Алиса, Управление светом, Видео, YouTube, Длиннопост, Интернет вещей

Заключение

Использую эти выключатели почти 1 год, я ими очень доволен, они меня как и все остальные устройства ни разу не подвели. И как оказалось «умный свет» очень удобная и нужная функция, зря я так долго упирался и считал, что это не особо нужная функция в «Умном доме».
Спасибо, что дочитали до конца. Если у Вас остались вопросы можете задавать их мне в комментариях под статьей.

Оригинал статьи

Показать полностью 5
115

Преобразуем изображения и GIF анимацию в код для Arduino

Преобразуем изображения и GIF анимацию в код для Arduino Arduino, Электроника, Гифка, Длиннопост, Своими руками, Самоделки, Наука

Посмотреть видео

Сейчас в продаже доступно много разных Ч/Б дисплеев, в том числе и OLED. Для того, чтобы получить красивое черно-белое изображение для этих дисплеев, с глубиной цвета всего 1 бит, но в тоже время с имитацией полутонов, как на представленной ниже картинке — нужно использовать преобразование по алгоритму «Floyd-Steinberg».

Преобразуем изображения и GIF анимацию в код для Arduino Arduino, Электроника, Гифка, Длиннопост, Своими руками, Самоделки, Наука

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

Можно, конечно, использовать графический редактор со встроенной функцией дизеринга Floyd-Steinberg, но ради пары картинок, нет желания изучать функционал этого сложного ПО. Да и как правило эти редакторы в основном платные. По этому я представляю он-лайн инструмент для конвертирования изображений полного цикла, с возможностью подстраивать детализацию выходного изображения.

Для примера загружаю изображение автомобиля в онлайн конвертер. При помощи ползунков «Яркость» и «Контрастность» добиваюсь максимально детализированного изображения на предпросмотре. На выходе получаю Ч/Б картинку с заданными мною параметрами разрешения и исходный код этого изображения. Полученный код можно скопировать и вставить в свой проект.

Преобразуем изображения и GIF анимацию в код для Arduino Arduino, Электроника, Гифка, Длиннопост, Своими руками, Самоделки, Наука

Пошаговая инструкция для преобразования

1 — Выберите изображение на своем ПК, нажав на кнопку «Выберите фаил» и загрузите его в он-лайн конвертер. Изображение может быть цветным или ч/б с любой глубиной цвета и любого размера.

2 — Укажите требуемый размер получаемого на выходе преобразователя изображения.

3 — При помощи бегунков «Яркость» и «Контрастность добейтесь наилучшего результата на предварительном просмотре.

4 — Укажите название изображения латинскими буквами.

5 — Скопируйте полученный Си код и вставьте его в свой исходник.

6 — При необходимости сохраните преобразованное изображение, нажав на изображении правую кнопку мышки.

Преобразование GIF-анимации

Для реализации ардуино проекта, мне понадобилась черно-белая GIF-анимация. В интернете я нашел простой, пакетный способ преобразования картинок. Которым я с Вами, с удовольствием, делюсь. Ссылка на автора.
Для конвертирования GIF-ок в черно-белый формат. Потребуется приложение IrfanView. Скачиваем и устанавливаем его на свой ПК.

Преобразуем изображения и GIF анимацию в код для Arduino Arduino, Электроника, Гифка, Длиннопост, Своими руками, Самоделки, Наука

Запускаем приложение и загружаем в него GIF-ку. Потом жмем на кнопку меню „Сервис >> Извлечь все кадры“. После чего приложение извлечёт из ГИФ-ки все кадры изображений и сохранит их в той же папке, в которой находится сам файл анимации.

Следующим шагом нужно преобразовать все кадры анимации в черно-белые картинки, с требуемым для дисплея размером. Для этого жмём в меню „Файл >> Преобразовать“. Или кнопку „B“ на клавиатуре.

Преобразуем изображения и GIF анимацию в код для Arduino Arduino, Электроника, Гифка, Длиннопост, Своими руками, Самоделки, Наука

Сначала нужно указать, в какой формат нужно преобразовать, для этого нажимаем кнопку „Обработка“
И активируем все параметры, которые отмечены на скриншоте ниже.

Преобразуем изображения и GIF анимацию в код для Arduino Arduino, Электроника, Гифка, Длиннопост, Своими руками, Самоделки, Наука

После чего выделяем все ранее преобразованные картинки и жмем кнопку „Добавить“. И следом кликаем на кнопку „Выполнить“. После чего, в этой же папке появятся преобразованные ч/б изображения.

Преобразуем изображения и GIF анимацию в код для Arduino Arduino, Электроника, Гифка, Длиннопост, Своими руками, Самоделки, Наука

Для преобразования картинок в код, понятный компилятору, нужно скачать приложение OledAnimation
и положить его в папку с ч/б изображениями. В этой папке не должно быть других изображений кроме тех, которые мы конвертируем. После запуска приложения все файлы, находящиеся в папке будут проконвертированы.

Преобразуем изображения и GIF анимацию в код для Arduino Arduino, Электроника, Гифка, Длиннопост, Своими руками, Самоделки, Наука

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

Чтобы получилась красивая анимация, нужно подбирать исходники со сплошным однотонным фоном и контрастным изображением. Как на приложенном ниже изображении.

Преобразуем изображения и GIF анимацию в код для Arduino Arduino, Электроника, Гифка, Длиннопост, Своими руками, Самоделки, Наука

Подключаем дисплей к Ардуино
Для проверки анимации, понадобятся следующие компоненты:
Arduino nano
OLED SH1106
Провода соединительные

Соединяем дисплей с Arduino по следующей схеме:

Преобразуем изображения и GIF анимацию в код для Arduino Arduino, Электроника, Гифка, Длиннопост, Своими руками, Самоделки, Наука

Скетч для Ардуино
Скетч настолько простой, что даже комментировать в нем особо нечего.
Для воспроизведения анимации я вызываю простейшую функцию и предаю ей все требуемые параметры. Такие как: размер изображения по горизонтали и вертикали, длительность показа кадров, количество кадров в анимации, число повторов воспроизведения, имя массива указателей и цвет изображения, который в данном случае может принимать всего 2 значения: черный или белый. Учитывая не большой объем памяти программ контроллера ATmega328. Нужно учесть, что прокручивать в одном скетче несколько анимаций практически невозможно. Хотя если эти анимации будут маленького размера и с небольшим количеством кадров, то можно попробовать их запихнуть.

Для скетча так же потребуется библиотеки OLED_SH1106 и Adafruit-GFX
Так же можно скачать весь ардуино проект со всеми изображениями.

Посмотреть видео

Спасибо за то, что прочитали до конца. Если у Вас остались вопросы, то можете задать их в комментариях под статьёй.

Показать полностью 9
60

Беспроводная гирлянда на новогоднюю ёлку без батареек

Беспроводная гирлянда на новогоднюю ёлку без батареек Новогодняя елка, Своими руками, Ёлки, Длиннопост, Arduino, Декор, Авторская игрушка, Новый год

Посмотреть видео

Всем привет! До нового года остались считанные часы и я спешу всех вас поздравить с наступающими праздниками. А так же предлагаю посмотреть короткое видео о том, как я сделал себе маленькую новогоднюю ёлку с беспроводной гирляндой на светодиодах. Этот DIY-проект настолько прост, что его может повторить даже первоклассник.

Беспроводными светодиодами я сегодня конечно никого не удивлю, они давно продаются на алиэкспресс, но я покажу, как за копейки их можно сделать своим руками и нарядить свою маленькую техноёлку. Китайцы используют индукционную катушку, которая на частоте 70 кГц постоянно излучает электромагнитные волны. Поэтому она во включенном режиме нагревается, что небезопасно и я бы побоялся её оставлять включенной, уходя из дома или на ночь.

Беспроводная гирлянда на новогоднюю ёлку без батареек Новогодняя елка, Своими руками, Ёлки, Длиннопост, Arduino, Декор, Авторская игрушка, Новый год

Я же предлагаю использовать любое беспроводное зарядное устройство от смартфона, которое скорее всего у многих из вас уже есть. Из плюсов такого подхода могу отметить, что при его использовании гирлянда будет не просто светиться, а мигать с частотой примерно 1 Гц и можно не бояться оставлять её включённой, так как никакого перегрева точно не будет.

Беспроводная гирлянда на новогоднюю ёлку без батареек Новогодняя елка, Своими руками, Ёлки, Длиннопост, Arduino, Декор, Авторская игрушка, Новый год

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

Беспроводная гирлянда на новогоднюю ёлку без батареек Новогодняя елка, Своими руками, Ёлки, Длиннопост, Arduino, Декор, Авторская игрушка, Новый год

Сначала разберёмся, как работает беспроводное зарядное устройство.

Qi зарядка представляет собой передатчик с плоской катушкой и с такой же катушкой в мобильном устройстве (приемник). Между этими двумя катушками, как в обмотках трансформаторов, протекает электромагнитная индукция. В подавляющем большинстве все эти зарядные устройства работают на частотах от 80…300 кГц. И работают они по протоколу Qi, примерно так: передатчик проверяет размещено ли на нём Qi-совместимое устройство. Для этого передатчик каждые 0,5 — 1 сек. передает 8 бит данных. Принимающее устройство должно отреагировать и предоставить ответ. Передатчик затем посылает несколько цифровых пингов, чтобы проверить информацию об оптимальном положении приёмника. Только тогда, когда произошел обмен между ними, начнётся зарядка.

Беспроводная гирлянда на новогоднюю ёлку без батареек Новогодняя елка, Своими руками, Ёлки, Длиннопост, Arduino, Декор, Авторская игрушка, Новый год

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

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

Беспроводная гирлянда на новогоднюю ёлку без батареек Новогодняя елка, Своими руками, Ёлки, Длиннопост, Arduino, Декор, Авторская игрушка, Новый год

Для определения индуктивностей дросселей и их резонансных частот, я использовал прибор GM328A. Если у вас нет такого прибора, то для выяснения их параметров, воспользуйтесь таблицей цветовой маркировки.

Беспроводная гирлянда на новогоднюю ёлку без батареек Новогодняя елка, Своими руками, Ёлки, Длиннопост, Arduino, Декор, Авторская игрушка, Новый год

Для расчёта резонанса контура, прибегнем к помощи он-лайн калькулятора.

У меня есть дроссель с индуктивностью L=8,4 мГн и частота передатчика f=120 кГц. Вводим эти параметры в нужные поля калькулятора, нажимаем кнопку рассчитать и получаем требуемую ёмкость конденсатора C=209 пФ

Беспроводная гирлянда на новогоднюю ёлку без батареек Новогодняя елка, Своими руками, Ёлки, Длиннопост, Arduino, Декор, Авторская игрушка, Новый год

Нахожу приблизительно подходящий по параметрам конденсатор 200 пФ, ёмкость светодиода добавит примерно от 3-10 пФ — это тоже нужно учитывать. Параллельно подключаю конденсатор с дросселем и проверяю фактическую частоту резонанса. Получилось 117 кГц, не совпадает с расчётными данными, так как ещё нужно было учитывать погрешность прибора и конденсатора. Но нет необходимости идеально подгонять резонанс, даже при смещении от резонанса на ±50% всё будет работать. Резонанс влияет на КПД связки и будет влиять на ток в дросселе, который зависит от расстояния удаления от передающей катушки. Если пренебречь расстоянием отдаления от передатчика, то можно вообще не использовать конденсатор для подгонки резонанса, но при этом нужно использовать дроссель с индуктивностью не менее 1 мГн и выше.

Беспроводная гирлянда на новогоднюю ёлку без батареек Новогодняя елка, Своими руками, Ёлки, Длиннопост, Arduino, Декор, Авторская игрушка, Новый год

Чтобы быть уверенным, что моё зарядное устройство передает пакеты на частоте 120 кГц, подключаю дроссель к щупам осциллографа и смотрю какую частоту транслирует передатчик. В моём случае оказалось 120,6 кГц

Беспроводная гирлянда на новогоднюю ёлку без батареек Новогодняя елка, Своими руками, Ёлки, Длиннопост, Arduino, Декор, Авторская игрушка, Новый год

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

Беспроводная гирлянда на новогоднюю ёлку без батареек Новогодняя елка, Своими руками, Ёлки, Длиннопост, Arduino, Декор, Авторская игрушка, Новый год

Контур с максимально близким к передатчику резонансом, способен питать светодиод на расстоянии до 8 см.

Беспроводная гирлянда на новогоднюю ёлку без батареек Новогодняя елка, Своими руками, Ёлки, Длиннопост, Arduino, Декор, Авторская игрушка, Новый год

Для подключения гирлянды из 40 светодиодов и больше, потребуется дроссель с большой индуктивностью (более 4 мГн) и с внутренним сопротивлением не более 10-20 Ом — такой можно выпаять из старых энергосберегающих, газоразрядных ламп и удалить с него одну половинку Ш-образного ферромагнитного сердечника. Чем ближе к частоте 120 кГц будет резонанс, тем выше будет напряжение на выходе дросселя и тем больше светодиодов можно будет к нему подключить. На выходе моего дросселя напряжение без нагрузки получилось 90 В, это значит, что размах напряжения 180 В.

Беспроводная гирлянда на новогоднюю ёлку без батареек Новогодняя елка, Своими руками, Ёлки, Длиннопост, Arduino, Декор, Авторская игрушка, Новый год

Собираем по вышеуказанной схеме. Для сборки гирлянды я использовал все светодиоды, которые у меня были в наличии, в сумме получилось 38 шт. по 19 шт. на каждый полюс напряжения, хотя я пробовал подключать 25 светодиодов на 1 полюс и все они прекрасно светятся. Если учесть падение напряжения на одном светодиоде 2 В, в моём случае, в теории можно подключить порядка 45 светодиодов на каждый полюс — в сумме получится 90 светодиодов. Но, к сожалению, у меня их столько не нашлось — пришлось довольствоваться тем, что есть.

Беспроводная гирлянда на новогоднюю ёлку без батареек Новогодняя елка, Своими руками, Ёлки, Длиннопост, Arduino, Декор, Авторская игрушка, Новый год

Гирлянда собрана, теперь я наряжаю ею свою мини-ёлку и она будет украшать мой стол все новогодние праздники, придавая мне праздничное настроение.

Беспроводная гирлянда на новогоднюю ёлку без батареек Новогодняя елка, Своими руками, Ёлки, Длиннопост, Arduino, Декор, Авторская игрушка, Новый год

Еще раз поздравляю всех Вас с приближением самого радостного, доброго, волшебного праздника — Нового года! Пусть этот год станет чередой счастливых и радостных дней, наполненных добром и верой в лучшее!

Показать полностью 14
59

Ардуино робот играет музыку на винных бокалах

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

И так давайте все по порядку.

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

Бокалы

Я перепробовал звучание разных бокалов которые нашел у себя в доме и как оказалось современные бокалы звучат как то очень слабо, возможно в этом есть Китайский след. А вот старые хрустальные фужеры звучат приятно и громко. Только у меня их оказалось всего 7 шт. Что в последствии выльется в ограничение проигрываемых нот. Не хватило всего 1 бокала для проигрывания полноценной мелодии от начала до конца. Пришлось воспроизводить только небольшие кусочки мелодий.

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

Ардуино робот играет музыку на винных бокалах Arduino, Робот, Музыка, Музыкальные инструменты, Видео, Длиннопост

Про молоточек

Ударный молоточек сделал из автомобильного реле купленного в ближайшем авто-магазине. Удалил с него корпус и спилил лишние контакты, а на якорь припаял медную проволоку диаметром 1 мм. Этот медный провод я извлек из силового кабеля, который используется для бытовой проводки 220 В. В качестве самого молотка колотушки, я использовал кусочек деревянного, мебельного шканта.

Ардуино робот играет музыку на винных бокалах Arduino, Робот, Музыка, Музыкальные инструменты, Видео, Длиннопост

Просверлил в нем отверстие и нанизал его на кусок провода из меди, после чего для надежности капнул сверху клеем момент.

Для управлением этой барабанной палочкой я использовал старый, советский транзистор KT972, управление которым осуществляется с контроллера через резистор от 270 до 510 Ом. Для гашения отрицательных импульсов самоиндукции параллельно катушке припаял выпрямительный диод 1N4007. Такой можно найти в любой отслужившей свой срок светодиодной лампочке или в старой бытовой технике. Транзистор можно заменить на любой другой в том числе и на MOSFET. С минимальным током перехода не менее 1 А.

Ардуино робот играет музыку на винных бокалах Arduino, Робот, Музыка, Музыкальные инструменты, Видео, Длиннопост

Соленоид с молоточком разместил на пластиковой рейке. После чего его нужно сбалансировать. Так как дисбаланс будет вызывать вибрацию. Для этого на противоположной стороне рейки прикрутил металлическую гайку, предварительно подобрав ее по весу. Далее приклеиваем рейку на распечатанную 100 лет назад на 3D принтере шестеренке.

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

Шаговый двигатель

ШД использовал HANPOSE 17HS4401. Для максимальной скорости вращения, попробовал полношаговый режим, но в этом режиме есть один недостаток, мотор очень громко работает и его жужжание очень сильно выделяется на на фоне звука бокалов. Пришлось пожертвовать скоростью и использовать режим полушага(1/2), а это в свою очередь 400 шагов на один оборот вала. В таком режиме шаговый двигатель начал работать заметно тише, но и почти в 2 раза медленнее. Хотя этого вполне хватает для проигрывания спокойной музыки.

В проекте использовался драйвер шагового двигателя A4988. Но где то на форумах я прочитал про тихий драйвер TMC-2100, но к сожалению на момент сборки проекта у меня такого не нашлось и пришлось подстраиваться к пониженной скорости мотора. Отказавшись от библиотеки «A4988.h» мне удалось с выжать с ШД максимум.

Ардуино робот играет музыку на винных бокалах Arduino, Робот, Музыка, Музыкальные инструменты, Видео, Длиннопост

Подсветка

Подсветка сделана всего на одном светодиоде ws2812 который я отрезал от светодиодной ленты.

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

Ардуино робот играет музыку на винных бокалах Arduino, Робот, Музыка, Музыкальные инструменты, Видео, Длиннопост

Схема

Соединил все компоненты по нарисованной мной схеме. Установил переключатели на драйвере шагового двигателя в режим полудуплекса. На соленоид и мотор подал 15 В. Так как молоточек для соленоида тяжеловат и при 12 В иногда бывает он не до конца притягивает якорь, Еще для уменьшения щелчков якоря я приклеил на сердечник электромагнита кусочек ткани.

Ардуино робот играет музыку на винных бокалах Arduino, Робот, Музыка, Музыкальные инструменты, Видео, Длиннопост

Используемые в схеме компоненты:

Arduino Nano

Шаговый двигатель 17HS4401

Драйвер шагового двигателя A4988

Плата расширения для драйвера шагового двигателя

Провода соединительные

Светодиод WS2812

Транзистор Mosfet

Реле автомобильное на 30 А

Музыка

Мелодию можно написать самому или найти готовую на сайте musicboxmaniacs. Если вы будете использовать готовую мелодию, то для начала у нее нужно убрать многоголосость, это значит, что в одном музыкальном такте не должно быть более одной ноты. После чего перенести ее в ручную следующем порядке: самая низкая нота имеет значение 0 и так далее до самой высокой. В моем распоряжении всего 7 бокалов, а это значит, что и нот не должно быть больше 7. Для простых мелодий этого будет достаточно. И еще есть пустой такт, его значение в массиве равно 255. Звук бокалов подстраивается под нужную ноту при помощи воды. Для понижения тона нужно подливать в него воду. Для точной подстройки можно воспользоваться приложением для смартфона «Тюнер пианино» из play Google.

Ардуино робот играет музыку на винных бокалах Arduino, Робот, Музыка, Музыкальные инструменты, Видео, Длиннопост

Скетч для ардуино

Алгоритм работы кода следующий — в массиве хранятся ноты пронумерованные в порядке возрастания от самой низкой равной 0 и до самой высокой равной 6. Каждой ноте соответствует свой бокал. Пустой такт нумеруется значением 255.

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

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

Все настройки находятся в шапке скетча и прописаны в директивах define.


Скачать скетч

Заключение

Спасибо, что дочитали до конца!

Надеюсь эта статья вам понравилась и вы сможете воспользоваться моей наработкой в своих проектах.

Если у Вас остались вопросы и замечания, то можете задать их в комментариях. Я с удовольствием на них отвечу.

Показать полностью 7
201

Подключение энкодера к Ардуино и полнофункциональный код обработки для него

Энкодер - это устройство преобразования механического перемещения или угловых изменений положения в цифровой сигнал. В статье рассматривается самый популярный в DIY сообществе инкрементальный энкодер EC11 с кнопкой. При его вращении на выходах A и B формируются TTL сигналы в виде импульсов сдвинутые между собой по фазе на 90 градусов. Таким образом с его помощью, можно определить направление и скорость вращения, а так же рассчитать угол поворота. В отличие от потенциометров, энкодер KY-040 гораздо надежней и долговечный.

Подключение энкодера к Ардуино и полнофункциональный код обработки для него Arduino, Энкодер, Своими руками, Видео, Длиннопост

Немного подробностей

Собирая один из проектов с использованием encoder. Я не смог найти код для Ардуино выполняющий все мои условия. Так как для проекта нужно обрабатывать следующие команды: "Вращение без нажатия", "Вращение с нажатием", "Нажатие" и "Длинное нажатие", а так же требуется стабильная работа энкодера. Скетчи использующие один пин с прерыванием INT0 или INT1, работают отвратительно и при вращении вала энкодера вылетает очень много ошибок. Код без использования прерываний работает стабильно, но он не работает в фоновом режиме, его нужно встраивать в тело основной программы, что в свою очередь приводит к не своевременному срабатыванию обработчика и пропускам при вращении энкодера. Еще хуже обстоят дела с обработкой нажатия с вращением вала энкодера и обычным с нажатием. Пришлось написать свой код обработки, который исключает описанные выше проблемы. С дребезгом контактов я не стал бороться программно, так как это приводит к задержкам обработки. Проще и надежней использовать керамические конденсаторы.

Схема подключения энкодера к Ардуино

Для считывания сигналов с выходов EC-11, нужно использовать три цифровых входа Arduino. В схеме подключения я использовал редко используемые мной в своих проектах выводы Arduino(A1, A2 и A3). Внешние подтягивающие резисторы отсутствуют, так как я использовал внутреннюю подтяжку микроконтроллера. Конденсаторы нужны для гашения импульсов дребезга контактов. Если у вас новый и хороший энкодер, то можно обойтись и без них. Но на кнопку в любом случае потребуется конденсатор, так как ее дребезг неизбежен.


Используемые в схеме компоненты:

Arduino nano - 1 шт.

Энкодер EC11 -1 шт.

Соединительные повода - 4 шт.

Керамические конденсаторы 0,1 мкФ - 3 шт.

Подключение энкодера к Ардуино и полнофункциональный код обработки для него Arduino, Энкодер, Своими руками, Видео, Длиннопост

Скетч для Ардуино

Для того что бы отслеживать изменение положения энкодера в фоновом режиме, я использую прерывание PCINT1. Обработка всех функций происходит в прерывании, обработчик в зависимости от произошедшего действия изменяет переменную enc_state. Если значение переменной enc_state=0 - ничего не произошло, enc_state=1 - экодер вращался без нажатия, enc_state=2 - экодер вращался с нажатием, enc_state=3 - было нажатие на кнопку, enc_state=4 - было длинное нажатие на кнопку, Прерывание будет срабатывать каждый раз по изменению состояния входов, как с высокого уровня на низкий, так и наоборот. То есть при одном щелчке энкодера прерывание сработает 4 раза. Или по 2 раза для каждого из входов. Но обработчик выдаст сигнал поворота только 1 раз на все 4 прерывания.

Код обработчика при каждом срабатывании записывает в переменную lastcomb состояние входов, к которым подключен энкодер. И ждет состояние когда выходы A и B будут замкнуты на GND, это гарантированный сигнал того, что энкодер вращается. После того как этот сигнал получен, обработчик проверяет в какую сторону было вращение. Для этого он сравнивает его предыдущее значение из переменной lastcomb и в зависимости от фазы сдвига определит в какую сторону был поворот ротора. Как я писал ранее, сложнее всего отслеживать нажатие кнопки.

Так как использовать определенные тайминги я не планировал, потому, что они неизбежно приводят длительным задержкам работы обработчика и основной программы, или требуют использование таймера, которых в микроконтроллере всего 3 шт. их, как правило никогда не хватает. Собственно проблема состояла в том, чтобы разделить "нажатие с последующим вращением" от простого нажатия. В итоге как вы уже можете убедиться, я решил эту задачу. Оптимизацией кода я не стал заниматься, потому как все работает и меня все устраивает. Для наглядности в коде все действия с энкодером, отображаются в Serial мониторе программы Adruino IDE.

/*
При публичном размещении кода ссылка на первоисточник обязательна.
*/
#define btn_long_push 1000 // Длительность долинного нажатия кнопки
volatile uint8_t lastcomb=7, enc_state, btn_push=0;
volatile int enc_rotation=0, btn_enc_rotate=0;
volatile boolean btn_press=0;
volatile uint32_t timer;
//********************************
void setup()
{
pinMode(A1,INPUT_PULLUP); // ENC-A
pinMode(A2,INPUT_PULLUP); // ENC-B
pinMode(A3,INPUT_PULLUP); // BUTTON
PCICR = 0b00000010; // PCICR |= (1<<PCIE1); Включить прерывание PCINT1
PCMSK1 = 0b00001110; // Разрешить прерывание для A1, A2, A3
Serial.begin(115200);
}
//****************************************

void loop()

{

switch (enc_state)

{

case 1: {

Serial.print("Вращение без нажатия ");

Serial.println(enc_rotation);

}

break;

case 2: {

Serial.print("Вращение с нажатием ");

Serial.println(btn_enc_rotate);

}

break;

case 3: Serial.println("Нажатие кнопки ");

break;

case 4: Serial.println("Длинное нажатие кнопки ");

break;

}

enc_state=0; //обнуляем статус энкодера

}


//****************************************
ISR (PCINT1_vect) //Обработчик прерывания от пинов A1, A2, A3
{
uint8_t comb = bitRead(PINC, 3) << 2 | bitRead( PINC, 2)<<1 | bitRead(PINC, 1); //считываем состояние пинов энкодера и кнопки
if (comb == 3 && lastcomb == 7) btn_press=1; //Если было нажатие кнопки, то меняем статус
if (comb == 4) //Если было промежуточное положение энкодера, то проверяем его предыдущее состояние
{
if (lastcomb == 5) --enc_rotation; //вращение по часовой стрелке
if (lastcomb == 6) ++enc_rotation; //вращение против часовой
enc_state=1; // был поворот энкодера
btn_enc_rotate=0; //обнулить показания вращения с нажатием
}
if (comb == 0) //Если было промежуточное положение энкодера и нажатие, то проверяем его предыдущее состояние
{
if (lastcomb == 1) --btn_enc_rotate; //вращение по часовой стрелке
if (lastcomb == 2) ++btn_enc_rotate; //вращение против частовой
enc_state=2; // был поворот энкодера с нажатием
enc_rotation=0; //обнулить показания вращения без нажатия
btn_press=0; //обнулить показания кнопки
}
if (comb == 7 && lastcomb == 3 && btn_press) //Если было отпускание кнопки, то проверяем ее предыдущее состояние
{
if (millis() - timer > btn_long_push) // проверяем сколько прошло миллисекунд
{
enc_state=4; // было длинное нажатие
} else {
enc_state=3; // было нажатие
}
btn_press=0; //обнулить статус кнопки
}
timer = millis(); //сброс таймера
lastcomb = comb; //сохраняем текущее состояние энкодера
}

Заключение

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

Если у Вас остались вопросы и замечания, пишите их в комментариях. Я с удовольствием на них отвечу.

Показать полностью 2
7

Задымление на станции метро проспект Вернадского

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

179

Как подключить пару рольставней по трём проводам и управлять ими голосовым ассистентом

Всем привет!

В этой статье я расскажу, как мне пришлось исправить ошибку строителей, которые заложили в штробу всего один 3-х проводной кабель, идущий к двум рольставням, тогда как нужно было проложить два таких кабеля. А так же про недорогой WiFi + RF433 МГц блок управления рольставнями и подключение его к голосовому ассистенту Яндекс Алиса.

Распаковка блока управления рольставнями

Я достраиваю свой дом, и недавно у меня на окнах первого этажа установили моторизированные рольставни. Для управления ими я приобрел на Aliexpress WiFi+RF433 переключатели от компании Moes, на упаковке указано название «Smart WiFi + RF Curtain Switch». Обошлись они мне по 900 руб. за 1 шт. В комплекте идет небольшая инструкция по подключению и два болтика для монтажа. Панель сделана из стекла, на ней расположены три сенсорные кнопки с синей подсветкой. Подключается устройство всего 4-мя проводами: L-линия, N-ноль, Open, Close. В инструкции нет упоминаний про работу блока с Яндекс-станцией «Алиса», но как потом оказалось, устройство прекрасно сопрягается с умной колонкой через приложение Tuya Smart.

Как подключить пару рольставней по трём проводам и управлять ими голосовым ассистентом Своими руками, Wi-Fi, Roller, Жалюзи, Дистанционное, Управление, Рольставни, Яндекс Алиса, Шторы, Занавес, Умный дом, Видео, Длиннопост, Видеоблог

Блок управления изнутри

Переключатель состоит из двух плат: верхняя плата, это WiFi контроллер, приемник 433 МГц, емкостные кнопки и две антенны, также разведенные на плате, и нижняя — это блок питания, винтовые разъемы для подключения проводов, два реле управления моторами рольставней. Соединяются обе платы между собой обычной двухрядной гребенкой, с шагом 2 мм.

Как подключить пару рольставней по трём проводам и управлять ими голосовым ассистентом Своими руками, Wi-Fi, Roller, Жалюзи, Дистанционное, Управление, Рольставни, Яндекс Алиса, Шторы, Занавес, Умный дом, Видео, Длиннопост, Видеоблог

Подсветка кнопок

Стоит ещё упомянуть, как работает подсветка в модуле управления. Днем подсветку всех кнопок не заметно. Но на панели всегда ярко светится последняя нажатая кнопка. Если нажать клавишу опустить занавес и не важно по WiFi или кнопкой на пульте, то будет светится кнопка «Close» до того момента, пока не будет нажата другая кнопка. А у клавиши STOP есть две функции: с её помощью можно остановить ставни в любом положении, и вторая функция — это перевод свечения кнопок в ночной режим. В полной темноте свечение всех клавиш очень комфортное и абсолютно не раздражает глаза.

Как подключить пару рольставней по трём проводам и управлять ими голосовым ассистентом Своими руками, Wi-Fi, Roller, Жалюзи, Дистанционное, Управление, Рольставни, Яндекс Алиса, Шторы, Занавес, Умный дом, Видео, Длиннопост, Видеоблог

Подключение к WiFi

При первом включении сразу же начнут мигать все три кнопки — тем самым блок говорит, что его нужно подключить к WiFi сети. Для этого потребуется установить приложение Tuya Smart. запускаем приложение->нажимаем «+»(добавить устройство)->мелкая бытовая техника->шторы/карниз WiFi->включаем геолокацию->подтверждаем Имя и ключ WIFI сети после непродолжительной паузы устройство будет добавлено и после чего можно сменить его название. Для удобства управления я у себя все три добавленных устройства назвал «окно», только присвоил им всем разные комнаты. В голосовом ассистенте Алиса нажимаем (+) -> другое устройство -> находим Tuya Smart -> обновить список устройств.

Я так же в голосовом ассистенте создал такие сценарии, как: «Сим-сим откройся», «Открой все окна», «Включи кино» и т. д.

Как подключить пару рольставней по трём проводам и управлять ими голосовым ассистентом Своими руками, Wi-Fi, Roller, Жалюзи, Дистанционное, Управление, Рольставни, Яндекс Алиса, Шторы, Занавес, Умный дом, Видео, Длиннопост, Видеоблог

Подключаем пульт 433МГц

Так же для более широких возможностей управления рольставнями, я приобрел пульт, работающий в радиодиапазоне 433 МГц.

Для того, чтобы модуль переключателей запомнил кодовые команды с радиопульта, нужно нажать и удерживать требуемую кнопку на блоке управления до того момента, пока он не издаст одиночный звуковой сигнал и при этом индикатор начнет быстро мигать, после чего нужно нажать такую же кнопку на пульте дистанционного управления. Если переключатель запомнил код, то он переведет индикатор в постоянно светящийся режим. Для обнуления ранее записанного кода, нужно нажать и удерживать кнопку блока управления в течении 10 секунд до того момента, пока он не издаст три прерывистых звуковых сигнала, после чего код пульта из блока будет стёрт.

Как подключить пару рольставней по трём проводам и управлять ими голосовым ассистентом Своими руками, Wi-Fi, Roller, Жалюзи, Дистанционное, Управление, Рольставни, Яндекс Алиса, Шторы, Занавес, Умный дом, Видео, Длиннопост, Видеоблог

Косяки строителей

Теперь о проблеме, с которой я столкнулся при подключении рольствней. Строители, которые занимались отделкой, несмотря на мои неоднократные напоминания, заложили всего один трех проводной кабель для двух окон. А всплыла эта проблема, когда приехали установщики роллетов. «Ну ладно,» — подумал я, «подключу их параллельно», но, как оказалось, подключать рольставни параллельно между собой нельзя. Я, конечно, сначала не поверил в это, но потом убедился в этом сам, когда попытался проверить это на практике и чуть было на спалил моторы. Проблема заключается в том, что моторы имеют несколько обмоток и между ними установлен фазосдвигающий конденсатор. И если подать управляющий ток на поднятие занавеса «Open», то на открытом конце «Close» будет напряжение 220В, которое начнет вращать рольставни в противоположную сторону, и они останутся на одном месте в заклиненном состоянии, а ток при этом будет протекать через обмотки двигателей. Получится как в той басне про лебедя, рака и щуку.

Как подключить пару рольставней по трём проводам и управлять ими голосовым ассистентом Своими руками, Wi-Fi, Roller, Жалюзи, Дистанционное, Управление, Рольставни, Яндекс Алиса, Шторы, Занавес, Умный дом, Видео, Длиннопост, Видеоблог

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

Как подключить пару рольставней по трём проводам и управлять ими голосовым ассистентом Своими руками, Wi-Fi, Roller, Жалюзи, Дистанционное, Управление, Рольставни, Яндекс Алиса, Шторы, Занавес, Умный дом, Видео, Длиннопост, Видеоблог

Но групповой блок GC-2 мне тоже ни как не поможет, так как ему кроме проводов «Open», «Close» и «N»-ноль требуется ещё и линия-«L». Если игнорировать заземление, то в сумме получается 4 провода. А у меня, как вы помните, их всего 3. Перерыв весь интернет, я так и не нашел решения, хотя встретил братьев по несчастью с такой же проблемой, просящих помощи у сообщества. В итоге у меня остался только один вариант — штробить стену и прокладывать недостающие провода. Что меня никак не устраивало, так как на первом этаже уже выполнена свежая отделка и смонтированы натяжные потолки. Мне бы не хотелось портить строительной пылью свежий ремонт. Пришлось напрячь мозг и придумать своё решение.

Благо решение нарисовалось на бумаге в течении пары минут и для его реализации мне понадобилось всего одно реле на 220 В, с тремя контактными группами.

Как подключить пару рольставней по трём проводам и управлять ими голосовым ассистентом Своими руками, Wi-Fi, Roller, Жалюзи, Дистанционное, Управление, Рольставни, Яндекс Алиса, Шторы, Занавес, Умный дом, Видео, Длиннопост, Видеоблог

Схема подключения реле

Я думаю у многих может возникнуть вопрос: почему именно 3 группы контактов, а не две? Если исключить самую верхнюю группу контактов на схеме, замкнув эти два провода, то через взаимосвязанные обмотки электродвигателей и через обмотку реле будет протекать ток в любом положении переключателя, и реле всегда будет переходить во включенное состояние.

Как подключить пару рольставней по трём проводам и управлять ими голосовым ассистентом Своими руками, Wi-Fi, Roller, Жалюзи, Дистанционное, Управление, Рольставни, Яндекс Алиса, Шторы, Занавес, Умный дом, Видео, Длиннопост, Видеоблог

Монтаж реле

Мне не терпелось и хотелось побыстрее проверить работоспособность схемы. А ввиду отсутствия у меня плоских разъемов 3 мм, я не стал тратить время на их поиски и покупку, а взял и припаял к нужным контактам реле провода. Заизолировал их термоусадочным кембриком и подключил реле к рольставням соеденителями типа скрутка. Разместил его в соединительной коробке, в которой предварительно замазал силиконом все сквозные отверстия.

Как подключить пару рольставней по трём проводам и управлять ими голосовым ассистентом Своими руками, Wi-Fi, Roller, Жалюзи, Дистанционное, Управление, Рольставни, Яндекс Алиса, Шторы, Занавес, Умный дом, Видео, Длиннопост, Видеоблог

Ну вот наконец все подключено, можно проверять

Заключение

Спасибо, что дочитали до конца!

Если Вам понравилась моя статья — то поддержите её лайком.

Если у Вас есть вопросы, то можете задавать их в комментариях.

Показать полностью 10
89

Левитация на основе магнитного равновесия

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

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


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

Планирую повторить эксперимент, но уже с большими магнитами и электромагнитами.


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

Показать полностью
100

Бесконтактный, оптический выключатель освещения со звуковым эффектом на Arduino

Всем привет!

Сегодня статья про бесконтактный выключатель с звуковым эффектом, который был сделан мной 9 лет назад, а если быть точным то в январе 2012 года.

С тех пор выключатель трудится у меня круглыми сутками на протяжении 9 лет. Что самое интересное, за все это время, он не вышел из строя и даже ни разу не подвис, а также у него никогда не было ложных срабатываний. Вообщем он хорошо себя зарекомендовал и я с уверенностью могу его Вам рекомендовать, для самостоятельной сборки.

Если Вам интересны подробности, то прошу под кат.

У меня в коридоре смонтировано 7 светильников.

Бесконтактный, оптический выключатель освещения со звуковым эффектом на Arduino Освещение, Умный дом, Arduino, Дизайн, Выключатель, Сенсор, Видео, Длиннопост

И для достижения красивого визуального эффекта, я использовал последовательное включение ламп, для этого мне нужно было протянуть к плате контроллера, отдельный провод от каждой точки освещения.

Бесконтактный, оптический выключатель освещения со звуковым эффектом на Arduino Освещение, Умный дом, Arduino, Дизайн, Выключатель, Сенсор, Видео, Длиннопост

Саму плату я спрятал в пространстве между гипсокартоном и потолком, благо места там больше чем достаточно.

Бесконтактный, оптический выключатель освещения со звуковым эффектом на Arduino Освещение, Умный дом, Arduino, Дизайн, Выключатель, Сенсор, Видео, Длиннопост

ИК приемник и светодиод я разместил в подрозетнике. Во избежании ложных срабатываний их нужно изолировать между собой, для этого я использовал термоусадочный кембрик. Что бы подключить этот оптический датчик к плате контроллера, я использовать заложенные в стену провода.

Бесконтактный, оптический выключатель освещения со звуковым эффектом на Arduino Освещение, Умный дом, Arduino, Дизайн, Выключатель, Сенсор, Видео, Длиннопост

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

Бесконтактный, оптический выключатель освещения со звуковым эффектом на Arduino Освещение, Умный дом, Arduino, Дизайн, Выключатель, Сенсор, Видео, Длиннопост

Все компоненты были размещены на одной плате, на которой так же установлены винтовые коннекторы для подключения проводов от светильников.

Бесконтактный, оптический выключатель освещения со звуковым эффектом на Arduino Освещение, Умный дом, Arduino, Дизайн, Выключатель, Сенсор, Видео, Длиннопост

Запитал я эту плату обычным зарядным устройством от телефона.

Бесконтактный, оптический выключатель освещения со звуковым эффектом на Arduino Освещение, Умный дом, Arduino, Дизайн, Выключатель, Сенсор, Видео, Длиннопост

Основой всего устройства является контроллер arduino Nano V.3, но можно так же использовать любые другие платы, с микроконтроллером Atmega328.

Бесконтактный, оптический выключатель освещения со звуковым эффектом на Arduino Освещение, Умный дом, Arduino, Дизайн, Выключатель, Сенсор, Видео, Длиннопост

ИК светодиод с фототранзистором можно взять от датчика препятствий, но не обязательно их выпаивать, достаточно перерезать лишние дорожки и припаять к ним 3 провода. Если у Вас уже есть где-то ранее выпаянные эти детали, то перед использованием, лучше сначала проверить их на работоспособность. Инфракрасный светодиод нужно подключить к напряжению 5 В, через токоограничивающий резистор 120 Ом и посмотреть на него через камеру телефона, он должен светиться фиолетовым светом. Для проверки фототранзистора понадобится любой тестер с функцией прозвонки проводников. Переводим тестер в режим прозвонки, а выводы фототранзистора подключаем к щупам тестера. После чего нужно к нему в плотную поднести любой пульт от бытовой техники и нажать любую кнопку. В ответ раздастся прерывистый пищащий звук.

Бесконтактный, оптический выключатель освещения со звуковым эффектом на Arduino Освещение, Умный дом, Arduino, Дизайн, Выключатель, Сенсор, Видео, Длиннопост

9 лет назад я не нашел подходящих твердотельных реле и мне пришлось их собирать самому из радио-комплектующих. Но на данный момент проще купить 8 канальный модуль твердотельных реле как на изображении, чем заниматься тратой времени на поиск этих компонентов.

Бесконтактный, оптический выключатель освещения со звуковым эффектом на Arduino Освещение, Умный дом, Arduino, Дизайн, Выключатель, Сенсор, Видео, Длиннопост

Работает выключатель следующим образом:

Arduino с выхода D5 постоянно выдает ШИМ сигнал с частотой примерно 977 Гц. К этому выходу через токоограничивающий резистор 82 Ом подключен светодиод, излучающий сигнал в инфракрасном диапазоне. Фототранзистор подключенный к входу D2 детектирует отраженный от руки ИК сигнал и проверяет его на достоверность и если сигнал из 20-ти или больше идущих подряд периодов соответствует частоте 977 Гц, то тогда контроллер включает по очереди все 7 светильников и начинает воспроизводить звуковой эффект через ШИМ выход D11. Все то же самое происходит и при выключении.

Бесконтактный, оптический выключатель освещения со звуковым эффектом на Arduino Освещение, Умный дом, Arduino, Дизайн, Выключатель, Сенсор, Видео, Длиннопост

Воспроизведение звуков:

Для воспроизведения звуковых эффектов используется формат WAVE без сжатия, с частотой 16000 Гц и глубиной 8 бит, но при воспроизведении данного формата с использованием ШИМ, в аудио тракте наблюдается неприятный свист и шипение. По этому для улучшения качества воспроизведения, я в коде использовал линейную интерполяцию. При которой, выборка семплов происходит на частоте 62.5 кГц и между оригинальными выборками вставляются еще 3 дополнительных семпла, рассчитанных методом линейной интерполяции. Таким образом на выходе снижается шум квантования, пропадает свист, улучшается качество звука и для воспроизведения не обязательно использовать дополнительные RC фильтры.

Бесконтактный, оптический выключатель освещения со звуковым эффектом на Arduino Освещение, Умный дом, Arduino, Дизайн, Выключатель, Сенсор, Видео, Длиннопост

Вместо динамика я использовал старую, маленькую компьютерную колонку без встроенного усилителя.

Бесконтактный, оптический выключатель освещения со звуковым эффектом на Arduino Освещение, Умный дом, Arduino, Дизайн, Выключатель, Сенсор, Видео, Длиннопост

Для конвертирования Wave файлов в Си код, можно воспользоваться онлайн конвертером

Схема:

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

Бесконтактный, оптический выключатель освещения со звуковым эффектом на Arduino Освещение, Умный дом, Arduino, Дизайн, Выключатель, Сенсор, Видео, Длиннопост

Компоненты для сборки:

1 — Arduino Nano V.3

2 — Датчик препятствий

3 — 8-ми канальный модуль реле

4 — Резисторы 82 Ом и 1 кОм

5 — Динамик 0,5 — 3 Вт

6 — Любой N-P-N транзистор с допустимым током не менее 500 мА

Код для Arduino:

Скачать все файлы одним архивом

В этот раз я решил добавить все используемые библиотеки в папку со скетчем, а в самом скетче прописал их локальное использование. Теперь надеюсь у новичков будет меньше ко мне вопросов, по поводу ошибок возникающих у них при компилировании.

В коде вынесены несколько констант, которые можно изменить перед прошивкой.

Константа power_ir — отвечает за дистанцию срабатывания выключателя, может принимать значения от минимума 20 и до максимума 200. Требуемое Вам значение можно определить экспериментальным путем.

lamp_num — определяет количество используемых Вами ламп. Минимальное число лампочек не может быть меньше 1, а максимальное не более 7. Если подправить код то можно увеличить до 15.

lamp_delay — это задержка между последовательными включениями ламп, которая выражена в миллисекундах и может начинаться от 0 и до 4 294 967 295 мс. Хотя я не думаю, что такие огромные задержки кому то понадобятся.

Заключение

В заключении хотелось бы добавить, что я очень удивлен, что микроконтроллер без WDT, за 9 лет ни разу не подвис. По этой же причине я не стал править код и добавлять в него WDT, так как Arduino со старыми bootloader не умеют работать с ним.

Спасибо, что дочитали до конца!

Если Вам понравилась моя статья — то поддержите ее лайком и подпиской.

Если у Вас есть вопросы, то можете их задать в комментариях.

Показать полностью 14
Отличная работа, все прочитано!